# HG changeset patch # User lana # Date 1314653363 25200 # Node ID 2f6d68f22eaebf8078aaee96879a8a01d6464607 # Parent 64f7ee2f31ddedc111191091d0296d7e620185ea# Parent 7da2112e4236bf7f5ce8c29e8ae372432ec716f9 Merge diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/com/oracle/Makefile --- a/jdk/make/com/oracle/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/com/oracle/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 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 @@ -27,8 +27,13 @@ PRODUCT = oracle include $(BUILDDIR)/common/Defs.gmk -SUBDIRS = net -include $(BUILDDIR)/common/Subdirs.gmk +# +# Files to compile +# +AUTO_FILES_JAVA_DIRS = com/oracle -all build clean clobber:: - $(SUBDIRS-loop) +# +# Rules +# +include $(BUILDDIR)/common/Classes.gmk + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/com/oracle/net/Makefile --- a/jdk/make/com/oracle/net/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -# -# 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. -# - -BUILDDIR = ../../.. -PRODUCT = oracle -include $(BUILDDIR)/common/Defs.gmk - -# -# Files to compile -# -AUTO_FILES_JAVA_DIRS = com/oracle/net - -# -# Rules -# -include $(BUILDDIR)/common/Classes.gmk - diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/com/sun/crypto/provider/Makefile --- a/jdk/make/com/sun/crypto/provider/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/com/sun/crypto/provider/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -113,6 +113,9 @@ endif endif +JAVAC_MAX_WARNINGS = false +JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation +JAVAC_WARNINGS_FATAL = true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/com/sun/jndi/Makefile --- a/jdk/make/com/sun/jndi/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/com/sun/jndi/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2011, 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 @@ -28,6 +28,8 @@ # BUILDDIR = ../../.. +SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true +SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk SUBDIRS = toolkit cosnaming ldap rmi dns diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/com/sun/security/Makefile --- a/jdk/make/com/sun/security/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/com/sun/security/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2011, 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 @@ -28,6 +28,10 @@ # BUILDDIR = ../../.. +SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=false +# TODO: Workaround for CR 7063027. Remove -path eventually. +SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path +SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk SUBDIRS = auth diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/common/Release.gmk --- a/jdk/make/common/Release.gmk Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/common/Release.gmk Mon Aug 29 14:29:23 2011 -0700 @@ -60,7 +60,8 @@ # with a new module system (being discussed for JDK 8). # EXPORTED_PRIVATE_PKGS = com.sun.servicetag \ - com.oracle.net + com.oracle.net \ + com.oracle.nio # 64-bit solaris has a few special cases. We define the variable # SOLARIS64 for use in this Makefile to easily test those cases diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/java/java/Makefile --- a/jdk/make/java/java/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/java/java/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -34,6 +34,7 @@ PRODUCT = java SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true +JAVAC_MAX_WARNINGS=true include $(BUILDDIR)/common/Defs.gmk # windows compiler flags diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/java/security/Makefile --- a/jdk/make/java/security/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/java/security/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -26,6 +26,9 @@ BUILDDIR = ../.. PACKAGE = java.security PRODUCT = sun +JAVAC_MAX_WARNINGS = false +JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation +JAVAC_WARNINGS_FATAL = true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/java/sun_nio/FILES_java.gmk --- a/jdk/make/java/sun_nio/FILES_java.gmk Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/java/sun_nio/FILES_java.gmk Mon Aug 29 14:29:23 2011 -0700 @@ -76,63 +76,3 @@ sun/nio/cs/UTF_32BE_BOM.java \ sun/nio/cs/UTF_32LE_BOM.java - -FILES_java += \ - sun/io/Converters.java \ - sun/io/ByteToCharConverter.java \ - sun/io/ByteToCharASCII.java \ - sun/io/ByteToCharUTF8.java \ - sun/io/ByteToCharUTF16.java \ - sun/io/ByteToCharUnicode.java \ - sun/io/ByteToCharUnicodeBig.java \ - sun/io/ByteToCharUnicodeBigUnmarked.java \ - sun/io/ByteToCharUnicodeLittle.java \ - sun/io/ByteToCharUnicodeLittleUnmarked.java \ - sun/io/CharToByteConverter.java \ - sun/io/CharToByteASCII.java \ - sun/io/CharToByteUTF8.java \ - sun/io/CharToByteUTF16.java \ - sun/io/CharToByteUnicode.java \ - sun/io/CharToByteUnicodeBig.java \ - sun/io/CharToByteUnicodeBigUnmarked.java \ - sun/io/CharToByteUnicodeLittle.java \ - sun/io/CharToByteUnicodeLittleUnmarked.java \ - sun/io/CharacterEncoding.java \ - sun/io/ConversionBufferFullException.java \ - sun/io/MalformedInputException.java \ - sun/io/UnknownCharacterException.java \ - sun/io/ByteToCharISO8859_1.java \ - sun/io/CharToByteISO8859_1.java \ - sun/io/ByteToCharISO8859_2.java \ - sun/io/CharToByteISO8859_2.java \ - sun/io/ByteToCharISO8859_4.java \ - sun/io/CharToByteISO8859_4.java \ - sun/io/ByteToCharISO8859_5.java \ - sun/io/CharToByteISO8859_5.java \ - sun/io/ByteToCharISO8859_7.java \ - sun/io/CharToByteISO8859_7.java \ - sun/io/ByteToCharISO8859_9.java \ - sun/io/CharToByteISO8859_9.java \ - sun/io/ByteToCharISO8859_13.java \ - sun/io/CharToByteISO8859_13.java \ - sun/io/ByteToCharISO8859_15.java \ - sun/io/CharToByteISO8859_15.java \ - sun/io/ByteToCharCp1250.java \ - sun/io/CharToByteCp1250.java \ - sun/io/ByteToCharCp1251.java \ - sun/io/CharToByteCp1251.java \ - sun/io/ByteToCharCp1252.java \ - sun/io/CharToByteCp1252.java \ - sun/io/ByteToCharCp1253.java \ - sun/io/CharToByteCp1253.java \ - sun/io/ByteToCharCp1254.java \ - sun/io/CharToByteCp1254.java \ - sun/io/ByteToCharCp1257.java \ - sun/io/CharToByteCp1257.java \ - sun/io/ByteToCharKOI8_R.java \ - sun/io/CharToByteKOI8_R.java \ - sun/io/ByteToCharSingleByte.java \ - sun/io/CharToByteSingleByte.java - - - diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/java/sun_nio/Makefile --- a/jdk/make/java/sun_nio/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/java/sun_nio/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -31,8 +31,7 @@ PACKAGE = sun.nio PRODUCT = sun -JAVAC_MAX_WARNINGS = false -JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation +JAVAC_MAX_WARNINGS = true JAVAC_WARNINGS_FATAL = true include $(BUILDDIR)/common/Defs.gmk diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/javax/crypto/Makefile --- a/jdk/make/javax/crypto/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/javax/crypto/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -128,6 +128,8 @@ endif endif +JAVAC_MAX_WARNINGS = true +JAVAC_WARNINGS_FATAL = true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/javax/others/Makefile --- a/jdk/make/javax/others/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/javax/others/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2011, 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 @@ -28,6 +28,7 @@ # BUILDDIR = ../.. +JAVAC_MAX_WARNINGS = true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/sun/nio/cs/FILES_java.gmk --- a/jdk/make/sun/nio/cs/FILES_java.gmk Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/sun/nio/cs/FILES_java.gmk Mon Aug 29 14:29:23 2011 -0700 @@ -29,277 +29,6 @@ # Core character converters are built from make/java/java. # -FILES_src = \ - sun/io/ByteToCharDoubleByte.java \ - sun/io/ByteToCharDBCS_ASCII.java \ - sun/io/ByteToCharDBCS_EBCDIC.java \ - sun/io/ByteToCharEUC.java \ - sun/io/CharToByteDoubleByte.java \ - sun/io/CharToByteDBCS_ASCII.java \ - sun/io/CharToByteDBCS_EBCDIC.java \ - sun/io/CharToByteEUC.java \ - sun/io/ByteToCharBig5.java \ - sun/io/ByteToCharBig5_Solaris.java \ - sun/io/ByteToCharBig5_HKSCS.java \ - sun/io/ByteToCharMS950_HKSCS.java \ - sun/io/ByteToCharGB18030.java \ - sun/io/ByteToCharGB18030DB.java \ - sun/io/ByteToCharCp037.java \ - sun/io/ByteToCharCp1006.java \ - sun/io/ByteToCharCp1025.java \ - sun/io/ByteToCharCp1026.java \ - sun/io/ByteToCharCp1046.java \ - sun/io/ByteToCharCp1047.java \ - sun/io/ByteToCharCp1097.java \ - sun/io/ByteToCharCp1098.java \ - sun/io/ByteToCharCp1112.java \ - sun/io/ByteToCharCp1122.java \ - sun/io/ByteToCharCp1123.java \ - sun/io/ByteToCharCp1124.java \ - sun/io/ByteToCharCp1140.java \ - sun/io/ByteToCharCp1141.java \ - sun/io/ByteToCharCp1142.java \ - sun/io/ByteToCharCp1143.java \ - sun/io/ByteToCharCp1144.java \ - sun/io/ByteToCharCp1145.java \ - sun/io/ByteToCharCp1146.java \ - sun/io/ByteToCharCp1147.java \ - sun/io/ByteToCharCp1148.java \ - sun/io/ByteToCharCp1149.java \ - sun/io/ByteToCharCp1255.java \ - sun/io/ByteToCharCp1256.java \ - sun/io/ByteToCharCp1258.java \ - sun/io/ByteToCharCp1381.java \ - sun/io/ByteToCharCp1383.java \ - sun/io/ByteToCharCp273.java \ - sun/io/ByteToCharCp277.java \ - sun/io/ByteToCharCp278.java \ - sun/io/ByteToCharCp280.java \ - sun/io/ByteToCharCp284.java \ - sun/io/ByteToCharCp285.java \ - sun/io/ByteToCharCp297.java \ - sun/io/ByteToCharCp33722.java \ - sun/io/ByteToCharCp420.java \ - sun/io/ByteToCharCp424.java \ - sun/io/ByteToCharCp437.java \ - 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 \ - sun/io/ByteToCharCp852.java \ - sun/io/ByteToCharCp855.java \ - sun/io/ByteToCharCp856.java \ - sun/io/ByteToCharCp857.java \ - sun/io/ByteToCharCp858.java \ - sun/io/ByteToCharCp860.java \ - sun/io/ByteToCharCp861.java \ - sun/io/ByteToCharCp862.java \ - sun/io/ByteToCharCp863.java \ - sun/io/ByteToCharCp864.java \ - sun/io/ByteToCharCp865.java \ - sun/io/ByteToCharCp866.java \ - sun/io/ByteToCharCp868.java \ - sun/io/ByteToCharCp869.java \ - sun/io/ByteToCharCp870.java \ - sun/io/ByteToCharCp871.java \ - sun/io/ByteToCharCp874.java \ - sun/io/ByteToCharCp875.java \ - sun/io/ByteToCharCp918.java \ - sun/io/ByteToCharCp921.java \ - sun/io/ByteToCharCp922.java \ - sun/io/ByteToCharCp930.java \ - sun/io/ByteToCharCp933.java \ - sun/io/ByteToCharCp935.java \ - sun/io/ByteToCharCp937.java \ - sun/io/ByteToCharCp939.java \ - sun/io/ByteToCharCp942.java \ - sun/io/ByteToCharCp942C.java \ - sun/io/ByteToCharCp943.java \ - sun/io/ByteToCharCp943C.java \ - sun/io/ByteToCharCp948.java \ - sun/io/ByteToCharCp949.java \ - sun/io/ByteToCharCp949C.java \ - sun/io/ByteToCharCp950.java \ - sun/io/ByteToCharCp964.java \ - sun/io/ByteToCharCp970.java \ - sun/io/ByteToCharJIS0201.java \ - sun/io/ByteToCharJIS0208.java \ - sun/io/ByteToCharJIS0208_Solaris.java \ - sun/io/ByteToCharJIS0212.java \ - sun/io/ByteToCharJIS0212_Solaris.java \ - sun/io/ByteToCharEUC_CN.java \ - sun/io/ByteToCharEUC_JP.java \ - sun/io/ByteToCharEUC_JP_LINUX.java \ - sun/io/ByteToCharEUC_JP_Solaris.java \ - sun/io/ByteToCharEUC_KR.java \ - sun/io/ByteToCharEUC_TW.java \ - sun/io/ByteToCharSJIS.java \ - sun/io/ByteToCharPCK.java \ - sun/io/ByteToCharGBK.java \ - sun/io/ByteToCharISCII91.java \ - sun/io/ByteToCharISO2022.java \ - sun/io/ByteToCharISO2022CN.java \ - sun/io/ByteToCharISO2022JP.java \ - sun/io/ByteToCharISO2022KR.java \ - sun/io/ByteToCharISO8859_3.java \ - sun/io/ByteToCharISO8859_6.java \ - sun/io/ByteToCharISO8859_8.java \ - sun/io/ByteToCharJISAutoDetect.java \ - sun/io/ByteToCharJohab.java \ - sun/io/ByteToCharMS874.java \ - sun/io/ByteToCharMS932.java \ - sun/io/ByteToCharMS936.java \ - sun/io/ByteToCharMS949.java \ - sun/io/ByteToCharMS950.java \ - sun/io/ByteToCharMacArabic.java \ - sun/io/ByteToCharMacCentralEurope.java \ - sun/io/ByteToCharMacCroatian.java \ - sun/io/ByteToCharMacCyrillic.java \ - sun/io/ByteToCharMacDingbat.java \ - sun/io/ByteToCharMacGreek.java \ - sun/io/ByteToCharMacHebrew.java \ - sun/io/ByteToCharMacIceland.java \ - sun/io/ByteToCharMacRoman.java \ - sun/io/ByteToCharMacRomania.java \ - sun/io/ByteToCharMacSymbol.java \ - sun/io/ByteToCharMacThai.java \ - sun/io/ByteToCharMacTurkish.java \ - sun/io/ByteToCharMacUkraine.java \ - sun/io/ByteToCharTIS620.java \ - sun/io/CharToByteBig5.java \ - sun/io/CharToByteBig5_Solaris.java \ - sun/io/CharToByteBig5_HKSCS.java \ - sun/io/CharToByteMS950_HKSCS.java \ - sun/io/CharToByteGB18030.java \ - sun/io/CharToByteCp037.java \ - sun/io/CharToByteCp1006.java \ - sun/io/CharToByteCp1025.java \ - sun/io/CharToByteCp1026.java \ - sun/io/CharToByteCp1046.java \ - sun/io/CharToByteCp1047.java \ - sun/io/CharToByteCp1097.java \ - sun/io/CharToByteCp1098.java \ - sun/io/CharToByteCp1112.java \ - sun/io/CharToByteCp1122.java \ - sun/io/CharToByteCp1123.java \ - sun/io/CharToByteCp1124.java \ - sun/io/CharToByteCp1140.java \ - sun/io/CharToByteCp1141.java \ - sun/io/CharToByteCp1142.java \ - sun/io/CharToByteCp1143.java \ - sun/io/CharToByteCp1144.java \ - sun/io/CharToByteCp1145.java \ - sun/io/CharToByteCp1146.java \ - sun/io/CharToByteCp1147.java \ - sun/io/CharToByteCp1148.java \ - sun/io/CharToByteCp1149.java \ - sun/io/CharToByteCp1255.java \ - sun/io/CharToByteCp1256.java \ - sun/io/CharToByteCp1258.java \ - sun/io/CharToByteCp1381.java \ - sun/io/CharToByteCp1383.java \ - sun/io/CharToByteCp273.java \ - sun/io/CharToByteCp277.java \ - sun/io/CharToByteCp278.java \ - sun/io/CharToByteCp280.java \ - sun/io/CharToByteCp284.java \ - sun/io/CharToByteCp285.java \ - sun/io/CharToByteCp297.java \ - sun/io/CharToByteCp33722.java \ - sun/io/CharToByteCp420.java \ - sun/io/CharToByteCp424.java \ - sun/io/CharToByteCp437.java \ - 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 \ - sun/io/CharToByteCp852.java \ - sun/io/CharToByteCp855.java \ - sun/io/CharToByteCp856.java \ - sun/io/CharToByteCp857.java \ - sun/io/CharToByteCp858.java \ - sun/io/CharToByteCp860.java \ - sun/io/CharToByteCp861.java \ - sun/io/CharToByteCp862.java \ - sun/io/CharToByteCp863.java \ - sun/io/CharToByteCp864.java \ - sun/io/CharToByteCp865.java \ - sun/io/CharToByteCp866.java \ - sun/io/CharToByteCp868.java \ - sun/io/CharToByteCp869.java \ - sun/io/CharToByteCp870.java \ - sun/io/CharToByteCp871.java \ - sun/io/CharToByteCp874.java \ - sun/io/CharToByteCp875.java \ - sun/io/CharToByteCp918.java \ - sun/io/CharToByteCp921.java \ - sun/io/CharToByteCp922.java \ - sun/io/CharToByteCp930.java \ - sun/io/CharToByteCp933.java \ - sun/io/CharToByteCp935.java \ - sun/io/CharToByteCp937.java \ - sun/io/CharToByteCp939.java \ - sun/io/CharToByteCp942.java \ - sun/io/CharToByteCp942C.java \ - sun/io/CharToByteCp943.java \ - sun/io/CharToByteCp943C.java \ - sun/io/CharToByteCp948.java \ - sun/io/CharToByteCp949.java \ - sun/io/CharToByteCp949C.java \ - sun/io/CharToByteCp950.java \ - sun/io/CharToByteCp964.java \ - sun/io/CharToByteCp970.java \ - sun/io/CharToByteJIS0201.java \ - sun/io/CharToByteJIS0208.java \ - sun/io/CharToByteJIS0208_Solaris.java \ - sun/io/CharToByteJIS0212.java \ - sun/io/CharToByteJIS0212_Solaris.java \ - sun/io/CharToByteEUC_CN.java \ - sun/io/CharToByteEUC_JP.java \ - sun/io/CharToByteEUC_JP_LINUX.java \ - sun/io/CharToByteEUC_JP_Solaris.java \ - sun/io/CharToByteEUC_KR.java \ - sun/io/CharToByteEUC_TW.java \ - sun/io/CharToByteSJIS.java \ - sun/io/CharToBytePCK.java \ - sun/io/CharToByteGBK.java \ - sun/io/CharToByteISCII91.java \ - sun/io/CharToByteISO2022.java \ - sun/io/CharToByteISO2022CN_CNS.java \ - sun/io/CharToByteISO2022CN_GB.java \ - sun/io/CharToByteISO2022JP.java \ - sun/io/CharToByteISO2022KR.java \ - sun/io/CharToByteISO8859_3.java \ - sun/io/CharToByteISO8859_6.java \ - sun/io/CharToByteISO8859_8.java \ - sun/io/CharToByteJohab.java \ - sun/io/CharToByteMS874.java \ - sun/io/CharToByteMS932.java \ - sun/io/CharToByteMS936.java \ - sun/io/CharToByteMS949.java \ - sun/io/CharToByteMS950.java \ - sun/io/CharToByteMacArabic.java \ - sun/io/CharToByteMacCentralEurope.java \ - sun/io/CharToByteMacCroatian.java \ - sun/io/CharToByteMacCyrillic.java \ - sun/io/CharToByteMacDingbat.java \ - sun/io/CharToByteMacGreek.java \ - sun/io/CharToByteMacHebrew.java \ - sun/io/CharToByteMacIceland.java \ - sun/io/CharToByteMacRoman.java \ - sun/io/CharToByteMacRomania.java \ - sun/io/CharToByteMacSymbol.java \ - sun/io/CharToByteMacThai.java \ - sun/io/CharToByteMacTurkish.java \ - sun/io/CharToByteMacUkraine.java \ - sun/io/CharToByteTIS620.java - FILES_gen_extcs = \ sun/nio/cs/ext/IBM037.java \ sun/nio/cs/ext/IBM1006.java \ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/sun/security/Makefile --- a/jdk/make/sun/security/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/sun/security/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -34,6 +34,8 @@ # BUILDDIR = ../.. +SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true +SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk # build sun/security/jgss/wrapper on non-windows platform diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/sun/security/ec/Makefile --- a/jdk/make/sun/security/ec/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/sun/security/ec/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -109,6 +109,9 @@ endif endif +JAVAC_MAX_WARNINGS=false +JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation +JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/sun/security/other/Makefile --- a/jdk/make/sun/security/other/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/sun/security/other/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2011, 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 @@ -26,6 +26,9 @@ BUILDDIR = ../../.. PACKAGE = sun.security.other PRODUCT = sun +JAVAC_MAX_WARNINGS=false +JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation +JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/sun/security/pkcs11/Makefile --- a/jdk/make/sun/security/pkcs11/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/sun/security/pkcs11/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -110,6 +110,9 @@ endif endif +JAVAC_MAX_WARNINGS=false +JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation +JAVAC_WARNINGS_FATAL=true include $(BUILDDIR)/common/Defs.gmk # diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/make/tools/CharsetMapping/SingleByte-X.java.template --- a/jdk/make/tools/CharsetMapping/SingleByte-X.java.template Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/make/tools/CharsetMapping/SingleByte-X.java.template Mon Aug 29 14:29:23 2011 -0700 @@ -55,18 +55,6 @@ return new SingleByte.Encoder(this, c2b, c2bIndex); } - public String getDecoderSingleByteMappings() { - return b2cTable; - } - - public char[] getEncoderIndex2() { - return c2b; - } - - public char[] getEncoderIndex1() { - return c2bIndex; - } - private final static String b2cTable = $B2CTABLE$ private final static char[] b2c = b2cTable.toCharArray(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java --- a/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -245,7 +245,7 @@ for (j = 0; j < 8; j++) { tmp = AA[i][j]; AA[i][j] = AA[t][j]; - AA[t][j] = (byte) tmp; + AA[t][j] = tmp; } pivot = AA[i][i]; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -25,13 +25,10 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; -import sun.security.util.*; import java.security.AlgorithmParametersSpi; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; -import javax.crypto.spec.IvParameterSpec; /** * This class implements the parameter (IV) used with the AES algorithm @@ -67,9 +64,15 @@ core.init(encoded, decodingMethod); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { - return core.getParameterSpec(paramSpec); + if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) { + return core.getParameterSpec(paramSpec); + } else { + throw new InvalidParameterSpecException + ("Inappropriate parameter Specification"); + } } protected byte[] engineGetEncoded() throws IOException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java --- a/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; import sun.security.util.*; import sun.misc.HexDumpEncoder; @@ -64,7 +63,7 @@ throw new InvalidParameterSpecException("IV not " + block_size + " bytes long"); } - iv = (byte[]) tmpIv.clone(); + iv = tmpIv.clone(); } void init(byte[] encoded) throws IOException { @@ -90,11 +89,11 @@ init(encoded); } - AlgorithmParameterSpec getParameterSpec(Class paramSpec) + T getParameterSpec(Class paramSpec) throws InvalidParameterSpecException { if (IvParameterSpec.class.isAssignableFrom(paramSpec)) { - return new IvParameterSpec(this.iv); + return paramSpec.cast(new IvParameterSpec(this.iv)); } else { throw new InvalidParameterSpecException ("Inappropriate parameter specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,13 +25,10 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; -import sun.security.util.*; import java.security.AlgorithmParametersSpi; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; -import javax.crypto.spec.IvParameterSpec; /** * This class implements the parameter (IV) used with the Blowfish algorithm in @@ -68,9 +65,15 @@ core.init(encoded, decodingMethod); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { - return core.getParameterSpec(paramSpec); + if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) { + return core.getParameterSpec(paramSpec); + } else { + throw new InvalidParameterSpecException + ("Inappropriate parameter Specification"); + } } protected byte[] engineGetEncoded() throws IOException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java --- a/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -193,7 +193,7 @@ // This is necessary because in this constellation, a // ciphertext block (or parts of it) will be overridden by // the plaintext result. - cipherOrig = (byte[])cipher.clone(); + cipherOrig = cipher.clone(); } for (; cipherOffset < endIndex; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java --- a/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -301,7 +301,7 @@ */ byte[] getIV() { byte[] iv = cipher.getIV(); - return (iv == null) ? null : (byte[])iv.clone(); + return (iv == null) ? null : iv.clone(); } /** @@ -475,8 +475,7 @@ IvParameterSpec ivSpec = null; if (params != null) { try { - ivSpec = (IvParameterSpec)params.getParameterSpec - (IvParameterSpec.class); + ivSpec = params.getParameterSpec(IvParameterSpec.class); } catch (InvalidParameterSpecException ipse) { throw new InvalidAlgorithmParameterException("Wrong parameter " + "type: IV " @@ -832,7 +831,7 @@ buffered = 0; diffBlocksize = blockSize; if (cipherMode != ECB_MODE) { - ((FeedbackCipher)cipher).reset(); + cipher.reset(); } return totalLen; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -622,17 +622,17 @@ // mangler function: // every 6 bit is fed into the sbox, which // produces 4-bit output - left ^= s0p[(int)((temp & 0x3f) ^ key[j+0])] - ^ s1p[(int)(((temp >> 4) & 0x3f) ^ key[j+1])] - ^ s2p[(int)(((temp >> 8) & 0x3f) ^ key[j+2])] - ^ s3p[(int)(((temp >> 12) & 0x3f) ^ key[j+3])] - ^ s4p[(int)(((temp >> 16) & 0x3f) ^ key[j+4])] - ^ s5p[(int)(((temp >> 20) & 0x3f) ^ key[j+5])] - ^ s6p[(int)(((temp >> 24) & 0x3f) ^ key[j+6])]; + left ^= s0p[(temp & 0x3f) ^ key[j+0]] + ^ s1p[((temp >> 4) & 0x3f) ^ key[j+1]] + ^ s2p[((temp >> 8) & 0x3f) ^ key[j+2]] + ^ s3p[((temp >> 12) & 0x3f) ^ key[j+3]] + ^ s4p[((temp >> 16) & 0x3f) ^ key[j+4]] + ^ s5p[((temp >> 20) & 0x3f) ^ key[j+5]] + ^ s6p[((temp >> 24) & 0x3f) ^ key[j+6]]; // make the last sbox input the last bit from right[0] temp = ((right & 1) << 5) | ((right >> 27) & 0x1f); - left ^= s7p[(int)(temp ^ key[j+7])]; + left ^= s7p[temp ^ key[j+7]]; temp = left; left = right; right = temp; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESKey.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -78,7 +78,7 @@ public byte[] getEncoded() { // Return a copy of the key, rather than a reference, // so that the key data cannot be modified from outside - return (byte[])this.key.clone(); + return this.key.clone(); } public String getAlgorithm() { @@ -126,7 +126,7 @@ throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); - key = (byte[])key.clone(); + key = key.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -92,7 +92,7 @@ * inappropriate for the given key, or the given key cannot be processed * (e.g., the given key has an unrecognized algorithm or format). */ - protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException { try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,13 +25,10 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; -import sun.security.util.*; import java.security.AlgorithmParametersSpi; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; -import javax.crypto.spec.IvParameterSpec; /** * This class implements the parameter (IV) used with the DES algorithm in @@ -68,9 +65,15 @@ core.init(encoded, decodingMethod); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { - return core.getParameterSpec(paramSpec); + if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) { + return core.getParameterSpec(paramSpec); + } else { + throw new InvalidParameterSpecException + ("Inappropriate parameter Specification"); + } } protected byte[] engineGetEncoded() throws IOException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -78,7 +78,7 @@ } public byte[] getEncoded() { - return (byte[])this.key.clone(); + return this.key.clone(); } public String getAlgorithm() { @@ -127,7 +127,7 @@ throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); - key = (byte[])key.clone(); + key = key.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -92,7 +92,7 @@ * inappropriate for the given key, or the given key cannot be processed * (e.g., the given key has an unrecognized algorithm or format). */ - protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException { try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,13 +25,10 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; -import sun.security.util.*; import java.security.AlgorithmParametersSpi; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; -import javax.crypto.spec.IvParameterSpec; /** * This class implements the parameter (IV) used with the Triple DES algorithm @@ -67,9 +64,15 @@ core.init(encoded, decodingMethod); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { - return core.getParameterSpec(paramSpec); + if (AlgorithmParameterSpec.class.isAssignableFrom(paramSpec)) { + return core.getParameterSpec(paramSpec); + } else { + throw new InvalidParameterSpecException + ("Inappropriate parameter Specification"); + } } protected byte[] engineGetEncoded() throws IOException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.util.Arrays; import java.security.*; import java.security.spec.*; import javax.crypto.*; @@ -151,7 +150,7 @@ * been set. */ protected byte[] engineGetIV() { - return (iv == null? null:(byte[]) iv.clone()); + return (iv == null) ? null : iv.clone(); } /** @@ -277,8 +276,7 @@ try { DESedeParameters paramsEng = new DESedeParameters(); paramsEng.engineInit(params.getEncoded()); - ivSpec = (IvParameterSpec) - paramsEng.engineGetParameterSpec(IvParameterSpec.class); + ivSpec = paramsEng.engineGetParameterSpec(IvParameterSpec.class); } catch (Exception ex) { InvalidAlgorithmParameterException iape = new InvalidAlgorithmParameterException diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,8 +25,6 @@ package com.sun.crypto.provider; -import java.util.*; -import java.lang.*; import java.security.Key; import java.security.PublicKey; import java.security.PrivateKey; @@ -140,7 +138,8 @@ * inappropriate for the given key, or the given key cannot be processed * (e.g., the given key has an unrecognized algorithm or format). */ - protected KeySpec engineGetKeySpec(Key key, Class keySpec) + protected + T engineGetKeySpec(Key key, Class keySpec) throws InvalidKeySpecException { DHParameterSpec params; @@ -150,12 +149,12 @@ javax.crypto.interfaces.DHPublicKey dhPubKey = (javax.crypto.interfaces.DHPublicKey) key; params = dhPubKey.getParams(); - return new DHPublicKeySpec(dhPubKey.getY(), - params.getP(), - params.getG()); + return keySpec.cast(new DHPublicKeySpec(dhPubKey.getY(), + params.getP(), + params.getG())); } else if (X509EncodedKeySpec.class.isAssignableFrom(keySpec)) { - return new X509EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new X509EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException @@ -168,12 +167,12 @@ javax.crypto.interfaces.DHPrivateKey dhPrivKey = (javax.crypto.interfaces.DHPrivateKey)key; params = dhPrivKey.getParams(); - return new DHPrivateKeySpec(dhPrivKey.getX(), - params.getP(), - params.getG()); + return keySpec.cast(new DHPrivateKeySpec(dhPrivKey.getX(), + params.getP(), + params.getG())); } else if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)) { - return new PKCS8EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException @@ -208,8 +207,7 @@ } // Convert key to spec DHPublicKeySpec dhPubKeySpec - = (DHPublicKeySpec)engineGetKeySpec - (key, DHPublicKeySpec.class); + = engineGetKeySpec(key, DHPublicKeySpec.class); // Create key from spec, and return it return engineGeneratePublic(dhPubKeySpec); @@ -220,8 +218,7 @@ } // Convert key to spec DHPrivateKeySpec dhPrivKeySpec - = (DHPrivateKeySpec)engineGetKeySpec - (key, DHPrivateKeySpec.class); + = engineGetKeySpec(key, DHPrivateKeySpec.class); // Create key from spec, and return it return engineGeneratePrivate(dhPrivKeySpec); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.math.BigInteger; import java.security.*; import java.security.spec.*; import javax.crypto.spec.DHParameterSpec; @@ -141,8 +140,7 @@ paramGen = AlgorithmParameterGenerator.getInstance("DSA"); paramGen.init(this.primeSize, random); algParams = paramGen.generateParameters(); - dsaParamSpec = (DSAParameterSpec) - algParams.getParameterSpec(DSAParameterSpec.class); + dsaParamSpec = algParams.getParameterSpec(DSAParameterSpec.class); DHParameterSpec dhParamSpec; if (this.exponentSize > 0) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; import sun.security.util.*; import java.math.BigInteger; @@ -95,11 +94,12 @@ engineInit(params); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { if (DHParameterSpec.class.isAssignableFrom(paramSpec)) { - return new DHParameterSpec(this.p, this.g, this.l); + return paramSpec.cast(new DHParameterSpec(this.p, this.g, this.l)); } else { throw new InvalidParameterSpecException ("Inappropriate parameter Specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -31,7 +31,6 @@ import java.security.PrivateKey; import java.security.InvalidKeyException; import java.security.ProviderException; -import javax.crypto.*; import javax.crypto.spec.DHParameterSpec; import sun.security.util.*; @@ -182,7 +181,7 @@ // ignore OPTIONAL attributes - this.encodedKey = (byte[])encodedKey.clone(); + this.encodedKey = encodedKey.clone(); } catch (NumberFormatException e) { InvalidKeyException ike = new InvalidKeyException( @@ -256,7 +255,7 @@ return null; } } - return (byte[])this.encodedKey.clone(); + return this.encodedKey.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java --- a/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -29,10 +29,8 @@ import java.math.BigInteger; import java.security.KeyRep; import java.security.InvalidKeyException; -import java.security.InvalidAlgorithmParameterException; import java.security.ProviderException; import java.security.PublicKey; -import javax.crypto.*; import javax.crypto.spec.DHParameterSpec; import sun.security.util.*; @@ -174,7 +172,7 @@ throw new InvalidKeyException("Excess key data"); } - this.encodedKey = (byte[])encodedKey.clone(); + this.encodedKey = encodedKey.clone(); } catch (NumberFormatException e) { throw new InvalidKeyException("Private-value length too big"); @@ -237,7 +235,7 @@ return null; } } - return (byte[])this.encodedKey.clone(); + return this.encodedKey.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java --- a/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -77,7 +77,7 @@ if (seq[1].data.available() != 0) throw new IOException("encryptedData field overrun"); - this.encoded = (byte[])encoded.clone(); + this.encoded = encoded.clone(); } /** @@ -86,7 +86,7 @@ */ EncryptedPrivateKeyInfo(AlgorithmId algid, byte[] encryptedData) { this.algid = algid; - this.encryptedData = (byte[])encryptedData.clone(); + this.encryptedData = encryptedData.clone(); this.encoded = null; // lazy generation of encoding } @@ -101,7 +101,7 @@ * Returns the encrypted data. */ byte[] getEncryptedData() { - return (byte[])this.encryptedData.clone(); + return this.encryptedData.clone(); } /** @@ -110,7 +110,7 @@ byte[] getEncoded() throws IOException { - if (this.encoded != null) return (byte[])this.encoded.clone(); + if (this.encoded != null) return this.encoded.clone(); DerOutputStream out = new DerOutputStream(); DerOutputStream tmp = new DerOutputStream(); @@ -125,6 +125,6 @@ out.write(DerValue.tag_Sequence, tmp); this.encoded = out.toByteArray(); - return (byte[])this.encoded.clone(); + return this.encoded.clone(); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java --- a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -78,8 +78,8 @@ private HmacCore(HmacCore other) throws CloneNotSupportedException { this.md = (MessageDigest)other.md.clone(); this.blockLen = other.blockLen; - this.k_ipad = (byte[])other.k_ipad.clone(); - this.k_opad = (byte[])other.k_opad.clone(); + this.k_ipad = other.k_ipad.clone(); + this.k_opad = other.k_opad.clone(); this.first = other.first; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java --- a/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -38,9 +38,7 @@ import java.security.UnrecoverableKeyException; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; import java.security.cert.CertificateException; -import java.security.spec.InvalidKeySpecException; import javax.crypto.SealedObject; /** @@ -87,7 +85,7 @@ * Private keys and certificates are stored in a hashtable. * Hash entries are keyed by alias names. */ - private Hashtable entries = new Hashtable(); + private Hashtable entries = new Hashtable(); /** * Returns the key associated with the given alias, using the given @@ -156,7 +154,7 @@ if ((entry instanceof PrivateKeyEntry) && (((PrivateKeyEntry)entry).chain != null)) { - chain = (Certificate[])((PrivateKeyEntry)entry).chain.clone(); + chain = ((PrivateKeyEntry)entry).chain.clone(); } return chain; @@ -262,7 +260,7 @@ // clone the chain if ((chain != null) && (chain.length !=0)) { - entry.chain = (Certificate[])chain.clone(); + entry.chain = chain.clone(); } else { entry.chain = null; } @@ -316,10 +314,10 @@ PrivateKeyEntry entry = new PrivateKeyEntry(); entry.date = new Date(); - entry.protectedKey = (byte[])key.clone(); + entry.protectedKey = key.clone(); if ((chain != null) && (chain.length != 0)) { - entry.chain = (Certificate[])chain.clone(); + entry.chain = chain.clone(); } else { entry.chain = null; } @@ -384,7 +382,7 @@ * * @return enumeration of the alias names */ - public Enumeration engineAliases() { + public Enumeration engineAliases() { return entries.keys(); } @@ -462,9 +460,9 @@ public String engineGetCertificateAlias(Certificate cert) { Certificate certElem; - Enumeration e = entries.keys(); + Enumeration e = entries.keys(); while (e.hasMoreElements()) { - String alias = (String)e.nextElement(); + String alias = e.nextElement(); Object entry = entries.get(alias); if (entry instanceof TrustedCertEntry) { certElem = ((TrustedCertEntry)entry).cert; @@ -560,10 +558,10 @@ dos.writeInt(entries.size()); - Enumeration e = entries.keys(); + Enumeration e = entries.keys(); while (e.hasMoreElements()) { - String alias = (String)e.nextElement(); + String alias = e.nextElement(); Object entry = entries.get(alias); if (entry instanceof PrivateKeyEntry) { @@ -677,7 +675,7 @@ DataInputStream dis; MessageDigest md = null; CertificateFactory cf = null; - Hashtable cfs = null; + Hashtable cfs = null; ByteArrayInputStream bais = null; byte[] encoded = null; @@ -713,7 +711,7 @@ cf = CertificateFactory.getInstance("X509"); } else { // version 2 - cfs = new Hashtable(3); + cfs = new Hashtable(3); } entries.clear(); @@ -761,7 +759,7 @@ String certType = dis.readUTF(); if (cfs.containsKey(certType)) { // reuse certificate factory - cf = (CertificateFactory)cfs.get(certType); + cf = cfs.get(certType); } else { // create new certificate factory cf = CertificateFactory.getInstance( @@ -803,7 +801,7 @@ String certType = dis.readUTF(); if (cfs.containsKey(certType)) { // reuse certificate factory - cf = (CertificateFactory)cfs.get(certType); + cf = cfs.get(certType); } else { // create new certificate factory cf = CertificateFactory.getInstance(certType); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java --- a/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,14 +25,8 @@ package com.sun.crypto.provider; -import java.io.UnsupportedEncodingException; import java.io.IOException; import java.io.Serializable; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.ObjectInputStream.GetField; import java.security.Security; import java.security.Key; import java.security.PrivateKey; @@ -42,22 +36,14 @@ import java.security.GeneralSecurityException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; -import java.security.SecureRandom; import java.security.UnrecoverableKeyException; -import java.security.InvalidParameterException; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; import java.security.AlgorithmParameters; -import java.security.spec.InvalidParameterSpecException; -import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import javax.crypto.Cipher; import javax.crypto.CipherSpi; import javax.crypto.SecretKey; -import javax.crypto.NoSuchPaddingException; import javax.crypto.IllegalBlockSizeException; -import javax.crypto.BadPaddingException; import javax.crypto.SealedObject; import javax.crypto.spec.*; import sun.security.x509.AlgorithmId; @@ -127,7 +113,7 @@ PBEWithMD5AndTripleDESCipher cipher; cipher = new PBEWithMD5AndTripleDESCipher(); cipher.engineInit(Cipher.ENCRYPT_MODE, sKey, pbeSpec, null); - byte[] plain = (byte[])key.getEncoded(); + byte[] plain = key.getEncoded(); byte[] encrKey = cipher.engineDoFinal(plain, 0, plain.length); // wrap encrypted private key in EncryptedPrivateKeyInfo @@ -169,8 +155,8 @@ AlgorithmParameters pbeParams = AlgorithmParameters.getInstance("PBE"); pbeParams.init(encodedParams); - PBEParameterSpec pbeSpec = (PBEParameterSpec) - pbeParams.getParameterSpec(PBEParameterSpec.class); + PBEParameterSpec pbeSpec = + pbeParams.getParameterSpec(PBEParameterSpec.class); // create PBE key from password PBEKeySpec pbeKeySpec = new PBEKeySpec(this.password); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -26,7 +26,6 @@ package com.sun.crypto.provider; import java.math.BigInteger; -import java.util.*; import java.io.*; import sun.security.util.*; import sun.security.x509.*; @@ -180,11 +179,13 @@ engineInit(encoded); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { if (OAEPParameterSpec.class.isAssignableFrom(paramSpec)) { - return new OAEPParameterSpec(mdName, "MGF1", mgfSpec, - new PSource.PSpecified(p)); + return paramSpec.cast( + new OAEPParameterSpec(mdName, "MGF1", mgfSpec, + new PSource.PSpecified(p))); } else { throw new InvalidParameterSpecException ("Inappropriate parameter specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.io.UnsupportedEncodingException; import java.security.*; import java.security.spec.*; import javax.crypto.*; @@ -326,8 +325,7 @@ PBEParameterSpec pbeSpec = null; if (params != null) { try { - pbeSpec = (PBEParameterSpec) params.getParameterSpec - (PBEParameterSpec.class); + pbeSpec = params.getParameterSpec(PBEParameterSpec.class); } catch (InvalidParameterSpecException ipse) { throw new InvalidAlgorithmParameterException("Wrong parameter " + "type: PBE " diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.io.UnsupportedEncodingException; import java.security.KeyRep; import java.security.spec.InvalidKeySpecException; import javax.crypto.SecretKey; @@ -69,7 +68,7 @@ } public byte[] getEncoded() { - return (byte[])this.key.clone(); + return this.key.clone(); } public String getAlgorithm() { @@ -118,7 +117,7 @@ throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); - key = (byte[])key.clone(); + key = key.clone(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.spec.KeySpec; import java.security.spec.InvalidKeySpecException; @@ -132,7 +131,7 @@ * inappropriate for the given key, or the given key cannot be processed * (e.g., the given key has an unrecognized algorithm or format). */ - protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) throws InvalidKeySpecException { if ((key instanceof SecretKey) && (validTypes.contains(key.getAlgorithm().toUpperCase())) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.crypto.provider; -import java.util.*; import java.io.*; import java.math.BigInteger; import java.security.AlgorithmParametersSpi; @@ -65,7 +64,7 @@ throw new InvalidParameterSpecException ("Inappropriate parameter specification"); } - this.salt = (byte[])((PBEParameterSpec)paramSpec).getSalt().clone(); + this.salt = ((PBEParameterSpec)paramSpec).getSalt().clone(); this.iCount = ((PBEParameterSpec)paramSpec).getIterationCount(); } @@ -98,11 +97,12 @@ engineInit(encoded); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { if (PBEParameterSpec.class.isAssignableFrom(paramSpec)) { - return new PBEParameterSpec(this.salt, this.iCount); + return paramSpec.cast(new PBEParameterSpec(this.salt, this.iCount)); } else { throw new InvalidParameterSpecException ("Inappropriate parameter specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -25,14 +25,12 @@ package com.sun.crypto.provider; -import java.io.*; import java.security.InvalidKeyException; import java.security.spec.KeySpec; import java.security.spec.InvalidKeySpecException; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactorySpi; import javax.crypto.spec.PBEKeySpec; -import javax.crypto.spec.SecretKeySpec; /** * This class implements a key factory for PBE keys derived using @@ -88,7 +86,7 @@ * given key cannot be processed (e.g., the given key has an * unrecognized algorithm or format). */ - protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) throws InvalidKeySpecException { if (key instanceof javax.crypto.interfaces.PBEKey) { // Check if requested key spec is amongst the valid ones diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -133,6 +133,7 @@ byte[] ti = new byte[hlen]; // SecretKeySpec cannot be used, since password can be empty here. SecretKey macKey = new SecretKey() { + private static final long serialVersionUID = 7874493593505141603L; @Override public String getAlgorithm() { return prf.getAlgorithm(); @@ -194,7 +195,7 @@ } public byte[] getEncoded() { - return (byte[]) key.clone(); + return key.clone(); } public String getAlgorithm() { @@ -206,7 +207,7 @@ } public char[] getPassword() { - return (char[]) passwd.clone(); + return passwd.clone(); } public byte[] getSalt() { @@ -268,7 +269,7 @@ protected void finalize() throws Throwable { try { if (this.passwd != null) { - java.util.Arrays.fill(this.passwd, (char) '0'); + java.util.Arrays.fill(this.passwd, '0'); this.passwd = null; } if (this.key != null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/PCBC.java --- a/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -145,7 +145,7 @@ for (; plainOffset < endIndex; plainOffset += blockSize, cipherOffset += blockSize) { for (i=0; i + T engineGetParameterSpec(Class paramSpec) throws InvalidParameterSpecException { if (RC2ParameterSpec.class.isAssignableFrom(paramSpec)) { - return (iv == null ? - new RC2ParameterSpec(effectiveKeySize) : - new RC2ParameterSpec(effectiveKeySize, iv)); + return paramSpec.cast((iv == null ? + new RC2ParameterSpec(effectiveKeySize) : + new RC2ParameterSpec(effectiveKeySize, iv))); } else { throw new InvalidParameterSpecException ("Inappropriate parameter specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java --- a/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -227,8 +227,8 @@ init(opmode, key, random, null); } else { try { - OAEPParameterSpec spec = (OAEPParameterSpec) - params.getParameterSpec(OAEPParameterSpec.class); + OAEPParameterSpec spec = + params.getParameterSpec(OAEPParameterSpec.class); init(opmode, key, random, spec); } catch (InvalidParameterSpecException ipse) { InvalidAlgorithmParameterException iape = diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java --- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -27,11 +27,6 @@ import java.security.AccessController; import java.security.Provider; -import java.security.PrivilegedAction; -import java.security.cert.*; -import java.net.URL; -import java.io.ByteArrayInputStream; -import java.security.CodeSource; import java.security.SecureRandom; @@ -105,352 +100,353 @@ "|OFB72|OFB80|OFB88|OFB96|OFB104|OFB112|OFB120|OFB128"; final String BLOCK_PADS = "NOPADDING|PKCS5PADDING|ISO10126PADDING"; - AccessController.doPrivileged(new java.security.PrivilegedAction() { + AccessController.doPrivileged( + new java.security.PrivilegedAction() { public Object run() { - /* - * Cipher engines - */ - put("Cipher.RSA", "com.sun.crypto.provider.RSACipher"); - put("Cipher.RSA SupportedModes", "ECB"); - put("Cipher.RSA SupportedPaddings", - "NOPADDING|PKCS1PADDING|OAEPWITHMD5ANDMGF1PADDING" - + "|OAEPWITHSHA1ANDMGF1PADDING" - + "|OAEPWITHSHA-1ANDMGF1PADDING" - + "|OAEPWITHSHA-256ANDMGF1PADDING" - + "|OAEPWITHSHA-384ANDMGF1PADDING" - + "|OAEPWITHSHA-512ANDMGF1PADDING"); - put("Cipher.RSA SupportedKeyClasses", - "java.security.interfaces.RSAPublicKey" + - "|java.security.interfaces.RSAPrivateKey"); + /* + * Cipher engines + */ + put("Cipher.RSA", "com.sun.crypto.provider.RSACipher"); + put("Cipher.RSA SupportedModes", "ECB"); + put("Cipher.RSA SupportedPaddings", + "NOPADDING|PKCS1PADDING|OAEPWITHMD5ANDMGF1PADDING" + + "|OAEPWITHSHA1ANDMGF1PADDING" + + "|OAEPWITHSHA-1ANDMGF1PADDING" + + "|OAEPWITHSHA-256ANDMGF1PADDING" + + "|OAEPWITHSHA-384ANDMGF1PADDING" + + "|OAEPWITHSHA-512ANDMGF1PADDING"); + put("Cipher.RSA SupportedKeyClasses", + "java.security.interfaces.RSAPublicKey" + + "|java.security.interfaces.RSAPrivateKey"); - put("Cipher.DES", "com.sun.crypto.provider.DESCipher"); - put("Cipher.DES SupportedModes", BLOCK_MODES); - put("Cipher.DES SupportedPaddings", BLOCK_PADS); - put("Cipher.DES SupportedKeyFormats", "RAW"); + put("Cipher.DES", "com.sun.crypto.provider.DESCipher"); + put("Cipher.DES SupportedModes", BLOCK_MODES); + put("Cipher.DES SupportedPaddings", BLOCK_PADS); + put("Cipher.DES SupportedKeyFormats", "RAW"); - put("Cipher.DESede", "com.sun.crypto.provider.DESedeCipher"); - put("Alg.Alias.Cipher.TripleDES", "DESede"); - put("Cipher.DESede SupportedModes", BLOCK_MODES); - put("Cipher.DESede SupportedPaddings", BLOCK_PADS); - put("Cipher.DESede SupportedKeyFormats", "RAW"); + put("Cipher.DESede", "com.sun.crypto.provider.DESedeCipher"); + put("Alg.Alias.Cipher.TripleDES", "DESede"); + put("Cipher.DESede SupportedModes", BLOCK_MODES); + put("Cipher.DESede SupportedPaddings", BLOCK_PADS); + put("Cipher.DESede SupportedKeyFormats", "RAW"); - put("Cipher.DESedeWrap", - "com.sun.crypto.provider.DESedeWrapCipher"); - put("Cipher.DESedeWrap SupportedModes", "CBC"); - put("Cipher.DESedeWrap SupportedPaddings", "NOPADDING"); - put("Cipher.DESedeWrap SupportedKeyFormats", "RAW"); + put("Cipher.DESedeWrap", + "com.sun.crypto.provider.DESedeWrapCipher"); + put("Cipher.DESedeWrap SupportedModes", "CBC"); + put("Cipher.DESedeWrap SupportedPaddings", "NOPADDING"); + put("Cipher.DESedeWrap SupportedKeyFormats", "RAW"); - put("Cipher.PBEWithMD5AndDES", - "com.sun.crypto.provider.PBEWithMD5AndDESCipher"); - put("Alg.Alias.Cipher.OID."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); - put("Alg.Alias.Cipher."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); - put("Cipher.PBEWithMD5AndTripleDES", - "com.sun.crypto.provider.PBEWithMD5AndTripleDESCipher"); - put("Cipher.PBEWithSHA1AndRC2_40", - "com.sun.crypto.provider.PKCS12PBECipherCore$" + - "PBEWithSHA1AndRC2_40"); - put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); - put("Alg.Alias.Cipher." + OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); - put("Cipher.PBEWithSHA1AndDESede", - "com.sun.crypto.provider.PKCS12PBECipherCore$" + - "PBEWithSHA1AndDESede"); - put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); - put("Alg.Alias.Cipher." + OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); + put("Cipher.PBEWithMD5AndDES", + "com.sun.crypto.provider.PBEWithMD5AndDESCipher"); + put("Alg.Alias.Cipher.OID."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); + put("Alg.Alias.Cipher."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); + put("Cipher.PBEWithMD5AndTripleDES", + "com.sun.crypto.provider.PBEWithMD5AndTripleDESCipher"); + put("Cipher.PBEWithSHA1AndRC2_40", + "com.sun.crypto.provider.PKCS12PBECipherCore$" + + "PBEWithSHA1AndRC2_40"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); + put("Alg.Alias.Cipher." + OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); + put("Cipher.PBEWithSHA1AndDESede", + "com.sun.crypto.provider.PKCS12PBECipherCore$" + + "PBEWithSHA1AndDESede"); + put("Alg.Alias.Cipher.OID." + OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); + put("Alg.Alias.Cipher." + OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); - put("Cipher.Blowfish", - "com.sun.crypto.provider.BlowfishCipher"); - put("Cipher.Blowfish SupportedModes", BLOCK_MODES); - put("Cipher.Blowfish SupportedPaddings", BLOCK_PADS); - put("Cipher.Blowfish SupportedKeyFormats", "RAW"); + put("Cipher.Blowfish", + "com.sun.crypto.provider.BlowfishCipher"); + put("Cipher.Blowfish SupportedModes", BLOCK_MODES); + put("Cipher.Blowfish SupportedPaddings", BLOCK_PADS); + put("Cipher.Blowfish SupportedKeyFormats", "RAW"); - put("Cipher.AES", "com.sun.crypto.provider.AESCipher"); - put("Alg.Alias.Cipher.Rijndael", "AES"); - put("Cipher.AES SupportedModes", BLOCK_MODES128); - put("Cipher.AES SupportedPaddings", BLOCK_PADS); - put("Cipher.AES SupportedKeyFormats", "RAW"); + put("Cipher.AES", "com.sun.crypto.provider.AESCipher"); + put("Alg.Alias.Cipher.Rijndael", "AES"); + put("Cipher.AES SupportedModes", BLOCK_MODES128); + put("Cipher.AES SupportedPaddings", BLOCK_PADS); + put("Cipher.AES SupportedKeyFormats", "RAW"); - put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher"); - put("Cipher.AESWrap SupportedModes", "ECB"); - put("Cipher.AESWrap SupportedPaddings", "NOPADDING"); - put("Cipher.AESWrap SupportedKeyFormats", "RAW"); + put("Cipher.AESWrap", "com.sun.crypto.provider.AESWrapCipher"); + put("Cipher.AESWrap SupportedModes", "ECB"); + put("Cipher.AESWrap SupportedPaddings", "NOPADDING"); + put("Cipher.AESWrap SupportedKeyFormats", "RAW"); - put("Cipher.RC2", - "com.sun.crypto.provider.RC2Cipher"); - put("Cipher.RC2 SupportedModes", BLOCK_MODES); - put("Cipher.RC2 SupportedPaddings", BLOCK_PADS); - put("Cipher.RC2 SupportedKeyFormats", "RAW"); + put("Cipher.RC2", + "com.sun.crypto.provider.RC2Cipher"); + put("Cipher.RC2 SupportedModes", BLOCK_MODES); + put("Cipher.RC2 SupportedPaddings", BLOCK_PADS); + put("Cipher.RC2 SupportedKeyFormats", "RAW"); - put("Cipher.ARCFOUR", - "com.sun.crypto.provider.ARCFOURCipher"); - put("Alg.Alias.Cipher.RC4", "ARCFOUR"); - put("Cipher.ARCFOUR SupportedModes", "ECB"); - put("Cipher.ARCFOUR SupportedPaddings", "NOPADDING"); - put("Cipher.ARCFOUR SupportedKeyFormats", "RAW"); + put("Cipher.ARCFOUR", + "com.sun.crypto.provider.ARCFOURCipher"); + put("Alg.Alias.Cipher.RC4", "ARCFOUR"); + put("Cipher.ARCFOUR SupportedModes", "ECB"); + put("Cipher.ARCFOUR SupportedPaddings", "NOPADDING"); + put("Cipher.ARCFOUR SupportedKeyFormats", "RAW"); - /* - * Key(pair) Generator engines - */ - put("KeyGenerator.DES", - "com.sun.crypto.provider.DESKeyGenerator"); + /* + * Key(pair) Generator engines + */ + put("KeyGenerator.DES", + "com.sun.crypto.provider.DESKeyGenerator"); - put("KeyGenerator.DESede", - "com.sun.crypto.provider.DESedeKeyGenerator"); - put("Alg.Alias.KeyGenerator.TripleDES", "DESede"); + put("KeyGenerator.DESede", + "com.sun.crypto.provider.DESedeKeyGenerator"); + put("Alg.Alias.KeyGenerator.TripleDES", "DESede"); - put("KeyGenerator.Blowfish", - "com.sun.crypto.provider.BlowfishKeyGenerator"); + put("KeyGenerator.Blowfish", + "com.sun.crypto.provider.BlowfishKeyGenerator"); - put("KeyGenerator.AES", - "com.sun.crypto.provider.AESKeyGenerator"); - put("Alg.Alias.KeyGenerator.Rijndael", "AES"); + put("KeyGenerator.AES", + "com.sun.crypto.provider.AESKeyGenerator"); + put("Alg.Alias.KeyGenerator.Rijndael", "AES"); - put("KeyGenerator.RC2", - "com.sun.crypto.provider.KeyGeneratorCore$" + - "RC2KeyGenerator"); - put("KeyGenerator.ARCFOUR", - "com.sun.crypto.provider.KeyGeneratorCore$" + - "ARCFOURKeyGenerator"); - put("Alg.Alias.KeyGenerator.RC4", "ARCFOUR"); + put("KeyGenerator.RC2", + "com.sun.crypto.provider.KeyGeneratorCore$" + + "RC2KeyGenerator"); + put("KeyGenerator.ARCFOUR", + "com.sun.crypto.provider.KeyGeneratorCore$" + + "ARCFOURKeyGenerator"); + put("Alg.Alias.KeyGenerator.RC4", "ARCFOUR"); - put("KeyGenerator.HmacMD5", - "com.sun.crypto.provider.HmacMD5KeyGenerator"); + put("KeyGenerator.HmacMD5", + "com.sun.crypto.provider.HmacMD5KeyGenerator"); - put("KeyGenerator.HmacSHA1", - "com.sun.crypto.provider.HmacSHA1KeyGenerator"); + put("KeyGenerator.HmacSHA1", + "com.sun.crypto.provider.HmacSHA1KeyGenerator"); - put("KeyGenerator.HmacSHA256", - "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA256KG"); - put("KeyGenerator.HmacSHA384", - "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA384KG"); - put("KeyGenerator.HmacSHA512", - "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA512KG"); + put("KeyGenerator.HmacSHA256", + "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA256KG"); + put("KeyGenerator.HmacSHA384", + "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA384KG"); + put("KeyGenerator.HmacSHA512", + "com.sun.crypto.provider.KeyGeneratorCore$HmacSHA512KG"); - put("KeyPairGenerator.DiffieHellman", - "com.sun.crypto.provider.DHKeyPairGenerator"); - put("Alg.Alias.KeyPairGenerator.DH", "DiffieHellman"); - put("Alg.Alias.KeyPairGenerator.OID."+OID_PKCS3, - "DiffieHellman"); - put("Alg.Alias.KeyPairGenerator."+OID_PKCS3, - "DiffieHellman"); - /* - * Algorithm parameter generation engines - */ - put("AlgorithmParameterGenerator.DiffieHellman", - "com.sun.crypto.provider.DHParameterGenerator"); - put("Alg.Alias.AlgorithmParameterGenerator.DH", - "DiffieHellman"); - put("Alg.Alias.AlgorithmParameterGenerator.OID."+OID_PKCS3, - "DiffieHellman"); - put("Alg.Alias.AlgorithmParameterGenerator."+OID_PKCS3, - "DiffieHellman"); + put("KeyPairGenerator.DiffieHellman", + "com.sun.crypto.provider.DHKeyPairGenerator"); + put("Alg.Alias.KeyPairGenerator.DH", "DiffieHellman"); + put("Alg.Alias.KeyPairGenerator.OID."+OID_PKCS3, + "DiffieHellman"); + put("Alg.Alias.KeyPairGenerator."+OID_PKCS3, + "DiffieHellman"); + /* + * Algorithm parameter generation engines + */ + put("AlgorithmParameterGenerator.DiffieHellman", + "com.sun.crypto.provider.DHParameterGenerator"); + put("Alg.Alias.AlgorithmParameterGenerator.DH", + "DiffieHellman"); + put("Alg.Alias.AlgorithmParameterGenerator.OID."+OID_PKCS3, + "DiffieHellman"); + put("Alg.Alias.AlgorithmParameterGenerator."+OID_PKCS3, + "DiffieHellman"); - /* - * Key Agreement engines - */ - put("KeyAgreement.DiffieHellman", - "com.sun.crypto.provider.DHKeyAgreement"); - put("Alg.Alias.KeyAgreement.DH", "DiffieHellman"); - put("Alg.Alias.KeyAgreement.OID."+OID_PKCS3, "DiffieHellman"); - put("Alg.Alias.KeyAgreement."+OID_PKCS3, "DiffieHellman"); + /* + * Key Agreement engines + */ + put("KeyAgreement.DiffieHellman", + "com.sun.crypto.provider.DHKeyAgreement"); + put("Alg.Alias.KeyAgreement.DH", "DiffieHellman"); + put("Alg.Alias.KeyAgreement.OID."+OID_PKCS3, "DiffieHellman"); + put("Alg.Alias.KeyAgreement."+OID_PKCS3, "DiffieHellman"); - put("KeyAgreement.DiffieHellman SupportedKeyClasses", - "javax.crypto.interfaces.DHPublicKey" + - "|javax.crypto.interfaces.DHPrivateKey"); + put("KeyAgreement.DiffieHellman SupportedKeyClasses", + "javax.crypto.interfaces.DHPublicKey" + + "|javax.crypto.interfaces.DHPrivateKey"); - /* - * Algorithm Parameter engines - */ - put("AlgorithmParameters.DiffieHellman", - "com.sun.crypto.provider.DHParameters"); - put("Alg.Alias.AlgorithmParameters.DH", "DiffieHellman"); - put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS3, - "DiffieHellman"); - put("Alg.Alias.AlgorithmParameters."+OID_PKCS3, - "DiffieHellman"); + /* + * Algorithm Parameter engines + */ + put("AlgorithmParameters.DiffieHellman", + "com.sun.crypto.provider.DHParameters"); + put("Alg.Alias.AlgorithmParameters.DH", "DiffieHellman"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS3, + "DiffieHellman"); + put("Alg.Alias.AlgorithmParameters."+OID_PKCS3, + "DiffieHellman"); - put("AlgorithmParameters.DES", - "com.sun.crypto.provider.DESParameters"); + put("AlgorithmParameters.DES", + "com.sun.crypto.provider.DESParameters"); - put("AlgorithmParameters.DESede", - "com.sun.crypto.provider.DESedeParameters"); - put("Alg.Alias.AlgorithmParameters.TripleDES", "DESede"); + put("AlgorithmParameters.DESede", + "com.sun.crypto.provider.DESedeParameters"); + put("Alg.Alias.AlgorithmParameters.TripleDES", "DESede"); - put("AlgorithmParameters.PBE", - "com.sun.crypto.provider.PBEParameters"); + put("AlgorithmParameters.PBE", + "com.sun.crypto.provider.PBEParameters"); - put("AlgorithmParameters.PBEWithMD5AndDES", - "com.sun.crypto.provider.PBEParameters"); - put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); - put("Alg.Alias.AlgorithmParameters."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); + put("AlgorithmParameters.PBEWithMD5AndDES", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); + put("Alg.Alias.AlgorithmParameters."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); - put("AlgorithmParameters.PBEWithMD5AndTripleDES", - "com.sun.crypto.provider.PBEParameters"); + put("AlgorithmParameters.PBEWithMD5AndTripleDES", + "com.sun.crypto.provider.PBEParameters"); - put("AlgorithmParameters.PBEWithSHA1AndDESede", - "com.sun.crypto.provider.PBEParameters"); - put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); - put("Alg.Alias.AlgorithmParameters."+OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); + put("AlgorithmParameters.PBEWithSHA1AndDESede", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); + put("Alg.Alias.AlgorithmParameters."+OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); - put("AlgorithmParameters.PBEWithSHA1AndRC2_40", - "com.sun.crypto.provider.PBEParameters"); - put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); - put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); + put("AlgorithmParameters.PBEWithSHA1AndRC2_40", + "com.sun.crypto.provider.PBEParameters"); + put("Alg.Alias.AlgorithmParameters.OID."+OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); + put("Alg.Alias.AlgorithmParameters." + OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); - put("AlgorithmParameters.Blowfish", - "com.sun.crypto.provider.BlowfishParameters"); + put("AlgorithmParameters.Blowfish", + "com.sun.crypto.provider.BlowfishParameters"); - put("AlgorithmParameters.AES", - "com.sun.crypto.provider.AESParameters"); - put("Alg.Alias.AlgorithmParameters.Rijndael", "AES"); + put("AlgorithmParameters.AES", + "com.sun.crypto.provider.AESParameters"); + put("Alg.Alias.AlgorithmParameters.Rijndael", "AES"); - put("AlgorithmParameters.RC2", - "com.sun.crypto.provider.RC2Parameters"); + put("AlgorithmParameters.RC2", + "com.sun.crypto.provider.RC2Parameters"); - put("AlgorithmParameters.OAEP", - "com.sun.crypto.provider.OAEPParameters"); + put("AlgorithmParameters.OAEP", + "com.sun.crypto.provider.OAEPParameters"); - /* - * Key factories - */ - put("KeyFactory.DiffieHellman", - "com.sun.crypto.provider.DHKeyFactory"); - put("Alg.Alias.KeyFactory.DH", "DiffieHellman"); - put("Alg.Alias.KeyFactory.OID."+OID_PKCS3, - "DiffieHellman"); - put("Alg.Alias.KeyFactory."+OID_PKCS3, "DiffieHellman"); - /* - * Secret-key factories - */ - put("SecretKeyFactory.DES", - "com.sun.crypto.provider.DESKeyFactory"); + /* + * Key factories + */ + put("KeyFactory.DiffieHellman", + "com.sun.crypto.provider.DHKeyFactory"); + put("Alg.Alias.KeyFactory.DH", "DiffieHellman"); + put("Alg.Alias.KeyFactory.OID."+OID_PKCS3, + "DiffieHellman"); + put("Alg.Alias.KeyFactory."+OID_PKCS3, "DiffieHellman"); + /* + * Secret-key factories + */ + put("SecretKeyFactory.DES", + "com.sun.crypto.provider.DESKeyFactory"); - put("SecretKeyFactory.DESede", - "com.sun.crypto.provider.DESedeKeyFactory"); - put("Alg.Alias.SecretKeyFactory.TripleDES", "DESede"); + put("SecretKeyFactory.DESede", + "com.sun.crypto.provider.DESedeKeyFactory"); + put("Alg.Alias.SecretKeyFactory.TripleDES", "DESede"); - put("SecretKeyFactory.PBEWithMD5AndDES", - "com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES" - ); - put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); - put("Alg.Alias.SecretKeyFactory."+OID_PKCS5_MD5_DES, - "PBEWithMD5AndDES"); + put("SecretKeyFactory.PBEWithMD5AndDES", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES" + ); + put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); + put("Alg.Alias.SecretKeyFactory."+OID_PKCS5_MD5_DES, + "PBEWithMD5AndDES"); - put("Alg.Alias.SecretKeyFactory.PBE", - "PBEWithMD5AndDES"); + put("Alg.Alias.SecretKeyFactory.PBE", + "PBEWithMD5AndDES"); - /* - * Internal in-house crypto algorithm used for - * the JCEKS keystore type. Since this was developed - * internally, there isn't an OID corresponding to this - * algorithm. - */ - put("SecretKeyFactory.PBEWithMD5AndTripleDES", - "com.sun.crypto.provider.PBEKeyFactory$" + - "PBEWithMD5AndTripleDES" - ); + /* + * Internal in-house crypto algorithm used for + * the JCEKS keystore type. Since this was developed + * internally, there isn't an OID corresponding to this + * algorithm. + */ + put("SecretKeyFactory.PBEWithMD5AndTripleDES", + "com.sun.crypto.provider.PBEKeyFactory$" + + "PBEWithMD5AndTripleDES" + ); - put("SecretKeyFactory.PBEWithSHA1AndDESede", - "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede" - ); - put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); - put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_DESede, - "PBEWithSHA1AndDESede"); + put("SecretKeyFactory.PBEWithSHA1AndDESede", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede" + ); + put("Alg.Alias.SecretKeyFactory.OID."+OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_DESede, + "PBEWithSHA1AndDESede"); - put("SecretKeyFactory.PBEWithSHA1AndRC2_40", - "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40" - ); - put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); - put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_40, - "PBEWithSHA1AndRC2_40"); + put("SecretKeyFactory.PBEWithSHA1AndRC2_40", + "com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40" + ); + put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS12_RC2_40, + "PBEWithSHA1AndRC2_40"); - put("SecretKeyFactory.PBKDF2WithHmacSHA1", - "com.sun.crypto.provider.PBKDF2HmacSHA1Factory"); - put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS5_PBKDF2, - "PBKDF2WithHmacSHA1"); - put("Alg.Alias.SecretKeyFactory." + OID_PKCS5_PBKDF2, - "PBKDF2WithHmacSHA1"); + put("SecretKeyFactory.PBKDF2WithHmacSHA1", + "com.sun.crypto.provider.PBKDF2HmacSHA1Factory"); + put("Alg.Alias.SecretKeyFactory.OID." + OID_PKCS5_PBKDF2, + "PBKDF2WithHmacSHA1"); + put("Alg.Alias.SecretKeyFactory." + OID_PKCS5_PBKDF2, + "PBKDF2WithHmacSHA1"); - /* - * MAC - */ - put("Mac.HmacMD5", "com.sun.crypto.provider.HmacMD5"); - put("Mac.HmacSHA1", "com.sun.crypto.provider.HmacSHA1"); - put("Mac.HmacSHA256", - "com.sun.crypto.provider.HmacCore$HmacSHA256"); - put("Mac.HmacSHA384", - "com.sun.crypto.provider.HmacCore$HmacSHA384"); - put("Mac.HmacSHA512", - "com.sun.crypto.provider.HmacCore$HmacSHA512"); - put("Mac.HmacPBESHA1", - "com.sun.crypto.provider.HmacPKCS12PBESHA1"); + /* + * MAC + */ + put("Mac.HmacMD5", "com.sun.crypto.provider.HmacMD5"); + put("Mac.HmacSHA1", "com.sun.crypto.provider.HmacSHA1"); + put("Mac.HmacSHA256", + "com.sun.crypto.provider.HmacCore$HmacSHA256"); + put("Mac.HmacSHA384", + "com.sun.crypto.provider.HmacCore$HmacSHA384"); + put("Mac.HmacSHA512", + "com.sun.crypto.provider.HmacCore$HmacSHA512"); + put("Mac.HmacPBESHA1", + "com.sun.crypto.provider.HmacPKCS12PBESHA1"); - put("Mac.SslMacMD5", - "com.sun.crypto.provider.SslMacCore$SslMacMD5"); - put("Mac.SslMacSHA1", - "com.sun.crypto.provider.SslMacCore$SslMacSHA1"); + put("Mac.SslMacMD5", + "com.sun.crypto.provider.SslMacCore$SslMacMD5"); + put("Mac.SslMacSHA1", + "com.sun.crypto.provider.SslMacCore$SslMacSHA1"); - put("Mac.HmacMD5 SupportedKeyFormats", "RAW"); - put("Mac.HmacSHA1 SupportedKeyFormats", "RAW"); - put("Mac.HmacSHA256 SupportedKeyFormats", "RAW"); - put("Mac.HmacSHA384 SupportedKeyFormats", "RAW"); - put("Mac.HmacSHA512 SupportedKeyFormats", "RAW"); - put("Mac.HmacPBESHA1 SupportedKeyFormats", "RAW"); - put("Mac.SslMacMD5 SupportedKeyFormats", "RAW"); - put("Mac.SslMacSHA1 SupportedKeyFormats", "RAW"); + put("Mac.HmacMD5 SupportedKeyFormats", "RAW"); + put("Mac.HmacSHA1 SupportedKeyFormats", "RAW"); + put("Mac.HmacSHA256 SupportedKeyFormats", "RAW"); + put("Mac.HmacSHA384 SupportedKeyFormats", "RAW"); + put("Mac.HmacSHA512 SupportedKeyFormats", "RAW"); + put("Mac.HmacPBESHA1 SupportedKeyFormats", "RAW"); + put("Mac.SslMacMD5 SupportedKeyFormats", "RAW"); + put("Mac.SslMacSHA1 SupportedKeyFormats", "RAW"); - /* - * KeyStore - */ - put("KeyStore.JCEKS", "com.sun.crypto.provider.JceKeyStore"); + /* + * KeyStore + */ + put("KeyStore.JCEKS", "com.sun.crypto.provider.JceKeyStore"); - /* - * SSL/TLS mechanisms - * - * These are strictly internal implementations and may - * be changed at any time. These names were chosen - * because PKCS11/SunPKCS11 does not yet have TLS1.2 - * mechanisms, and it will cause calls to come here. - */ - put("KeyGenerator.SunTlsPrf", - "com.sun.crypto.provider.TlsPrfGenerator$V10"); - put("KeyGenerator.SunTls12Prf", - "com.sun.crypto.provider.TlsPrfGenerator$V12"); + /* + * SSL/TLS mechanisms + * + * These are strictly internal implementations and may + * be changed at any time. These names were chosen + * because PKCS11/SunPKCS11 does not yet have TLS1.2 + * mechanisms, and it will cause calls to come here. + */ + put("KeyGenerator.SunTlsPrf", + "com.sun.crypto.provider.TlsPrfGenerator$V10"); + put("KeyGenerator.SunTls12Prf", + "com.sun.crypto.provider.TlsPrfGenerator$V12"); - put("KeyGenerator.SunTlsMasterSecret", - "com.sun.crypto.provider.TlsMasterSecretGenerator"); - put("Alg.Alias.KeyGenerator.SunTls12MasterSecret", - "SunTlsMasterSecret"); + put("KeyGenerator.SunTlsMasterSecret", + "com.sun.crypto.provider.TlsMasterSecretGenerator"); + put("Alg.Alias.KeyGenerator.SunTls12MasterSecret", + "SunTlsMasterSecret"); - put("KeyGenerator.SunTlsKeyMaterial", - "com.sun.crypto.provider.TlsKeyMaterialGenerator"); - put("Alg.Alias.KeyGenerator.SunTls12KeyMaterial", - "SunTlsKeyMaterial"); + put("KeyGenerator.SunTlsKeyMaterial", + "com.sun.crypto.provider.TlsKeyMaterialGenerator"); + put("Alg.Alias.KeyGenerator.SunTls12KeyMaterial", + "SunTlsKeyMaterial"); - put("KeyGenerator.SunTlsRsaPremasterSecret", - "com.sun.crypto.provider.TlsRsaPremasterSecretGenerator"); - put("Alg.Alias.KeyGenerator.SunTls12RsaPremasterSecret", - "SunTlsRsaPremasterSecret"); + put("KeyGenerator.SunTlsRsaPremasterSecret", + "com.sun.crypto.provider.TlsRsaPremasterSecretGenerator"); + put("Alg.Alias.KeyGenerator.SunTls12RsaPremasterSecret", + "SunTlsRsaPremasterSecret"); - return null; - } - }); + return null; + } + }); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java --- a/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -31,7 +31,6 @@ import javax.crypto.*; import javax.crypto.spec.*; -import sun.security.internal.interfaces.TlsMasterSecret; import sun.security.internal.spec.*; import static com.sun.crypto.provider.TlsPrfGenerator.*; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java --- a/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -140,6 +140,7 @@ } private static final class TlsMasterSecretKey implements TlsMasterSecret { + private static final long serialVersionUID = 1019571680375368880L; private byte[] key; private final int majorVersion, minorVersion; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -32,8 +32,6 @@ import java.util.Hashtable; import org.omg.CosNaming.*; -import org.omg.CosNaming.NamingContextPackage.*; -import org.omg.CORBA.*; /** * Implements the JNDI NamingEnumeration interface for COS @@ -44,7 +42,8 @@ * @author Rosanna Lee */ -final class CNBindingEnumeration implements NamingEnumeration { +final class CNBindingEnumeration + implements NamingEnumeration { private static final int DEFAULT_BATCHSIZE = 100; private BindingListHolder _bindingList; // list of bindings @@ -52,105 +51,105 @@ private int counter; // pointer in _bindingList private int batchsize = DEFAULT_BATCHSIZE; // how many to ask for each time private CNCtx _ctx; // ctx to list - private Hashtable _env; // environment for getObjectInstance + private Hashtable _env; // environment for getObjectInstance private boolean more = false; // iterator done? private boolean isLookedUpCtx = false; // iterating on a context beneath this context ? - /** - * Creates a CNBindingEnumeration object. - * @param ctx Context to enumerate - */ - CNBindingEnumeration(CNCtx ctx, boolean isLookedUpCtx, Hashtable env) { - // Get batch size to use - String batch = (env != null ? - (String)env.get(javax.naming.Context.BATCHSIZE) : null); - if (batch != null) { - try { - batchsize = Integer.parseInt(batch); - } catch (NumberFormatException e) { - throw new IllegalArgumentException("Batch size not numeric: " + batch); + /** + * Creates a CNBindingEnumeration object. + * @param ctx Context to enumerate + */ + CNBindingEnumeration(CNCtx ctx, boolean isLookedUpCtx, Hashtable env) { + // Get batch size to use + String batch = (env != null ? + (String)env.get(javax.naming.Context.BATCHSIZE) : null); + if (batch != null) { + try { + batchsize = Integer.parseInt(batch); + } catch (NumberFormatException e) { + throw new IllegalArgumentException("Batch size not numeric: " + batch); + } + } + _ctx = ctx; + _ctx.incEnumCount(); + this.isLookedUpCtx = isLookedUpCtx; + _env = env; + _bindingList = new BindingListHolder(); + BindingIteratorHolder _bindingIterH = new BindingIteratorHolder(); + + // Perform listing and request that bindings be returned in _bindingIter + // Upon return,_bindingList returns a zero length list + _ctx._nc.list(0, _bindingList, _bindingIterH); + + _bindingIter = _bindingIterH.value; + + // Get first batch using _bindingIter + if (_bindingIter != null) { + more = _bindingIter.next_n(batchsize, _bindingList); + } else { + more = false; + } + counter = 0; + } + + /** + * Returns the next binding in the list. + * @exception NamingException any naming exception. + */ + + public javax.naming.Binding next() throws NamingException { + if (more && counter >= _bindingList.value.length) { + getMore(); + } + if (more && counter < _bindingList.value.length) { + org.omg.CosNaming.Binding bndg = _bindingList.value[counter]; + counter++; + return mapBinding(bndg); + } else { + throw new NoSuchElementException(); } } - _ctx = ctx; - _ctx.incEnumCount(); - this.isLookedUpCtx = isLookedUpCtx; - _env = env; - _bindingList = new BindingListHolder(); - BindingIteratorHolder _bindingIterH = new BindingIteratorHolder(); - - // Perform listing and request that bindings be returned in _bindingIter - // Upon return,_bindingList returns a zero length list - _ctx._nc.list(0, _bindingList, _bindingIterH); - - _bindingIter = _bindingIterH.value; - - // Get first batch using _bindingIter - if (_bindingIter != null) { - more = _bindingIter.next_n(batchsize, _bindingList); - } else { - more = false; - } - counter = 0; - } - - /** - * Returns the next binding in the list. - * @exception NamingException any naming exception. - */ - - public java.lang.Object next() throws NamingException { - if (more && counter >= _bindingList.value.length) { - getMore(); - } - if (more && counter < _bindingList.value.length) { - org.omg.CosNaming.Binding bndg = _bindingList.value[counter]; - counter++; - return mapBinding(bndg); - } else { - throw new NoSuchElementException(); - } - } - /** + /** * Returns true or false depending on whether there are more bindings. * @return boolean value */ - public boolean hasMore() throws NamingException { - // If there's more, check whether current bindingList has been exhausted, - // and if so, try to get more. - // If no more, just say so. - return more ? (counter < _bindingList.value.length || getMore()) : false; - } + public boolean hasMore() throws NamingException { + // If there's more, check whether current bindingList has been exhausted, + // and if so, try to get more. + // If no more, just say so. + return more ? (counter < _bindingList.value.length || getMore()) : false; + } - /** - * Returns true or false depending on whether there are more bindings. - * Need to define this to satisfy the Enumeration api requirement. - * @return boolean value - */ + /** + * Returns true or false depending on whether there are more bindings. + * Need to define this to satisfy the Enumeration api requirement. + * @return boolean value + */ - public boolean hasMoreElements() { - try { - return hasMore(); - } catch (NamingException e) { - return false; - } - } + public boolean hasMoreElements() { + try { + return hasMore(); + } catch (NamingException e) { + return false; + } + } - /** + /** * Returns the next binding in the list. * @exception NoSuchElementException Thrown when the end of the * list is reached. */ - public java.lang.Object nextElement() { + public javax.naming.Binding nextElement() { try { return next(); } catch (NamingException ne) { throw new NoSuchElementException(); } - } + } public void close() throws NamingException { more = false; @@ -197,7 +196,7 @@ return more; } - /** + /** * Constructs a JNDI Binding object from the COS Naming binding * object. * @exception NameNotFound No objects under the name. @@ -232,5 +231,5 @@ String fullName = CNNameParser.cosNameToInsString(comps); jbndg.setNameInNamespace(fullName); return jbndg; - } + } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -30,7 +30,6 @@ import javax.naming.spi.ResolveResult; import java.util.Hashtable; -import java.util.Vector; import java.net.MalformedURLException; import java.net.URL; import java.io.InputStream; @@ -63,7 +62,7 @@ public NamingContext _nc; // public for accessing underlying NamingContext private NameComponent[] _name = null; - Hashtable _env; // used by ExceptionMapper + Hashtable _env; // used by ExceptionMapper static final CNNameParser parser = new CNNameParser(); private static final String FED_PROP = "com.sun.jndi.cosnaming.federation"; @@ -82,11 +81,12 @@ * @param env Environment properties for initializing name service. * @exception NamingException Cannot initialize ORB or naming context. */ - CNCtx(Hashtable env) throws NamingException { + @SuppressWarnings("unchecked") + CNCtx(Hashtable env) throws NamingException { if (env != null) { - env = (Hashtable) env.clone(); + env = (Hashtable)env.clone(); } - _env = env; + _env = (Hashtable)env; federation = "true".equals(env != null ? env.get(FED_PROP) : null); initOrbAndRootContext(env); } @@ -97,13 +97,14 @@ /** * This method is used by the iiop and iiopname URL Context factories. */ - public static ResolveResult createUsingURL(String url, Hashtable env) + @SuppressWarnings("unchecked") + public static ResolveResult createUsingURL(String url, Hashtable env) throws NamingException { CNCtx ctx = new CNCtx(); if (env != null) { - env = (Hashtable) env.clone(); + env = (Hashtable) env.clone(); } - ctx._env = env; + ctx._env = (Hashtable)env; String rest = ctx.initUsingUrl( env != null ? (org.omg.CORBA.ORB) env.get("java.naming.corba.orb") @@ -128,8 +129,8 @@ * @param name The name of this context relative to the root */ - CNCtx(ORB orb, OrbReuseTracker tracker, NamingContext nctx, Hashtable env, - NameComponent[]name) + CNCtx(ORB orb, OrbReuseTracker tracker, NamingContext nctx, + Hashtable env, NameComponent[]name) throws NamingException { if (orb == null || nctx == null) throw new ConfigurationException( @@ -207,7 +208,7 @@ * @exception NamingException When an error occurs while initializing the * ORB or the naming context. */ - private void initOrbAndRootContext(Hashtable env) throws NamingException { + private void initOrbAndRootContext(Hashtable env) throws NamingException { org.omg.CORBA.ORB inOrb = null; String ncIor = null; @@ -240,7 +241,7 @@ // If name supplied in URL, resolve it to a NamingContext if (insName.length() > 0) { - _name = parser.nameToCosName(parser.parse(insName)); + _name = CNNameParser.nameToCosName(parser.parse(insName)); try { org.omg.CORBA.Object obj = _nc.resolve(_name); _nc = NamingContextHelper.narrow(obj); @@ -271,7 +272,7 @@ } - private String initUsingUrl(ORB orb, String url, Hashtable env) + private String initUsingUrl(ORB orb, String url, Hashtable env) throws NamingException { if (url.startsWith("iiop://") || url.startsWith("iiopname://")) { return initUsingIiopUrl(orb, url, env); @@ -283,17 +284,14 @@ /** * Handles "iiop" and "iiopname" URLs (INS 98-10-11) */ - private String initUsingIiopUrl(ORB defOrb, String url, Hashtable env) + private String initUsingIiopUrl(ORB defOrb, String url, Hashtable env) throws NamingException { try { IiopUrl parsedUrl = new IiopUrl(url); - Vector addrs = parsedUrl.getAddresses(); - IiopUrl.Address addr; NamingException savedException = null; - for (int i = 0; i < addrs.size(); i++) { - addr = (IiopUrl.Address)addrs.elementAt(i); + for (IiopUrl.Address addr : parsedUrl.getAddresses()) { try { if (defOrb != null) { @@ -341,7 +339,7 @@ /** * Initializes using "corbaname" URL (INS 99-12-03) */ - private String initUsingCorbanameUrl(ORB orb, String url, Hashtable env) + private String initUsingCorbanameUrl(ORB orb, String url, Hashtable env) throws NamingException { try { CorbanameUrl parsedUrl = new CorbanameUrl(url); @@ -731,7 +729,7 @@ // as per JNDI spec if (leafNotFound(e, path[path.length-1])) { - ; // do nothing + // do nothing } else { throw ExceptionMapper.mapException(e, this, path); } @@ -829,7 +827,7 @@ * with a non-null argument * @return a list of name-class objects as a NameClassEnumeration. */ - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) throws NamingException { return list(new CompositeName(name)); } @@ -840,9 +838,10 @@ * @exception NamingException All exceptions thrown by lookup * @return a list of name-class objects as a NameClassEnumeration. */ - public NamingEnumeration list(Name name) + @SuppressWarnings("unchecked") + public NamingEnumeration list(Name name) throws NamingException { - return listBindings(name); + return (NamingEnumeration)listBindings(name); } /** @@ -852,7 +851,7 @@ * @exception NamingException all exceptions returned by lookup * @return a list of bindings as a BindingEnumeration. */ - public NamingEnumeration listBindings(String name) + public NamingEnumeration listBindings(String name) throws NamingException { return listBindings(new CompositeName(name)); } @@ -864,7 +863,7 @@ * @exception NamingException all exceptions returned by lookup. * @return a list of bindings as a BindingEnumeration. */ - public NamingEnumeration listBindings(Name name) + public NamingEnumeration listBindings(Name name) throws NamingException { if (_nc == null) throw new ConfigurationException( @@ -1064,11 +1063,12 @@ * Returns the current environment. * @return Environment. */ - public Hashtable getEnvironment() throws NamingException { + @SuppressWarnings("unchecked") + public Hashtable getEnvironment() throws NamingException { if (_env == null) { - return new Hashtable(5, 0.75f); + return new Hashtable<>(5, 0.75f); } else { - return (Hashtable)_env.clone(); + return (Hashtable)_env.clone(); } } @@ -1090,25 +1090,27 @@ * @param propVal The ORB. * @return the previous value of this property if any. */ + @SuppressWarnings("unchecked") public java.lang.Object addToEnvironment(String propName, java.lang.Object propValue) throws NamingException { if (_env == null) { - _env = new Hashtable(7, 0.75f); + _env = new Hashtable<>(7, 0.75f); } else { // copy-on-write - _env = (Hashtable)_env.clone(); + _env = (Hashtable)_env.clone(); } return _env.put(propName, propValue); } // Record change but do not reinitialize ORB + @SuppressWarnings("unchecked") public java.lang.Object removeFromEnvironment(String propName) throws NamingException { if (_env != null && _env.get(propName) != null) { // copy-on-write - _env = (Hashtable)_env.clone(); + _env = (Hashtable)_env.clone(); return _env.remove(propName); } return null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -67,7 +67,7 @@ * @return a non-null CompoundName */ public Name parse(String name) throws NamingException { - Vector comps = insStringToStringifiedComps(name); + Vector comps = insStringToStringifiedComps(name); return new CNCompoundName(comps.elements()); } @@ -128,11 +128,11 @@ * each element of the vector contains a stringified form of * a NameComponent. */ - private static Vector insStringToStringifiedComps(String str) + private static Vector insStringToStringifiedComps(String str) throws InvalidNameException { int len = str.length(); - Vector components = new Vector(10); + Vector components = new Vector<>(10); char[] id = new char[len]; char[] kind = new char[len]; int idCount, kindCount; @@ -306,7 +306,7 @@ * and stringifying code of the default CompoundName. */ static final class CNCompoundName extends CompoundName { - CNCompoundName(Enumeration enum_) { + CNCompoundName(Enumeration enum_) { super(enum_, CNNameParser.mySyntax); } @@ -315,12 +315,12 @@ } public Name getPrefix(int posn) { - Enumeration comps = super.getPrefix(posn).getAll(); + Enumeration comps = super.getPrefix(posn).getAll(); return new CNCompoundName(comps); } public Name getSuffix(int posn) { - Enumeration comps = super.getSuffix(posn).getAll(); + Enumeration comps = super.getSuffix(posn).getAll(); return new CNCompoundName(comps); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -102,10 +102,10 @@ private static final NamingException tryFed(NotFound e, CNCtx ctx, NameComponent[] inputName) throws NamingException { - NameComponent[] rest = ((NotFound) e).rest_of_name; + NameComponent[] rest = e.rest_of_name; if (debug) { - System.out.println(((NotFound)e).why.value()); + System.out.println(e.why.value()); System.out.println(rest.length); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -68,7 +68,7 @@ static final private int DEFAULT_IIOPNAME_PORT = 9999; static final private int DEFAULT_IIOP_PORT = 900; static final private String DEFAULT_HOST = "localhost"; - private Vector addresses; + private Vector
addresses; private String stringName; public static class Address { @@ -149,7 +149,7 @@ } } - public Vector getAddresses() { + public Vector
getAddresses() { return addresses; } @@ -185,7 +185,7 @@ } else { stringName = UrlUtil.decode(url.substring(addrEnd+1)); } - addresses = new Vector(3); + addresses = new Vector<>(3); if (oldFormat) { // Only one host:port part, not multiple addresses.addElement( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java --- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -524,7 +524,7 @@ "\tResponse Q:" + resps); } byte[] pkt; - if ((pkt = (byte[]) resps.get(xid)) != null) { + if ((pkt = resps.get(xid)) != null) { checkResponseCode(new Header(pkt, pkt.length)); synchronized (queuesLock) { resps.remove(xid); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java --- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -47,7 +47,7 @@ DnsName domain; // fully-qualified domain name of this context, // with a root (empty) label at position 0 - Hashtable environment; + Hashtable environment; private boolean envShared; // true if environment is possibly shared // and so must be copied on write private boolean parentIsDns; // was this DnsContext created by @@ -95,14 +95,15 @@ * There must be at least one server. * The environment must not be null; it is cloned before being stored. */ - public DnsContext(String domain, String[] servers, Hashtable environment) + @SuppressWarnings("unchecked") + public DnsContext(String domain, String[] servers, Hashtable environment) throws NamingException { this.domain = new DnsName(domain.endsWith(".") ? domain : domain + "."); this.servers = servers; - this.environment = (Hashtable) environment.clone(); + this.environment = (Hashtable) environment.clone(); envShared = false; parentIsDns = false; resolver = null; @@ -154,14 +155,15 @@ /* * Override default with a noncloning version. */ - protected Hashtable p_getEnvironment() { + protected Hashtable p_getEnvironment() { return environment; } - public Hashtable getEnvironment() throws NamingException { - return (Hashtable) environment.clone(); + public Hashtable getEnvironment() throws NamingException { + return (Hashtable) environment.clone(); } + @SuppressWarnings("unchecked") public Object addToEnvironment(String propName, Object propVal) throws NamingException { @@ -189,7 +191,7 @@ return environment.put(propName, propVal); } else if (environment.get(propName) != propVal) { // copy on write - environment = (Hashtable) environment.clone(); + environment = (Hashtable) environment.clone(); envShared = false; return environment.put(propName, propVal); } else { @@ -197,6 +199,7 @@ } } + @SuppressWarnings("unchecked") public Object removeFromEnvironment(String propName) throws NamingException { @@ -222,7 +225,7 @@ return environment.remove(propName); } else if (environment.get(propName) != null) { // copy-on-write - environment = (Hashtable) environment.clone(); + environment = (Hashtable) environment.clone(); envShared = false; return environment.remove(propName); } else { @@ -307,7 +310,7 @@ return c_lookup(name, cont); } - public NamingEnumeration c_list(Name name, Continuation cont) + public NamingEnumeration c_list(Name name, Continuation cont) throws NamingException { cont.setSuccess(); try { @@ -322,7 +325,7 @@ } } - public NamingEnumeration c_listBindings(Name name, Continuation cont) + public NamingEnumeration c_listBindings(Name name, Continuation cont) throws NamingException { cont.setSuccess(); try { @@ -457,7 +460,7 @@ new OperationNotSupportedException()); } - public NamingEnumeration c_search(Name name, + public NamingEnumeration c_search(Name name, Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) @@ -465,7 +468,7 @@ throw new OperationNotSupportedException(); } - public NamingEnumeration c_search(Name name, + public NamingEnumeration c_search(Name name, String filter, SearchControls cons, Continuation cont) @@ -473,7 +476,7 @@ throw new OperationNotSupportedException(); } - public NamingEnumeration c_search(Name name, + public NamingEnumeration c_search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons, @@ -608,7 +611,7 @@ BasicAttributes attrs = new BasicAttributes(true); for (int i = 0; i < rrs.answer.size(); i++) { - ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i); + ResourceRecord rr = rrs.answer.elementAt(i); int rrtype = rr.getType(); int rrclass = rr.getRrclass(); @@ -952,19 +955,14 @@ //---------- /* - * An enumeration of name/classname pairs. - * - * Nodes that have children or that are zone cuts are returned with - * classname DirContext. Other nodes are returned with classname - * Object even though they are DirContexts as well, since this might - * make the namespace easier to browse. + * Common base class for NameClassPairEnumeration and BindingEnumeration. */ -class NameClassPairEnumeration implements NamingEnumeration { +abstract class BaseNameClassPairEnumeration implements NamingEnumeration { - protected Enumeration nodes; // nodes to be enumerated, or null if none + protected Enumeration nodes; // nodes to be enumerated, or null if none protected DnsContext ctx; // context being enumerated - NameClassPairEnumeration(DnsContext ctx, Hashtable nodes) { + BaseNameClassPairEnumeration(DnsContext ctx, Hashtable nodes) { this.ctx = ctx; this.nodes = (nodes != null) ? nodes.elements() @@ -974,12 +972,12 @@ /* * ctx will be set to null when no longer needed by the enumeration. */ - public void close() { + public final void close() { nodes = null; ctx = null; } - public boolean hasMore() { + public final boolean hasMore() { boolean more = ((nodes != null) && nodes.hasMoreElements()); if (!more) { close(); @@ -987,11 +985,46 @@ return more; } - public Object next() throws NamingException { + public final boolean hasMoreElements() { + return hasMore(); + } + + abstract public T next() throws NamingException; + + public final T nextElement() { + try { + return next(); + } catch (NamingException e) { + java.util.NoSuchElementException nsee = + new java.util.NoSuchElementException(); + nsee.initCause(e); + throw nsee; + } + } +} + +/* + * An enumeration of name/classname pairs. + * + * Nodes that have children or that are zone cuts are returned with + * classname DirContext. Other nodes are returned with classname + * Object even though they are DirContexts as well, since this might + * make the namespace easier to browse. + */ +final class NameClassPairEnumeration + extends BaseNameClassPairEnumeration + implements NamingEnumeration { + + NameClassPairEnumeration(DnsContext ctx, Hashtable nodes) { + super(ctx, nodes); + } + + @Override + public NameClassPair next() throws NamingException { if (!hasMore()) { throw new java.util.NoSuchElementException(); } - NameNode nnode = (NameNode) nodes.nextElement(); + NameNode nnode = nodes.nextElement(); String className = (nnode.isZoneCut() || (nnode.getChildren() != null)) ? "javax.naming.directory.DirContext" @@ -1005,28 +1038,15 @@ ncp.setNameInNamespace(ctx.fullyQualify(cname).toString()); return ncp; } - - public boolean hasMoreElements() { - return hasMore(); - } - - public Object nextElement() { - try { - return next(); - } catch (NamingException e) { - throw (new java.util.NoSuchElementException( - "javax.naming.NamingException was thrown: " + - e.getMessage())); - } - } } /* * An enumeration of Bindings. */ -class BindingEnumeration extends NameClassPairEnumeration { +final class BindingEnumeration extends BaseNameClassPairEnumeration + implements NamingEnumeration { - BindingEnumeration(DnsContext ctx, Hashtable nodes) { + BindingEnumeration(DnsContext ctx, Hashtable nodes) { super(ctx, nodes); } @@ -1035,11 +1055,12 @@ // close(); // } - public Object next() throws NamingException { + @Override + public Binding next() throws NamingException { if (!hasMore()) { throw (new java.util.NoSuchElementException()); } - NameNode nnode = (NameNode) nodes.nextElement(); + NameNode nnode = nodes.nextElement(); String label = nnode.getLabel(); Name compName = (new DnsName()).add(label); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -59,7 +59,7 @@ public Context getInitialContext(Hashtable env) throws NamingException { if (env == null) { - env = new Hashtable(5); + env = new Hashtable<>(5); } return urlToContext(getInitCtxUrl(env), env); } @@ -75,7 +75,7 @@ * components are overridden by "domain". */ public static DnsContext getContext(String domain, - DnsUrl[] urls, Hashtable env) + DnsUrl[] urls, Hashtable env) throws NamingException { String[] servers = serversForUrls(urls); @@ -95,7 +95,7 @@ ).isEmpty(); } - private static Context urlToContext(String url, Hashtable env) + private static Context urlToContext(String url, Hashtable env) throws NamingException { DnsUrl[] urls; @@ -212,7 +212,7 @@ * Reads environment to find URL(s) of initial context. * Default URL is "dns:". */ - private static String getInitCtxUrl(Hashtable env) { + private static String getInitCtxUrl(Hashtable env) { String url = (String) env.get(Context.PROVIDER_URL); return ((url != null) ? url : DEFAULT_URL); } @@ -223,34 +223,31 @@ * @param oneIsEnough return output once there exists one ok * @return the filtered list, all non-permitted input removed */ - private static List filterNameServers(List input, boolean oneIsEnough) { + private static List filterNameServers(List input, boolean oneIsEnough) { SecurityManager security = System.getSecurityManager(); if (security == null || input == null || input.isEmpty()) { return input; } else { - List output = new ArrayList(); - for (Object o: input) { - if (o instanceof String) { - String platformServer = (String)o; - int colon = platformServer.indexOf(':', - platformServer.indexOf(']') + 1); + List output = new ArrayList<>(); + for (String platformServer: input) { + int colon = platformServer.indexOf(':', + platformServer.indexOf(']') + 1); - int p = (colon < 0) - ? DEFAULT_PORT - : Integer.parseInt( - platformServer.substring(colon + 1)); - String s = (colon < 0) - ? platformServer - : platformServer.substring(0, colon); - try { - security.checkConnect(s, p); - output.add(platformServer); - if (oneIsEnough) { - return output; - } - } catch (SecurityException se) { - continue; + int p = (colon < 0) + ? DEFAULT_PORT + : Integer.parseInt( + platformServer.substring(colon + 1)); + String s = (colon < 0) + ? platformServer + : platformServer.substring(0, colon); + try { + security.checkConnect(s, p); + output.add(platformServer); + if (oneIsEnough) { + return output; } + } catch (SecurityException se) { + continue; } } return output; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/DnsName.java --- a/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -29,7 +29,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.Enumeration; -import java.util.Iterator; import javax.naming.*; @@ -111,7 +110,7 @@ // The labels of this domain name, as a list of strings. Index 0 // corresponds to the leftmost (least significant) label: note that // this is the reverse of the ordering used by the Name interface. - private ArrayList labels = new ArrayList(); + private ArrayList labels = new ArrayList<>(); // The number of octets needed to carry this domain name in a DNS // packet. Equal to the sum of the lengths of each label, plus the @@ -152,9 +151,7 @@ domain = n.domain; octets = n.octets; } else { - Iterator iter = labels.iterator(); - while (iter.hasNext()) { - String label = (String) iter.next(); + for (String label: labels) { if (label.length() > 0) { octets += (short) (label.length() + 1); } @@ -165,10 +162,8 @@ public String toString() { if (domain == null) { - StringBuffer buf = new StringBuffer(); - Iterator iter = labels.iterator(); - while (iter.hasNext()) { - String label = (String) iter.next(); + StringBuilder buf = new StringBuilder(); + for (String label: labels) { if (buf.length() > 0 || label.length() == 0) { buf.append('.'); } @@ -183,9 +178,8 @@ * Does this domain name follow host name syntax? */ public boolean isHostName() { - Iterator iter = labels.iterator(); - while (iter.hasNext()) { - if (!isHostNameLabel((String) iter.next())) { + for (String label: labels) { + if (!isHostNameLabel(label)) { return false; } } @@ -241,16 +235,16 @@ throw new ArrayIndexOutOfBoundsException(); } int i = size() - pos - 1; // index of "pos" component in "labels" - return (String) labels.get(i); + return labels.get(i); } - public Enumeration getAll() { - return new Enumeration() { + public Enumeration getAll() { + return new Enumeration() { int pos = 0; public boolean hasMoreElements() { return (pos < size()); } - public Object nextElement() { + public String nextElement() { if (pos < size()) { return get(pos++); } @@ -276,7 +270,7 @@ throw new ArrayIndexOutOfBoundsException(); } int i = size() - pos - 1; // index of element to remove in "labels" - String label = (String) labels.remove(i); + String label = labels.remove(i); int len = label.length(); if (len > 0) { octets -= (short) (len + 1); @@ -530,7 +524,7 @@ /* * Append a label to buf, escaping as needed. */ - private static void escape(StringBuffer buf, String label) { + private static void escape(StringBuilder buf, String label) { for (int i = 0; i < label.length(); i++) { char c = label.charAt(i); if (c == '.' || c == '\\') { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/NameNode.java --- a/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -52,7 +52,7 @@ private String label; // name of this node relative to its // parent, or null for root of a tree - private Hashtable children = null; // child nodes + private Hashtable children = null; // child nodes private boolean isZoneCut = false; // true if this node is a zone cut private int depth = 0; // depth in tree (0 for root) @@ -97,7 +97,7 @@ * Returns the children of this node, or null if there are none. * The caller must not modify the Hashtable returned. */ - Hashtable getChildren() { + Hashtable getChildren() { return children; } @@ -108,7 +108,7 @@ */ NameNode get(String key) { return (children != null) - ? (NameNode) children.get(key) + ? children.get(key) : null; } @@ -140,9 +140,9 @@ NameNode child = null; if (node.children == null) { - node.children = new Hashtable(); + node.children = new Hashtable<>(); } else { - child = (NameNode) node.children.get(key); + child = node.children.get(key); } if (child == null) { child = newNameNode(label); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/Resolver.java --- a/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -125,8 +125,7 @@ } // Look for an SOA record giving the zone's top node. for (int i = 0; i < rrs.authority.size(); i++) { - ResourceRecord rr = (ResourceRecord) - rrs.authority.elementAt(i); + ResourceRecord rr = rrs.authority.elementAt(i); if (rr.getType() == ResourceRecord.TYPE_SOA) { DnsName zone = rr.getName(); if (fqdn.endsWith(zone)) { @@ -152,7 +151,7 @@ ResourceRecords rrs = query(zone, rrclass, ResourceRecord.TYPE_SOA, recursion, false); for (int i = 0; i < rrs.answer.size(); i++) { - ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i); + ResourceRecord rr = rrs.answer.elementAt(i); if (rr.getType() == ResourceRecord.TYPE_SOA) { return rr; } @@ -175,8 +174,7 @@ recursion, false); String[] ns = new String[rrs.answer.size()]; for (int i = 0; i < ns.length; i++) { - ResourceRecord rr = (ResourceRecord) - rrs.answer.elementAt(i); + ResourceRecord rr = rrs.answer.elementAt(i); if (rr.getType() != ResourceRecord.TYPE_NS) { throw new CommunicationException("Corrupted DNS message"); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java --- a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -45,10 +45,10 @@ // Four sections: question, answer, authority, additional. // The question section is treated as being made up of (shortened) // resource records, although this isn't technically how it's defined. - Vector question = new Vector(); - Vector answer = new Vector(); - Vector authority = new Vector(); - Vector additional = new Vector(); + Vector question = new Vector<>(); + Vector answer = new Vector<>(); + Vector authority = new Vector<>(); + Vector additional = new Vector<>(); /* * True if these resource records are from a zone transfer. In @@ -80,7 +80,7 @@ if (answer.size() == 0) { return -1; } - return ((ResourceRecord) answer.firstElement()).getType(); + return answer.firstElement().getType(); } /* @@ -91,7 +91,7 @@ if (answer.size() == 0) { return -1; } - return ((ResourceRecord) answer.lastElement()).getType(); + return answer.lastElement().getType(); } /* diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java --- a/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -55,7 +55,7 @@ class ZoneNode extends NameNode { - private SoftReference contentsRef = null; // the zone's namespace + private SoftReference contentsRef = null; // the zone's namespace private long serialNumber = -1; // the zone data's serial number private Date expiration = null; // time when the zone's data expires @@ -88,7 +88,7 @@ */ synchronized NameNode getContents() { return (contentsRef != null) - ? (NameNode) contentsRef.get() + ? contentsRef.get() : null; } @@ -130,7 +130,7 @@ NameNode newContents = new NameNode(null); for (int i = 0; i < rrs.answer.size(); i++) { - ResourceRecord rr = (ResourceRecord) rrs.answer.elementAt(i); + ResourceRecord rr = rrs.answer.elementAt(i); DnsName n = rr.getName(); // Ignore resource records whose names aren't within the zone's @@ -144,9 +144,9 @@ } } // The zone's SOA record is the first record in the answer section. - ResourceRecord soa = (ResourceRecord) rrs.answer.firstElement(); + ResourceRecord soa = rrs.answer.firstElement(); synchronized (this) { - contentsRef = new SoftReference(newContents); + contentsRef = new SoftReference(newContents); serialNumber = getSerialNumber(soa); setExpiration(getMinimumTtl(soa)); return newContents; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,408 @@ +/* + * Copyright (c) 1999, 2011, 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 com.sun.jndi.ldap; + +import com.sun.jndi.toolkit.ctx.Continuation; +import java.util.NoSuchElementException; +import java.util.Vector; + +import javax.naming.*; +import javax.naming.directory.Attributes; +import javax.naming.ldap.Control; + +/** + * Basic enumeration for NameClassPair, Binding, and SearchResults. + */ + +abstract class AbstractLdapNamingEnumeration + implements NamingEnumeration, ReferralEnumeration { + + protected Name listArg; + + private boolean cleaned = false; + private LdapResult res; + private LdapClient enumClnt; + private Continuation cont; // used to fill in exceptions + private Vector entries = null; + private int limit = 0; + private int posn = 0; + protected LdapCtx homeCtx; + private LdapReferralException refEx = null; + private NamingException errEx = null; + + /* + * Record the next set of entries and/or referrals. + */ + AbstractLdapNamingEnumeration(LdapCtx homeCtx, LdapResult answer, Name listArg, + Continuation cont) throws NamingException { + + // These checks are to accommodate referrals and limit exceptions + // which will generate an enumeration and defer the exception + // to be thrown at the end of the enumeration. + // All other exceptions are thrown immediately. + // Exceptions shouldn't be thrown here anyhow because + // process_return_code() is called before the constructor + // is called, so these are just safety checks. + + if ((answer.status != LdapClient.LDAP_SUCCESS) && + (answer.status != LdapClient.LDAP_SIZE_LIMIT_EXCEEDED) && + (answer.status != LdapClient.LDAP_TIME_LIMIT_EXCEEDED) && + (answer.status != LdapClient.LDAP_ADMIN_LIMIT_EXCEEDED) && + (answer.status != LdapClient.LDAP_REFERRAL) && + (answer.status != LdapClient.LDAP_PARTIAL_RESULTS)) { + + // %%% need to deal with referral + NamingException e = new NamingException( + LdapClient.getErrorMessage( + answer.status, answer.errorMessage)); + + throw cont.fillInException(e); + } + + // otherwise continue + + res = answer; + entries = answer.entries; + limit = (entries == null) ? 0 : entries.size(); // handle empty set + this.listArg = listArg; + this.cont = cont; + + if (answer.refEx != null) { + refEx = answer.refEx; + } + + // Ensures that context won't get closed from underneath us + this.homeCtx = homeCtx; + homeCtx.incEnumCount(); + enumClnt = homeCtx.clnt; // remember + } + + @Override + public final T nextElement() { + try { + return next(); + } catch (NamingException e) { + // can't throw exception + cleanup(); + return null; + } + } + + @Override + public final boolean hasMoreElements() { + try { + return hasMore(); + } catch (NamingException e) { + // can't throw exception + cleanup(); + return false; + } + } + + /* + * Retrieve the next set of entries and/or referrals. + */ + private void getNextBatch() throws NamingException { + + res = homeCtx.getSearchReply(enumClnt, res); + if (res == null) { + limit = posn = 0; + return; + } + + entries = res.entries; + limit = (entries == null) ? 0 : entries.size(); // handle empty set + posn = 0; // reset + + // mimimize the number of calls to processReturnCode() + // (expensive when batchSize is small and there are many results) + if ((res.status != LdapClient.LDAP_SUCCESS) || + ((res.status == LdapClient.LDAP_SUCCESS) && + (res.referrals != null))) { + + try { + // convert referrals into a chain of LdapReferralException + homeCtx.processReturnCode(res, listArg); + + } catch (LimitExceededException | PartialResultException e) { + setNamingException(e); + + } + } + + // merge any newly received referrals with any current referrals + if (res.refEx != null) { + if (refEx == null) { + refEx = res.refEx; + } else { + refEx = refEx.appendUnprocessedReferrals(res.refEx); + } + res.refEx = null; // reset + } + + if (res.resControls != null) { + homeCtx.respCtls = res.resControls; + } + } + + private boolean more = true; // assume we have something to start with + private boolean hasMoreCalled = false; + + /* + * Test if unprocessed entries or referrals exist. + */ + @Override + public final boolean hasMore() throws NamingException { + + if (hasMoreCalled) { + return more; + } + + hasMoreCalled = true; + + if (!more) { + return false; + } else { + return (more = hasMoreImpl()); + } + } + + /* + * Retrieve the next entry. + */ + @Override + public final T next() throws NamingException { + + if (!hasMoreCalled) { + hasMore(); + } + hasMoreCalled = false; + return nextImpl(); + } + + /* + * Test if unprocessed entries or referrals exist. + */ + private boolean hasMoreImpl() throws NamingException { + // when page size is supported, this + // might generate an exception while attempting + // to fetch the next batch to determine + // whether there are any more elements + + // test if the current set of entries has been processed + if (posn == limit) { + getNextBatch(); + } + + // test if any unprocessed entries exist + if (posn < limit) { + return true; + } else { + + try { + // try to process another referral + return hasMoreReferrals(); + + } catch (LdapReferralException | + LimitExceededException | + PartialResultException e) { + cleanup(); + throw e; + + } catch (NamingException e) { + cleanup(); + PartialResultException pre = new PartialResultException(); + pre.setRootCause(e); + throw pre; + } + } + } + + /* + * Retrieve the next entry. + */ + private T nextImpl() throws NamingException { + try { + return nextAux(); + } catch (NamingException e) { + cleanup(); + throw cont.fillInException(e); + } + } + + private T nextAux() throws NamingException { + if (posn == limit) { + getNextBatch(); // updates posn and limit + } + + if (posn >= limit) { + cleanup(); + throw new NoSuchElementException("invalid enumeration handle"); + } + + LdapEntry result = entries.elementAt(posn++); + + // gets and outputs DN from the entry + return createItem(result.DN, result.attributes, result.respCtls); + } + + protected final String getAtom(String dn) { + // need to strip off all but lowest component of dn + // so that is relative to current context (currentDN) + try { + Name parsed = new LdapName(dn); + return parsed.get(parsed.size() - 1); + } catch (NamingException e) { + return dn; + } + } + + protected abstract T createItem(String dn, Attributes attrs, + Vector respCtls) throws NamingException; + + /* + * Append the supplied (chain of) referrals onto the + * end of the current (chain of) referrals. + */ + @Override + public void appendUnprocessedReferrals(LdapReferralException ex) { + if (refEx != null) { + refEx = refEx.appendUnprocessedReferrals(ex); + } else { + refEx = ex.appendUnprocessedReferrals(refEx); + } + } + + final void setNamingException(NamingException e) { + errEx = e; + } + + protected abstract AbstractLdapNamingEnumeration getReferredResults( + LdapReferralContext refCtx) throws NamingException; + + /* + * Iterate through the URLs of a referral. If successful then perform + * a search operation and merge the received results with the current + * results. + */ + protected final boolean hasMoreReferrals() throws NamingException { + + if ((refEx != null) && + (refEx.hasMoreReferrals() || + refEx.hasMoreReferralExceptions())) { + + if (homeCtx.handleReferrals == LdapClient.LDAP_REF_THROW) { + throw (NamingException)(refEx.fillInStackTrace()); + } + + // process the referrals sequentially + while (true) { + + LdapReferralContext refCtx = + (LdapReferralContext)refEx.getReferralContext( + homeCtx.envprops, homeCtx.reqCtls); + + try { + + update(getReferredResults(refCtx)); + break; + + } catch (LdapReferralException re) { + + // record a previous exception + if (errEx == null) { + errEx = re.getNamingException(); + } + refEx = re; + continue; + + } finally { + // Make sure we close referral context + refCtx.close(); + } + } + return hasMoreImpl(); + + } else { + cleanup(); + + if (errEx != null) { + throw errEx; + } + return (false); + } + } + + /* + * Merge the entries and/or referrals from the supplied enumeration + * with those of the current enumeration. + */ + protected void update(AbstractLdapNamingEnumeration ne) { + // Cleanup previous context first + homeCtx.decEnumCount(); + + // New enum will have already incremented enum count and recorded clnt + homeCtx = ne.homeCtx; + enumClnt = ne.enumClnt; + + // Do this to prevent referral enumeration (ne) from decrementing + // enum count because we'll be doing that here from this + // enumeration. + ne.homeCtx = null; + + // Record rest of information from new enum + posn = ne.posn; + limit = ne.limit; + res = ne.res; + entries = ne.entries; + refEx = ne.refEx; + listArg = ne.listArg; + } + + protected final void finalize() { + cleanup(); + } + + protected final void cleanup() { + if (cleaned) return; // been there; done that + + if(enumClnt != null) { + enumClnt.clearSearchReply(res, homeCtx.reqCtls); + } + + enumClnt = null; + cleaned = true; + if (homeCtx != null) { + homeCtx.decEnumCount(); + homeCtx = null; + } + } + + @Override + public final void close() { + cleanup(); + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/Ber.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -94,12 +94,14 @@ public static final int ASN_ENUMERATED = 0x0a; final static class EncodeException extends IOException { + private static final long serialVersionUID = -5247359637775781768L; EncodeException(String msg) { super(msg); } } final static class DecodeException extends IOException { + private static final long serialVersionUID = 8735036969244425583L; DecodeException(String msg) { super(msg); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -25,6 +25,7 @@ package com.sun.jndi.ldap; +import java.util.Locale; import java.util.Arrays; // JDK 1.2 import java.io.OutputStream; import javax.naming.ldap.Control; @@ -71,10 +72,10 @@ ClientId(int version, String hostname, int port, String protocol, Control[] bindCtls, OutputStream trace, String socketFactory) { this.version = version; - this.hostname = hostname.toLowerCase(); // ignore case + this.hostname = hostname.toLowerCase(Locale.ENGLISH); // ignore case this.port = port; this.protocol = protocol; - this.bindCtls = (bindCtls != null ? (Control[]) bindCtls.clone() : null); + this.bindCtls = (bindCtls != null ? bindCtls.clone() : null); this.trace = trace; // // Needed for custom socket factory pooling @@ -83,13 +84,15 @@ if ((socketFactory != null) && !socketFactory.equals(LdapCtx.DEFAULT_SSL_FACTORY)) { try { - Class socketFactoryClass = Obj.helper.loadClass(socketFactory); - Class objClass = Class.forName("java.lang.Object"); + Class socketFactoryClass = + Obj.helper.loadClass(socketFactory); + Class objClass = Class.forName("java.lang.Object"); this.sockComparator = socketFactoryClass.getMethod( - "compare", new Class[]{objClass, objClass}); - Method getDefault = - socketFactoryClass.getMethod("getDefault", new Class[]{}); - this.factory = (SocketFactory) getDefault.invoke(null, new Object[]{}); + "compare", new Class[]{objClass, objClass}); + Method getDefault = socketFactoryClass.getMethod( + "getDefault", new Class[]{}); + this.factory = + (SocketFactory)getDefault.invoke(null, new Object[]{}); } catch (Exception e) { // Ignore it here, the same exceptions are/will be handled by // LdapPoolManager and Connection classes. diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/Connection.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java Mon Aug 29 14:29:23 2011 -0700 @@ -238,27 +238,22 @@ throws NoSuchMethodException { try { - Class inetSocketAddressClass = + Class inetSocketAddressClass = Class.forName("java.net.InetSocketAddress"); - Constructor inetSocketAddressCons = - inetSocketAddressClass.getConstructor(new Class[]{ + Constructor inetSocketAddressCons = + inetSocketAddressClass.getConstructor(new Class[]{ String.class, int.class}); return inetSocketAddressCons.newInstance(new Object[]{ host, new Integer(port)}); - } catch (ClassNotFoundException e) { - throw new NoSuchMethodException(); - - } catch (InstantiationException e) { + } catch (ClassNotFoundException | + InstantiationException | + InvocationTargetException | + IllegalAccessException e) { throw new NoSuchMethodException(); - } catch (InvocationTargetException e) { - throw new NoSuchMethodException(); - - } catch (IllegalAccessException e) { - throw new NoSuchMethodException(); } } @@ -280,9 +275,9 @@ // create the factory - Class socketFactoryClass = Obj.helper.loadClass(socketFactory); + Class socketFactoryClass = Obj.helper.loadClass(socketFactory); Method getDefault = - socketFactoryClass.getMethod("getDefault", new Class[]{}); + socketFactoryClass.getMethod("getDefault", new Class[]{}); Object factory = getDefault.invoke(null, new Object[]{}); // create the socket @@ -293,10 +288,10 @@ try { createSocket = socketFactoryClass.getMethod("createSocket", - new Class[]{}); + new Class[]{}); Method connect = Socket.class.getMethod("connect", - new Class[]{Class.forName("java.net.SocketAddress"), + new Class[]{Class.forName("java.net.SocketAddress"), int.class}); Object endpoint = createInetSocketAddress(host, port); @@ -320,7 +315,7 @@ if (socket == null) { createSocket = socketFactoryClass.getMethod("createSocket", - new Class[]{String.class, int.class}); + new Class[]{String.class, int.class}); if (debug) { System.err.println("Connection: creating socket using " + @@ -335,15 +330,15 @@ if (connectTimeout > 0) { try { - Constructor socketCons = - Socket.class.getConstructor(new Class[]{}); + Constructor socketCons = + Socket.class.getConstructor(new Class[]{}); Method connect = Socket.class.getMethod("connect", - new Class[]{Class.forName("java.net.SocketAddress"), + new Class[]{Class.forName("java.net.SocketAddress"), int.class}); Object endpoint = createInetSocketAddress(host, port); - socket = (Socket) socketCons.newInstance(new Object[]{}); + socket = socketCons.newInstance(new Object[]{}); if (debug) { System.err.println("Connection: creating socket with " + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -65,7 +65,7 @@ DigestClientId(int version, String hostname, int port, String protocol, Control[] bindCtls, OutputStream trace, String socketFactory, String username, - Object passwd, Hashtable env) { + Object passwd, Hashtable env) { super(version, hostname, port, protocol, bindCtls, trace, socketFactory, username, passwd); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -25,7 +25,6 @@ package com.sun.jndi.ldap; -import java.io.*; import java.util.Vector; import java.util.EventObject; @@ -52,9 +51,9 @@ QueueElement next = null; QueueElement prev = null; EventObject event = null; - Vector vector = null; + Vector vector = null; - QueueElement(EventObject event, Vector vector) { + QueueElement(EventObject event, Vector vector) { this.event = event; this.vector = vector; } @@ -87,7 +86,7 @@ * are notified. * @param vector List of NamingListeners that will be notified of event. */ - synchronized void enqueue(EventObject event, Vector vector) { + synchronized void enqueue(EventObject event, Vector vector) { QueueElement newElt = new QueueElement(event, vector); if (head == null) { @@ -133,7 +132,7 @@ try { while ((qe = dequeue()) != null) { EventObject e = qe.event; - Vector v = qe.vector; + Vector v = qe.vector; for (int i = 0; i < v.size(); i++) { @@ -145,12 +144,11 @@ // only enqueue events with listseners of the correct type. if (e instanceof NamingEvent) { - ((NamingEvent)e).dispatch((NamingListener)v.elementAt(i)); + ((NamingEvent)e).dispatch(v.elementAt(i)); // An exception occurred: if notify all naming listeners } else if (e instanceof NamingExceptionEvent) { - ((NamingExceptionEvent)e).dispatch( - (NamingListener)v.elementAt(i)); + ((NamingExceptionEvent)e).dispatch(v.elementAt(i)); } else if (e instanceof UnsolicitedNotificationEvent) { ((UnsolicitedNotificationEvent)e).dispatch( (UnsolicitedNotificationListener)v.elementAt(i)); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,11 +27,9 @@ import java.util.Hashtable; import java.util.Vector; -import java.util.Enumeration; import java.util.EventObject; import javax.naming.*; -import javax.naming.directory.*; import javax.naming.event.*; import javax.naming.directory.SearchControls; import javax.naming.ldap.UnsolicitedNotificationListener; @@ -120,12 +118,13 @@ /** * NamingEventNotifiers; hashed by search arguments; */ - private Hashtable notifiers = new Hashtable(11); + private Hashtable notifiers = + new Hashtable<>(11); /** * List of unsolicited notification listeners. */ - private Vector unsolicited = null; + private Vector unsolicited = null; /** * Constructs EventSupport for ctx. @@ -155,8 +154,7 @@ l instanceof NamespaceChangeListener) { NotifierArgs args = new NotifierArgs(nm, scope, l); - NamingEventNotifier notifier = - (NamingEventNotifier) notifiers.get(args); + NamingEventNotifier notifier = notifiers.get(args); if (notifier == null) { notifier = new NamingEventNotifier(this, ctx, args, l); notifiers.put(args, notifier); @@ -167,10 +165,10 @@ if (l instanceof UnsolicitedNotificationListener) { // Add listener to this's list of unsolicited notifiers if (unsolicited == null) { - unsolicited = new Vector(3); + unsolicited = new Vector<>(3); } - unsolicited.addElement(l); + unsolicited.addElement((UnsolicitedNotificationListener)l); } } @@ -185,8 +183,7 @@ l instanceof NamespaceChangeListener) { NotifierArgs args = new NotifierArgs(nm, filter, ctls, l); - NamingEventNotifier notifier = - (NamingEventNotifier) notifiers.get(args); + NamingEventNotifier notifier = notifiers.get(args); if (notifier == null) { notifier = new NamingEventNotifier(this, ctx, args, l); notifiers.put(args, notifier); @@ -197,9 +194,9 @@ if (l instanceof UnsolicitedNotificationListener) { // Add listener to this's list of unsolicited notifiers if (unsolicited == null) { - unsolicited = new Vector(3); + unsolicited = new Vector<>(3); } - unsolicited.addElement(l); + unsolicited.addElement((UnsolicitedNotificationListener)l); } } @@ -207,15 +204,11 @@ * Removes l from all notifiers in this context. */ synchronized void removeNamingListener(NamingListener l) { - Enumeration allnotifiers = notifiers.elements(); - NamingEventNotifier notifier; - if (debug) System.err.println("EventSupport removing listener"); // Go through list of notifiers, remove 'l' from each. // If 'l' is notifier's only listener, remove notifier too. - while (allnotifiers.hasMoreElements()) { - notifier = (NamingEventNotifier)allnotifiers.nextElement(); + for (NamingEventNotifier notifier : notifiers.values()) { if (notifier != null) { if (debug) System.err.println("EventSupport removing listener from notifier"); @@ -305,8 +298,8 @@ synchronized void cleanup() { if (debug) System.err.println("EventSupport clean up"); if (notifiers != null) { - for (Enumeration ns = notifiers.elements(); ns.hasMoreElements(); ) { - ((NamingEventNotifier) ns.nextElement()).stop(); + for (NamingEventNotifier notifier : notifiers.values()) { + notifier.stop(); } notifiers = null; } @@ -328,7 +321,8 @@ * them to the registered listeners. * Package private; used by NamingEventNotifier to fire events */ - synchronized void queueEvent(EventObject event, Vector vector) { + synchronized void queueEvent(EventObject event, + Vector vector) { if (eventQueue == null) eventQueue = new EventQueue(); @@ -340,7 +334,9 @@ * of this event will not take effect until after the event is * delivered. */ - Vector v = (Vector)vector.clone(); + @SuppressWarnings("unchecked") // clone() + Vector v = + (Vector)vector.clone(); eventQueue.enqueue(event, v); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -26,8 +26,6 @@ package com.sun.jndi.ldap; import java.io.IOException; -import java.io.Serializable; -import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; import javax.naming.*; @@ -50,11 +48,12 @@ // these two are used to reconstruct the baseCtx if this attribute has // been serialized ( private String baseCtxURL; - private Hashtable baseCtxEnv; + private Hashtable baseCtxEnv; + @SuppressWarnings("unchecked") // clone() public Object clone() { LdapAttribute attr = new LdapAttribute(this.attrID, baseCtx, rdn); - attr.values = (Vector)values.clone(); + attr.values = (Vector)values.clone(); return attr; } @@ -112,7 +111,7 @@ private DirContext getBaseCtx() throws NamingException { if(baseCtx == null) { if (baseCtxEnv == null) { - baseCtxEnv = new Hashtable(3); + baseCtxEnv = new Hashtable(3); } baseCtxEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); @@ -144,9 +143,10 @@ * we are serialized. This must be called _before_ the object is * serialized!!! */ + @SuppressWarnings("unchecked") // clone() private void setBaseCtxInfo() { - Hashtable realEnv = null; - Hashtable secureEnv = null; + Hashtable realEnv = null; + Hashtable secureEnv = null; if (baseCtx != null) { realEnv = ((LdapCtx)baseCtx).envprops; @@ -156,16 +156,14 @@ if(realEnv != null && realEnv.size() > 0 ) { // remove any security credentials - otherwise the serialized form // would store them in the clear - Enumeration keys = realEnv.keys(); - while(keys.hasMoreElements()) { - String key = (String)keys.nextElement(); + for (String key : realEnv.keySet()){ if (key.indexOf("security") != -1 ) { //if we need to remove props, we must do it to a clone //of the environment. cloning is expensive, so we only do //it if we have to. if(secureEnv == null) { - secureEnv = (Hashtable)realEnv.clone(); + secureEnv = (Hashtable)realEnv.clone(); } secureEnv.remove(key); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,11 +28,13 @@ import java.util.Vector; import javax.naming.*; import javax.naming.directory.*; +import javax.naming.ldap.Control; import javax.naming.spi.*; import com.sun.jndi.toolkit.ctx.Continuation; -final class LdapBindingEnumeration extends LdapNamingEnumeration { +final class LdapBindingEnumeration + extends AbstractLdapNamingEnumeration { LdapBindingEnumeration(LdapCtx homeCtx, LdapResult answer, Name remain, Continuation cont) throws NamingException @@ -40,8 +42,9 @@ super(homeCtx, answer, remain, cont); } - protected NameClassPair - createItem(String dn, Attributes attrs, Vector respCtls) + @Override + protected Binding + createItem(String dn, Attributes attrs, Vector respCtls) throws NamingException { Object obj = null; @@ -85,9 +88,10 @@ return binding; } - protected LdapNamingEnumeration - getReferredResults(LdapReferralContext refCtx) throws NamingException{ + @Override + protected LdapBindingEnumeration getReferredResults( + LdapReferralContext refCtx) throws NamingException{ // repeat the original operation at the new context - return (LdapNamingEnumeration) refCtx.listBindings(listArg); + return (LdapBindingEnumeration)refCtx.listBindings(listArg); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,8 +25,8 @@ package com.sun.jndi.ldap; -import java.net.*; import java.io.*; +import java.util.Locale; import java.util.Vector; import java.util.Hashtable; @@ -81,7 +81,8 @@ static final boolean caseIgnore = true; // Default list of binary attributes - private static final Hashtable defaultBinaryAttrs = new Hashtable(23,0.75f); + private static final Hashtable defaultBinaryAttrs = + new Hashtable<>(23,0.75f); static { defaultBinaryAttrs.put("userpassword", Boolean.TRUE); //2.5.4.35 defaultBinaryAttrs.put("javaserializeddata", Boolean.TRUE); @@ -146,7 +147,7 @@ synchronized LdapResult authenticate(boolean initial, String name, Object pw, int version, - String authMechanism, Control[] ctls, Hashtable env) + String authMechanism, Control[] ctls, Hashtable env) throws NamingException { authenticateCalled = true; @@ -516,8 +517,8 @@ LdapResult search(String dn, int scope, int deref, int sizeLimit, int timeLimit, boolean attrsOnly, String attrs[], String filter, int batchSize, Control[] reqCtls, - Hashtable binaryAttrs, boolean waitFirstReply, - int replyQueueCapacity) + Hashtable binaryAttrs, + boolean waitFirstReply, int replyQueueCapacity) throws IOException, NamingException { ensureOpen(); @@ -586,7 +587,7 @@ * Retrieve the next batch of entries and/or referrals. */ LdapResult getSearchReply(int batchSize, LdapResult res, - Hashtable binaryAttrs) throws IOException, NamingException { + Hashtable binaryAttrs) throws IOException, NamingException { ensureOpen(); @@ -600,7 +601,7 @@ } private LdapResult getSearchReply(LdapRequest req, - int batchSize, LdapResult res, Hashtable binaryAttrs) + int batchSize, LdapResult res, Hashtable binaryAttrs) throws IOException, NamingException { if (batchSize == 0) @@ -610,7 +611,7 @@ res.entries.setSize(0); // clear the (previous) set of entries } else { res.entries = - new Vector(batchSize == Integer.MAX_VALUE ? 32 : batchSize); + new Vector<>(batchSize == Integer.MAX_VALUE ? 32 : batchSize); } if (res.referrals != null) { @@ -660,7 +661,7 @@ } else if ((seq == LDAP_REP_SEARCH_REF) && isLdapv3) { // handle LDAPv3 search reference - Vector URLs = new Vector(4); + Vector URLs = new Vector<>(4); // %%% Although not strictly correct, some LDAP servers // encode the SEQUENCE OF tag in the SearchResultRef @@ -676,7 +677,7 @@ } if (res.referrals == null) { - res.referrals = new Vector(4); + res.referrals = new Vector<>(4); } res.referrals.addElement(URLs); res.resControls = isLdapv3 ? parseControls(replyBer) : null; @@ -700,7 +701,8 @@ return res; } - private Attribute parseAttribute(BerDecoder ber, Hashtable binaryAttrs) + private Attribute parseAttribute(BerDecoder ber, + Hashtable binaryAttrs) throws IOException { int len[] = new int[1]; @@ -737,13 +739,15 @@ if (hasBinaryValues) { la.add(ber.parseOctetString(ber.peekByte(), len)); } else { - la.add(ber.parseStringWithTag(Ber.ASN_SIMPLE_STRING, isLdapv3, len)); + la.add(ber.parseStringWithTag( + Ber.ASN_SIMPLE_STRING, isLdapv3, len)); } return len[0]; } - private boolean isBinaryValued(String attrid, Hashtable binaryAttrs) { - String id = attrid.toLowerCase(); + private boolean isBinaryValued(String attrid, + Hashtable binaryAttrs) { + String id = attrid.toLowerCase(Locale.ENGLISH); return ((id.indexOf(";binary") != -1) || defaultBinaryAttrs.containsKey(id) || @@ -751,8 +755,8 @@ } // package entry point; used by Connection - static void parseResult(BerDecoder replyBer, LdapResult res, boolean isLdapv3) - throws IOException { + static void parseResult(BerDecoder replyBer, LdapResult res, + boolean isLdapv3) throws IOException { res.status = replyBer.parseEnumeration(); res.matchedDN = replyBer.parseString(isLdapv3); @@ -763,7 +767,7 @@ (replyBer.bytesLeft() > 0) && (replyBer.peekByte() == LDAP_REP_REFERRAL)) { - Vector URLs = new Vector(4); + Vector URLs = new Vector<>(4); int[] seqlen = new int[1]; replyBer.parseSeq(seqlen); @@ -775,18 +779,18 @@ } if (res.referrals == null) { - res.referrals = new Vector(4); + res.referrals = new Vector<>(4); } res.referrals.addElement(URLs); } } // package entry point; used by Connection - static Vector parseControls(BerDecoder replyBer) throws IOException { + static Vector parseControls(BerDecoder replyBer) throws IOException { // handle LDAPv3 controls (if present) if ((replyBer.bytesLeft() > 0) && (replyBer.peekByte() == LDAP_CONTROLS)) { - Vector ctls = new Vector(4); + Vector ctls = new Vector<>(4); String controlOID; boolean criticality = false; // default byte[] controlValue = null; // optional @@ -957,7 +961,7 @@ ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR); ber.encodeString(attr.getID(), isLdapv3); ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR | 1); - NamingEnumeration enum_ = attr.getAll(); + NamingEnumeration enum_ = attr.getAll(); Object val; while (enum_.hasMore()) { val = enum_.next(); @@ -1007,9 +1011,10 @@ ber.beginSeq(LDAP_REQ_ADD); ber.encodeString(entry.DN, isLdapv3); ber.beginSeq(Ber.ASN_SEQUENCE | Ber.ASN_CONSTRUCTOR); - NamingEnumeration enum_ = entry.attributes.getAll(); + NamingEnumeration enum_ = + entry.attributes.getAll(); while (enum_.hasMore()) { - attr = (Attribute)enum_.next(); + attr = enum_.next(); // zero values is not permitted if (hasNoValue(attr)) { @@ -1474,7 +1479,7 @@ // removeUnsolicited() is invoked to remove an LdapCtx from this client. // //////////////////////////////////////////////////////////////////////////// - private Vector unsolicited = new Vector(3); + private Vector unsolicited = new Vector<>(3); void addUnsolicited(LdapCtx ctx) { if (debug > 0) { System.err.println("LdapClient.addUnsolicited" + ctx); @@ -1500,70 +1505,70 @@ if (debug > 0) { System.err.println("LdapClient.processUnsolicited"); } - synchronized (unsolicited) { - try { - // Parse the response - LdapResult res = new LdapResult(); + synchronized (unsolicited) { + try { + // Parse the response + LdapResult res = new LdapResult(); - ber.parseSeq(null); // init seq - ber.parseInt(); // msg id; should be 0; ignored - if (ber.parseByte() != LDAP_REP_EXTENSION) { - throw new IOException( - "Unsolicited Notification must be an Extended Response"); - } - ber.parseLength(); - parseExtResponse(ber, res); + ber.parseSeq(null); // init seq + ber.parseInt(); // msg id; should be 0; ignored + if (ber.parseByte() != LDAP_REP_EXTENSION) { + throw new IOException( + "Unsolicited Notification must be an Extended Response"); + } + ber.parseLength(); + parseExtResponse(ber, res); - if (DISCONNECT_OID.equals(res.extensionId)) { - // force closing of connection - forceClose(pooled); - } + if (DISCONNECT_OID.equals(res.extensionId)) { + // force closing of connection + forceClose(pooled); + } - if (unsolicited.size() > 0) { - // Create an UnsolicitedNotification using the parsed data - // Need a 'ctx' object because we want to use the context's - // list of provider control factories. - UnsolicitedNotification notice = new UnsolicitedResponseImpl( - res.extensionId, - res.extensionValue, - res.referrals, - res.status, - res.errorMessage, - res.matchedDN, - (res.resControls != null) ? - ((LdapCtx)unsolicited.elementAt(0)).convertControls(res.resControls) : - null); + if (unsolicited.size() > 0) { + // Create an UnsolicitedNotification using the parsed data + // Need a 'ctx' object because we want to use the context's + // list of provider control factories. + UnsolicitedNotification notice = new UnsolicitedResponseImpl( + res.extensionId, + res.extensionValue, + res.referrals, + res.status, + res.errorMessage, + res.matchedDN, + (res.resControls != null) ? + unsolicited.elementAt(0).convertControls(res.resControls) : + null); - // Fire UnsolicitedNotification events to listeners - notifyUnsolicited(notice); + // Fire UnsolicitedNotification events to listeners + notifyUnsolicited(notice); - // If "disconnect" notification, - // notify unsolicited listeners via NamingException - if (DISCONNECT_OID.equals(res.extensionId)) { - notifyUnsolicited( - new CommunicationException("Connection closed")); + // If "disconnect" notification, + // notify unsolicited listeners via NamingException + if (DISCONNECT_OID.equals(res.extensionId)) { + notifyUnsolicited( + new CommunicationException("Connection closed")); + } } - } - } catch (IOException e) { - if (unsolicited.size() == 0) - return; // no one registered; ignore + } catch (IOException e) { + if (unsolicited.size() == 0) + return; // no one registered; ignore - NamingException ne = new CommunicationException( - "Problem parsing unsolicited notification"); - ne.setRootCause(e); + NamingException ne = new CommunicationException( + "Problem parsing unsolicited notification"); + ne.setRootCause(e); - notifyUnsolicited(ne); + notifyUnsolicited(ne); - } catch (NamingException e) { - notifyUnsolicited(e); + } catch (NamingException e) { + notifyUnsolicited(e); + } } - } } private void notifyUnsolicited(Object e) { for (int i = 0; i < unsolicited.size(); i++) { - ((LdapCtx)unsolicited.elementAt(i)).fireUnsolicited(e); + unsolicited.elementAt(i).fireUnsolicited(e); } if (e instanceof NamingException) { unsolicited.setSize(0); // no more listeners after exception @@ -1584,7 +1589,7 @@ static LdapClient getInstance(boolean usePool, String hostname, int port, String factory, int connectTimeout, int readTimeout, OutputStream trace, int version, String authMechanism, Control[] ctls, String protocol, - String user, Object passwd, Hashtable env) throws NamingException { + String user, Object passwd, Hashtable env) throws NamingException { if (usePool) { if (LdapPoolManager.isPoolingAllowed(factory, trace, diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Mon Aug 29 14:29:23 2011 -0700 @@ -33,6 +33,7 @@ import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; +import java.util.Locale; import java.util.Vector; import java.util.Hashtable; import java.util.List; @@ -223,7 +224,7 @@ String hostname = null; // host name of server (no brackets // for IPv6 literals) LdapClient clnt = null; // connection handle - Hashtable envprops = null; // environment properties of context + Hashtable envprops = null; // environment properties of context int handleReferrals = DEFAULT_REFERRAL_MODE; // how referral is handled boolean hasLdapsScheme = false; // true if the context was created // using an LDAPS URL. @@ -232,7 +233,7 @@ String currentDN; // DN of this context Name currentParsedDN; // DN of this context - Vector respCtls = null; // Response controls read + Vector respCtls = null; // Response controls read Control[] reqCtls = null; // Controls to be sent with each request @@ -244,14 +245,14 @@ private boolean netscapeSchemaBug = false; // workaround private Control[] bindCtls = null; // Controls to be sent with LDAP "bind" private int referralHopLimit = DEFAULT_REFERRAL_LIMIT; // max referral - private Hashtable schemaTrees = null; // schema root of this context + private Hashtable schemaTrees = null; // schema root of this context private int batchSize = DEFAULT_BATCH_SIZE; // batch size for search results private boolean deleteRDN = DEFAULT_DELETE_RDN; // delete the old RDN when modifying DN private boolean typesOnly = DEFAULT_TYPES_ONLY; // return attribute types (no values) private int derefAliases = DEFAULT_DEREF_ALIASES;// de-reference alias entries during searching private char addrEncodingSeparator = DEFAULT_REF_SEPARATOR; // encoding RefAddr - private Hashtable binaryAttrs = null; // attr values returned as byte[] + private Hashtable binaryAttrs = null; // attr values returned as byte[] private int connectTimeout = -1; // no timeout value private int readTimeout = -1; // no timeout value private boolean waitForReply = true; // wait for search response @@ -272,13 +273,15 @@ // -------------- Constructors ----------------------------------- - public LdapCtx(String dn, String host, int port_number, Hashtable props, + @SuppressWarnings("unchecked") + public LdapCtx(String dn, String host, int port_number, + Hashtable props, boolean useSsl) throws NamingException { this.useSsl = this.hasLdapsScheme = useSsl; if (props != null) { - envprops = (Hashtable) props.clone(); + envprops = (Hashtable) props.clone(); // SSL env prop overrides the useSsl argument if ("ssl".equals(envprops.get(Context.SECURITY_PROTOCOL))) { @@ -310,7 +313,7 @@ this.useDefaultPortNumber = true; } - schemaTrees = new Hashtable(11, 0.75f); + schemaTrees = new Hashtable<>(11, 0.75f); initEnv(); try { connect(false); @@ -557,9 +560,7 @@ if (answer.resControls != null) { respCtls = appendVector(respCtls, answer.resControls); } - } catch (NamingException ae) { - addEx = ae; - } catch (IOException ae) { + } catch (NamingException | IOException ae) { addEx = ae; } @@ -918,19 +919,17 @@ } // Parse string name into list of RDNs - //List rdnList = (new LdapName(dn)).rdns(); - List rdnList = (new LdapName(dn)).getRdns(); + List rdnList = (new LdapName(dn)).getRdns(); // Get leaf RDN - //Rdn rdn = rdnList.get(rdnList.size() - 1); - Rdn rdn = (Rdn) rdnList.get(rdnList.size() - 1); + Rdn rdn = rdnList.get(rdnList.size() - 1); Attributes nameAttrs = rdn.toAttributes(); // Add attributes of RDN to attrs if not already there - NamingEnumeration enum_ = nameAttrs.getAll(); + NamingEnumeration enum_ = nameAttrs.getAll(); Attribute nameAttr; while (enum_.hasMore()) { - nameAttr = (Attribute) enum_.next(); + nameAttr = enum_.next(); // If attrs already has the attribute, don't change or add to it if (attrs.get(nameAttr.getID()) == null) { @@ -961,12 +960,12 @@ } - private static boolean containsIgnoreCase(NamingEnumeration enumStr, + private static boolean containsIgnoreCase(NamingEnumeration enumStr, String str) throws NamingException { String strEntry; while (enumStr.hasMore()) { - strEntry = (String) enumStr.next(); + strEntry = enumStr.next(); if (strEntry.equalsIgnoreCase(str)) { return true; } @@ -993,7 +992,7 @@ * Append the the second Vector onto the first Vector * (v2 must be non-null) */ - private static Vector appendVector(Vector v1, Vector v2) { + private static Vector appendVector(Vector v1, Vector v2) { if (v1 == null) { v1 = v2; } else { @@ -1038,10 +1037,10 @@ // found it but got no attributes attrs = new BasicAttributes(LdapClient.caseIgnore); } else { - LdapEntry entry = (LdapEntry)answer.entries.elementAt(0); + LdapEntry entry = answer.entries.elementAt(0); attrs = entry.attributes; - Vector entryCtls = entry.respCtls; // retrieve entry controls + Vector entryCtls = entry.respCtls; // retrieve entry controls if (entryCtls != null) { appendVector(respCtls, entryCtls); // concatenate controls } @@ -1097,7 +1096,7 @@ } } - protected NamingEnumeration c_list(Name name, Continuation cont) + protected NamingEnumeration c_list(Name name, Continuation cont) throws NamingException { SearchControls cons = new SearchControls(); String[] classAttrs = new String[2]; @@ -1170,7 +1169,7 @@ } } - protected NamingEnumeration c_listBindings(Name name, Continuation cont) + protected NamingEnumeration c_listBindings(Name name, Continuation cont) throws NamingException { SearchControls cons = new SearchControls(); @@ -1198,7 +1197,7 @@ // process the referrals sequentially while (true) { - + @SuppressWarnings("unchecked") LdapReferralContext refCtx = (LdapReferralContext)e.getReferralContext(envprops, bindCtls); @@ -1220,16 +1219,14 @@ LdapBindingEnumeration res = new LdapBindingEnumeration(this, answer, name, cont); - res.setNamingException( - (LimitExceededException)cont.fillInException(e)); + res.setNamingException(cont.fillInException(e)); return res; } catch (PartialResultException e) { LdapBindingEnumeration res = new LdapBindingEnumeration(this, answer, name, cont); - res.setNamingException( - (PartialResultException)cont.fillInException(e)); + res.setNamingException(cont.fillInException(e)); return res; } catch (NamingException e) { @@ -1337,9 +1334,9 @@ } // get attributes from result - LdapEntry entry = (LdapEntry) answer.entries.elementAt(0); - - Vector entryCtls = entry.respCtls; // retrieve entry controls + LdapEntry entry = answer.entries.elementAt(0); + + Vector entryCtls = entry.respCtls; // retrieve entry controls if (entryCtls != null) { appendVector(respCtls, entryCtls); // concatenate controls } @@ -1398,10 +1395,10 @@ int[] jmods = new int[attrs.size()]; Attribute[] jattrs = new Attribute[attrs.size()]; - NamingEnumeration ae = attrs.getAll(); + NamingEnumeration ae = attrs.getAll(); for(int i = 0; i < jmods.length && ae.hasMore(); i++) { jmods[i] = jmod_op; - jattrs[i] = (Attribute)ae.next(); + jattrs[i] = ae.next(); } LdapResult answer = clnt.modify(newDN, jmods, jattrs, reqCtls); @@ -1565,7 +1562,7 @@ HierMemDirCtx objectClassCtx = new HierMemDirCtx(); DirContext objectClassDef; String objectClassName; - for (Enumeration objectClasses = objectClassAttr.getAll(); + for (Enumeration objectClasses = objectClassAttr.getAll(); objectClasses.hasMoreElements(); ) { objectClassName = (String)objectClasses.nextElement(); // %%% Should we fail if not found, or just continue? @@ -1591,7 +1588,7 @@ private DirContext getSchemaTree(Name name) throws NamingException { String subschemasubentry = getSchemaEntry(name, true); - DirContext schemaTree = (DirContext)schemaTrees.get(subschemasubentry); + DirContext schemaTree = schemaTrees.get(subschemasubentry); if(schemaTree==null) { if(debug){System.err.println("LdapCtx: building new schema tree " + this);} @@ -1621,7 +1618,7 @@ false /*deref link */ ); Name sse = (new CompositeName()).add(subschemasubentry); - NamingEnumeration results = + NamingEnumeration results = searchAux(sse, "(objectClass=subschema)", constraints, false, true, new Continuation()); @@ -1629,7 +1626,7 @@ throw new OperationNotSupportedException( "Cannot get read subschemasubentry: " + subschemasubentry); } - SearchResult result = (SearchResult)results.next(); + SearchResult result = results.next(); results.close(); Object obj = result.getObject(); @@ -1674,7 +1671,7 @@ false /* returning obj */, false /* deref link */); - NamingEnumeration results; + NamingEnumeration results; try { results = searchAux(name, "objectclass=*", constraints, relative, true, new Continuation()); @@ -1695,7 +1692,7 @@ "Requesting schema of nonexistent entry: " + name); } - SearchResult result = (SearchResult) results.next(); + SearchResult result = results.next(); results.close(); Attribute schemaEntryAttr = @@ -1720,7 +1717,7 @@ // Set attributes to point to this context in case some one // asked for their schema void setParents(Attributes attrs, Name name) throws NamingException { - NamingEnumeration ae = attrs.getAll(); + NamingEnumeration ae = attrs.getAll(); while(ae.hasMore()) { ((LdapAttribute) ae.next()).setParent(this, name); } @@ -1740,14 +1737,14 @@ } // --------------------- Searches ----------------------------- - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration c_search(Name name, Attributes matchingAttributes, Continuation cont) throws NamingException { return c_search(name, matchingAttributes, null, cont); } - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration c_search(Name name, Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) @@ -1764,7 +1761,7 @@ return c_search(name, filter, cons, cont); } - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration c_search(Name name, String filter, SearchControls cons, Continuation cont) @@ -1773,7 +1770,7 @@ waitForReply, cont); } - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration c_search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons, @@ -1790,7 +1787,7 @@ } // Used by NamingNotifier - NamingEnumeration searchAux(Name name, + NamingEnumeration searchAux(Name name, String filter, SearchControls cons, boolean relative, @@ -1849,7 +1846,8 @@ processReturnCode(answer, name); } return new LdapSearchEnumeration(this, answer, - fullyQualifiedName(name), args, cont); + fullyQualifiedName(name), + args, cont); } catch (LdapReferralException e) { if (handleReferrals == LdapClient.LDAP_REF_THROW) @@ -1858,8 +1856,9 @@ // process the referrals sequentially while (true) { - LdapReferralContext refCtx = - (LdapReferralContext)e.getReferralContext(envprops, bindCtls); + @SuppressWarnings("unchecked") + LdapReferralContext refCtx = (LdapReferralContext) + e.getReferralContext(envprops, bindCtls); // repeat the original operation at the new context try { @@ -2143,16 +2142,18 @@ /** * Override with noncloning version. */ - protected Hashtable p_getEnvironment() { + protected Hashtable p_getEnvironment() { return envprops; } - public Hashtable getEnvironment() throws NamingException { + @SuppressWarnings("unchecked") // clone() + public Hashtable getEnvironment() throws NamingException { return (envprops == null - ? new Hashtable(5, 0.75f) - : (Hashtable)envprops.clone()); + ? new Hashtable(5, 0.75f) + : (Hashtable)envprops.clone()); } + @SuppressWarnings("unchecked") // clone() public Object removeFromEnvironment(String propName) throws NamingException { @@ -2160,58 +2161,74 @@ if (envprops == null || envprops.get(propName) == null) { return null; } - - if (propName.equals(REF_SEPARATOR)) { - addrEncodingSeparator = DEFAULT_REF_SEPARATOR; - } else if (propName.equals(TYPES_ONLY)) { - typesOnly = DEFAULT_TYPES_ONLY; - } else if (propName.equals(DELETE_RDN)) { - deleteRDN = DEFAULT_DELETE_RDN; - } else if (propName.equals(DEREF_ALIASES)) { - derefAliases = DEFAULT_DEREF_ALIASES; - } else if (propName.equals(Context.BATCHSIZE)) { - batchSize = DEFAULT_BATCH_SIZE; - } else if (propName.equals(REFERRAL_LIMIT)) { - referralHopLimit = DEFAULT_REFERRAL_LIMIT; - } else if (propName.equals(Context.REFERRAL)) { - setReferralMode(null, true); - } else if (propName.equals(BINARY_ATTRIBUTES)) { - setBinaryAttributes(null); - } else if (propName.equals(CONNECT_TIMEOUT)) { - connectTimeout = -1; - } else if (propName.equals(READ_TIMEOUT)) { - readTimeout = -1; - } else if (propName.equals(WAIT_FOR_REPLY)) { - waitForReply = true; - } else if (propName.equals(REPLY_QUEUE_SIZE)) { - replyQueueSize = -1; - -// The following properties affect the connection - - } else if (propName.equals(Context.SECURITY_PROTOCOL)) { - closeConnection(SOFT_CLOSE); - // De-activate SSL and reset the context's url and port number - if (useSsl && !hasLdapsScheme) { - useSsl = false; - url = null; - if (useDefaultPortNumber) { - port_number = DEFAULT_PORT; + switch (propName) { + case REF_SEPARATOR: + addrEncodingSeparator = DEFAULT_REF_SEPARATOR; + break; + case TYPES_ONLY: + typesOnly = DEFAULT_TYPES_ONLY; + break; + case DELETE_RDN: + deleteRDN = DEFAULT_DELETE_RDN; + break; + case DEREF_ALIASES: + derefAliases = DEFAULT_DEREF_ALIASES; + break; + case Context.BATCHSIZE: + batchSize = DEFAULT_BATCH_SIZE; + break; + case REFERRAL_LIMIT: + referralHopLimit = DEFAULT_REFERRAL_LIMIT; + break; + case Context.REFERRAL: + setReferralMode(null, true); + break; + case BINARY_ATTRIBUTES: + setBinaryAttributes(null); + break; + case CONNECT_TIMEOUT: + connectTimeout = -1; + break; + case READ_TIMEOUT: + readTimeout = -1; + break; + case WAIT_FOR_REPLY: + waitForReply = true; + break; + case REPLY_QUEUE_SIZE: + replyQueueSize = -1; + break; + + // The following properties affect the connection + + case Context.SECURITY_PROTOCOL: + closeConnection(SOFT_CLOSE); + // De-activate SSL and reset the context's url and port number + if (useSsl && !hasLdapsScheme) { + useSsl = false; + url = null; + if (useDefaultPortNumber) { + port_number = DEFAULT_PORT; + } } - } - } else if (propName.equals(VERSION) || - propName.equals(SOCKET_FACTORY)) { - closeConnection(SOFT_CLOSE); - } else if(propName.equals(Context.SECURITY_AUTHENTICATION) || - propName.equals(Context.SECURITY_PRINCIPAL) || - propName.equals(Context.SECURITY_CREDENTIALS)) { - sharable = false; + break; + case VERSION: + case SOCKET_FACTORY: + closeConnection(SOFT_CLOSE); + break; + case Context.SECURITY_AUTHENTICATION: + case Context.SECURITY_PRINCIPAL: + case Context.SECURITY_CREDENTIALS: + sharable = false; + break; } // Update environment; reconnection will use new props - envprops = (Hashtable)envprops.clone(); + envprops = (Hashtable)envprops.clone(); return envprops.remove(propName); } + @SuppressWarnings("unchecked") // clone() public Object addToEnvironment(String propName, Object propVal) throws NamingException { @@ -2219,57 +2236,72 @@ if (propVal == null) { return removeFromEnvironment(propName); } - - if (propName.equals(REF_SEPARATOR)) { - setRefSeparator((String)propVal); - } else if (propName.equals(TYPES_ONLY)) { - setTypesOnly((String)propVal); - } else if (propName.equals(DELETE_RDN)) { - setDeleteRDN((String)propVal); - } else if (propName.equals(DEREF_ALIASES)) { - setDerefAliases((String)propVal); - } else if (propName.equals(Context.BATCHSIZE)) { - setBatchSize((String)propVal); - } else if (propName.equals(REFERRAL_LIMIT)) { - setReferralLimit((String)propVal); - } else if (propName.equals(Context.REFERRAL)) { - setReferralMode((String)propVal, true); - } else if (propName.equals(BINARY_ATTRIBUTES)) { - setBinaryAttributes((String)propVal); - } else if (propName.equals(CONNECT_TIMEOUT)) { - setConnectTimeout((String)propVal); - } else if (propName.equals(READ_TIMEOUT)) { - setReadTimeout((String)propVal); - } else if (propName.equals(WAIT_FOR_REPLY)) { - setWaitForReply((String)propVal); - } else if (propName.equals(REPLY_QUEUE_SIZE)) { - setReplyQueueSize((String)propVal); - -// The following properties affect the connection - - } else if (propName.equals(Context.SECURITY_PROTOCOL)) { - closeConnection(SOFT_CLOSE); - // Activate SSL and reset the context's url and port number - if ("ssl".equals(propVal)) { - useSsl = true; - url = null; - if (useDefaultPortNumber) { - port_number = DEFAULT_SSL_PORT; + switch (propName) { + case REF_SEPARATOR: + setRefSeparator((String)propVal); + break; + case TYPES_ONLY: + setTypesOnly((String)propVal); + break; + case DELETE_RDN: + setDeleteRDN((String)propVal); + break; + case DEREF_ALIASES: + setDerefAliases((String)propVal); + break; + case Context.BATCHSIZE: + setBatchSize((String)propVal); + break; + case REFERRAL_LIMIT: + setReferralLimit((String)propVal); + break; + case Context.REFERRAL: + setReferralMode((String)propVal, true); + break; + case BINARY_ATTRIBUTES: + setBinaryAttributes((String)propVal); + break; + case CONNECT_TIMEOUT: + setConnectTimeout((String)propVal); + break; + case READ_TIMEOUT: + setReadTimeout((String)propVal); + break; + case WAIT_FOR_REPLY: + setWaitForReply((String)propVal); + break; + case REPLY_QUEUE_SIZE: + setReplyQueueSize((String)propVal); + break; + + // The following properties affect the connection + + case Context.SECURITY_PROTOCOL: + closeConnection(SOFT_CLOSE); + // Activate SSL and reset the context's url and port number + if ("ssl".equals(propVal)) { + useSsl = true; + url = null; + if (useDefaultPortNumber) { + port_number = DEFAULT_SSL_PORT; + } } - } - } else if (propName.equals(VERSION) || - propName.equals(SOCKET_FACTORY)) { - closeConnection(SOFT_CLOSE); - } else if (propName.equals(Context.SECURITY_AUTHENTICATION) || - propName.equals(Context.SECURITY_PRINCIPAL) || - propName.equals(Context.SECURITY_CREDENTIALS)) { - sharable = false; + break; + case VERSION: + case SOCKET_FACTORY: + closeConnection(SOFT_CLOSE); + break; + case Context.SECURITY_AUTHENTICATION: + case Context.SECURITY_PRINCIPAL: + case Context.SECURITY_CREDENTIALS: + sharable = false; + break; } // Update environment; reconnection will use new props envprops = (envprops == null - ? new Hashtable(5, 0.75f) - : (Hashtable)envprops.clone()); + ? new Hashtable(5, 0.75f) + : (Hashtable)envprops.clone()); return envprops.put(propName, propVal); } @@ -2380,15 +2412,19 @@ private void setReferralMode(String ref, boolean update) { // First determine the referral mode if (ref != null) { - if (ref.equals("follow")) { - handleReferrals = LdapClient.LDAP_REF_FOLLOW; - } else if (ref.equals("throw")) { - handleReferrals = LdapClient.LDAP_REF_THROW; - } else if (ref.equals("ignore")) { - handleReferrals = LdapClient.LDAP_REF_IGNORE; - } else { - throw new IllegalArgumentException( - "Illegal value for " + Context.REFERRAL + " property."); + switch (ref) { + case "follow": + handleReferrals = LdapClient.LDAP_REF_FOLLOW; + break; + case "throw": + handleReferrals = LdapClient.LDAP_REF_THROW; + break; + case "ignore": + handleReferrals = LdapClient.LDAP_REF_IGNORE; + break; + default: + throw new IllegalArgumentException( + "Illegal value for " + Context.REFERRAL + " property."); } } else { handleReferrals = DEFAULT_REFERRAL_MODE; @@ -2411,17 +2447,22 @@ */ private void setDerefAliases(String deref) { if (deref != null) { - if (deref.equals("never")) { - derefAliases = 0; // never de-reference aliases - } else if (deref.equals("searching")) { - derefAliases = 1; // de-reference aliases during searching - } else if (deref.equals("finding")) { - derefAliases = 2; // de-reference during name resolution - } else if (deref.equals("always")) { - derefAliases = 3; // always de-reference aliases - } else { - throw new IllegalArgumentException("Illegal value for " + - DEREF_ALIASES + " property."); + switch (deref) { + case "never": + derefAliases = 0; // never de-reference aliases + break; + case "searching": + derefAliases = 1; // de-reference aliases during searching + break; + case "finding": + derefAliases = 2; // de-reference during name resolution + break; + case "always": + derefAliases = 3; // always de-reference aliases + break; + default: + throw new IllegalArgumentException("Illegal value for " + + DEREF_ALIASES + " property."); } } else { derefAliases = DEFAULT_DEREF_ALIASES; @@ -2514,8 +2555,10 @@ * ::= | * ::= ASCII linefeed character (0x0a) * ::= LDAP URL format (RFC 1959) + * + * Returns a Vector of single-String Vectors. */ - private static Vector extractURLs(String refString) { + private static Vector> extractURLs(String refString) { int separator = 0; int urlCount = 0; @@ -2526,17 +2569,21 @@ urlCount++; } - Vector referrals = new Vector(urlCount); + Vector> referrals = new Vector<>(urlCount); int iURL; int i = 0; separator = refString.indexOf('\n'); iURL = separator + 1; while ((separator = refString.indexOf('\n', iURL)) >= 0) { - referrals.addElement(refString.substring(iURL, separator)); + Vector referral = new Vector<>(1); + referral.addElement(refString.substring(iURL, separator)); + referrals.addElement(referral); iURL = separator + 1; } - referrals.addElement(refString.substring(iURL)); + Vector referral = new Vector<>(1); + referral.addElement(refString.substring(iURL)); + referrals.addElement(referral); return referrals; } @@ -2549,9 +2596,9 @@ if (attrIds == null) { binaryAttrs = null; } else { - binaryAttrs = new Hashtable(11, 0.75f); + binaryAttrs = new Hashtable<>(11, 0.75f); StringTokenizer tokens = - new StringTokenizer(attrIds.toLowerCase(), " "); + new StringTokenizer(attrIds.toLowerCase(Locale.ENGLISH), " "); while (tokens.hasMoreTokens()) { binaryAttrs.put(tokens.nextToken(), Boolean.TRUE); @@ -2601,11 +2648,12 @@ */ } + @SuppressWarnings("unchecked") // clone() public void reconnect(Control[] connCtls) throws NamingException { // Update environment envprops = (envprops == null - ? new Hashtable(5, 0.75f) - : (Hashtable)envprops.clone()); + ? new Hashtable(5, 0.75f) + : (Hashtable)envprops.clone()); if (connCtls == null) { envprops.remove(BIND_CONTROLS); @@ -2631,7 +2679,7 @@ } // reset the cache before a new connection is established - schemaTrees = new Hashtable(11, 0.75f); + schemaTrees = new Hashtable<>(11, 0.75f); connect(startTLS); } else if (!sharable || startTLS) { @@ -2644,7 +2692,7 @@ } } // reset the cache before a new connection is established - schemaTrees = new Hashtable(11, 0.75f); + schemaTrees = new Hashtable<>(11, 0.75f); connect(startTLS); } @@ -2846,7 +2894,7 @@ } protected void processReturnCode(LdapResult res, Name resolvedName, - Object resolvedObj, Name remainName, Hashtable envprops, String fullDN) + Object resolvedObj, Name remainName, Hashtable envprops, String fullDN) throws NamingException { String msg = LdapClient.getErrorMessage(res.status, res.errorMessage); @@ -2880,7 +2928,7 @@ r = new LdapReferralException(resolvedName, resolvedObj, remainName, msg, envprops, fullDN, handleReferrals, reqCtls); - r.setReferralInfo((Vector)res.referrals.elementAt(i), true); + r.setReferralInfo(res.referrals.elementAt(i), true); if (hopCount > 1) { r.setHopCount(hopCount); @@ -2927,7 +2975,7 @@ r = new LdapReferralException(resolvedName, resolvedObj, remainName, msg, envprops, fullDN, handleReferrals, reqCtls); // only one set of URLs is present - r.setReferralInfo((Vector)res.referrals.elementAt(0), false); + r.setReferralInfo(res.referrals.elementAt(0), false); if (hopCount > 1) { r.setHopCount(hopCount); @@ -2995,10 +3043,10 @@ * If 1 referral and 0 entries is received then * assume name resolution has not yet completed. */ - if (((res.entries == null) || (res.entries.size() == 0)) && + if (((res.entries == null) || (res.entries.isEmpty())) && (res.referrals.size() == 1)) { - r.setReferralInfo((Vector)res.referrals, false); + r.setReferralInfo(res.referrals, false); // check the hop limit if (hopCount > referralHopLimit) { @@ -3284,9 +3332,9 @@ /** * Narrow controls using own default factory and ControlFactory. - * @param ctls A non-null Vector + * @param ctls A non-null Vector */ - Control[] convertControls(Vector ctls) throws NamingException { + Control[] convertControls(Vector ctls) throws NamingException { int count = ctls.size(); if (count == 0) { @@ -3298,12 +3346,12 @@ for (int i = 0; i < count; i++) { // Try own factory first controls[i] = myResponseControlFactory.getControlInstance( - (Control)ctls.elementAt(i)); + ctls.elementAt(i)); // Try assigned factories if own produced null if (controls[i] == null) { controls[i] = ControlFactory.getControlInstance( - (Control)ctls.elementAt(i), this, envprops); + ctls.elementAt(i), this, envprops); } } return controls; @@ -3448,7 +3496,7 @@ if (nm.size() > 1) { throw new InvalidNameException( "Target cannot span multiple namespaces: " + nm); - } else if (nm.size() == 0) { + } else if (nm.isEmpty()) { return ""; } else { return nm.get(0); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,7 +28,6 @@ import java.util.Hashtable; import java.util.Vector; import java.util.Enumeration; -import java.net.MalformedURLException; import javax.naming.*; import javax.naming.directory.*; @@ -119,9 +118,9 @@ int size = 0; // number of URLs String[] urls = new String[ref.size()]; - Enumeration addrs = ref.getAll(); + Enumeration addrs = ref.getAll(); while (addrs.hasMoreElements()) { - RefAddr addr = (RefAddr)addrs.nextElement(); + RefAddr addr = addrs.nextElement(); if ((addr instanceof StringRefAddr) && addr.getType().equals(ADDRESS_TYPE)) { @@ -145,7 +144,7 @@ // ------------ Utilities used by other classes ---------------- - public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable env) + public static DirContext getLdapCtxInstance(Object urlInfo, Hashtable env) throws NamingException { if (urlInfo instanceof String) { @@ -158,7 +157,7 @@ } } - private static DirContext getUsingURL(String url, Hashtable env) + private static DirContext getUsingURL(String url, Hashtable env) throws NamingException { DirContext ctx = null; LdapURL ldapUrl = new LdapURL(url); @@ -202,7 +201,7 @@ * If all URLs fail, throw one of the exceptions arbitrarily. * Not pretty, but potentially more informative than returning null. */ - private static DirContext getUsingURLs(String[] urls, Hashtable env) + private static DirContext getUsingURLs(String[] urls, Hashtable env) throws NamingException { NamingException ne = null; DirContext ctx = null; @@ -221,8 +220,8 @@ /** * Used by Obj and obj/RemoteToAttrs too so must be public */ - public static Attribute createTypeNameAttr(Class cl) { - Vector v = new Vector(10); + public static Attribute createTypeNameAttr(Class cl) { + Vector v = new Vector<>(10); String[] types = getTypeNames(cl, v); if (types.length > 0) { BasicAttribute tAttr = @@ -235,7 +234,7 @@ return null; } - private static String[] getTypeNames(Class currentClass, Vector v) { + private static String[] getTypeNames(Class currentClass, Vector v) { getClassesAux(currentClass, v); Class[] members = currentClass.getInterfaces(); @@ -244,13 +243,14 @@ } String[] ret = new String[v.size()]; int i = 0; - for (java.util.Enumeration e = v.elements(); e.hasMoreElements();) { - ret[i++] = (String)e.nextElement(); + + for (String name : v) { + ret[i++] = name; } return ret; } - private static void getClassesAux(Class currentClass, Vector v) { + private static void getClassesAux(Class currentClass, Vector v) { if (!v.contains(currentClass.getName())) { v.addElement(currentClass.getName()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,7 +27,7 @@ import java.util.Vector; import javax.naming.directory.Attributes; -import javax.naming.directory.Attribute; +import javax.naming.ldap.Control; /** * A holder for an LDAP entry read from an LDAP server. @@ -38,14 +38,14 @@ final class LdapEntry { String DN; Attributes attributes; - Vector respCtls = null; + Vector respCtls = null; LdapEntry(String DN, Attributes attrs) { this.DN = DN; this.attributes = attrs; } - LdapEntry(String DN, Attributes attrs, Vector respCtls) { + LdapEntry(String DN, Attributes attrs, Vector respCtls) { this.DN = DN; this.attributes = attrs; this.respCtls = respCtls; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,6 +28,7 @@ import java.util.Enumeration; import java.util.Vector; +import java.util.Locale; import javax.naming.*; import javax.naming.directory.Attributes; @@ -78,7 +79,7 @@ public final class LdapName implements Name { private transient String unparsed; // if non-null, the DN in unparsed form - private transient Vector rdns; // parsed name components + private transient Vector rdns; // parsed name components private transient boolean valuesCaseSensitive = false; /** @@ -97,9 +98,10 @@ * Constructs an LDAP name given its parsed components and, optionally * (if "name" is not null), the unparsed DN. */ - private LdapName(String name, Vector rdns) { + @SuppressWarnings("unchecked") // clone() + private LdapName(String name, Vector rdns) { unparsed = name; - this.rdns = (Vector)rdns.clone(); + this.rdns = (Vector)rdns.clone(); } /* @@ -107,9 +109,9 @@ * of "rdns" in the range [beg,end)) and, optionally * (if "name" is not null), the unparsed DN. */ - private LdapName(String name, Vector rdns, int beg, int end) { + private LdapName(String name, Vector rdns, int beg, int end) { unparsed = name; - this.rdns = new Vector(); + this.rdns = new Vector<>(); for (int i = beg; i < end; i++) { this.rdns.addElement(rdns.elementAt(i)); } @@ -130,7 +132,7 @@ if (i < rdns.size() - 1) { buf.append(','); } - Rdn rdn = (Rdn)rdns.elementAt(i); + Rdn rdn = rdns.elementAt(i); buf.append(rdn); } @@ -155,8 +157,8 @@ int minSize = Math.min(rdns.size(), that.rdns.size()); for (int i = 0 ; i < minSize; i++) { // Compare a single pair of RDNs. - Rdn rdn1 = (Rdn)rdns.elementAt(i); - Rdn rdn2 = (Rdn)that.rdns.elementAt(i); + Rdn rdn1 = rdns.elementAt(i); + Rdn rdn2 = that.rdns.elementAt(i); int diff = rdn1.compareTo(rdn2); if (diff != 0) { @@ -172,7 +174,7 @@ // For each RDN... for (int i = 0; i < rdns.size(); i++) { - Rdn rdn = (Rdn)rdns.elementAt(i); + Rdn rdn = rdns.elementAt(i); hash += rdn.hashCode(); } return hash; @@ -186,14 +188,14 @@ return rdns.isEmpty(); } - public Enumeration getAll() { - final Enumeration enum_ = rdns.elements(); + public Enumeration getAll() { + final Enumeration enum_ = rdns.elements(); - return new Enumeration () { + return new Enumeration() { public boolean hasMoreElements() { return enum_.hasMoreElements(); } - public Object nextElement() { + public String nextElement() { return enum_.nextElement().toString(); } }; @@ -254,7 +256,7 @@ Rdn rdn; if (n instanceof LdapName) { LdapName ln = (LdapName)n; - rdn = (Rdn)ln.rdns.elementAt(i - beg); + rdn = ln.rdns.elementAt(i - beg); } else { String rdnString = n.get(i - beg); try { @@ -286,9 +288,9 @@ rdns.insertElementAt(s.rdns.elementAt(i), pos++); } } else { - Enumeration comps = suffix.getAll(); + Enumeration comps = suffix.getAll(); while (comps.hasMoreElements()) { - DnParser p = new DnParser((String)comps.nextElement(), + DnParser p = new DnParser(comps.nextElement(), valuesCaseSensitive); rdns.insertElementAt(p.getRdn(), pos++); } @@ -406,9 +408,9 @@ /* * Parses the DN, returning a Vector of its RDNs. */ - Vector getDn() throws InvalidNameException { + Vector getDn() throws InvalidNameException { cur = 0; - Vector rdns = new Vector(len / 3 + 10); // leave room for growth + Vector rdns = new Vector<>(len / 3 + 10); // leave room for growth if (len == 0) { return rdns; @@ -595,7 +597,7 @@ * A vector of the TypeAndValue elements of this Rdn. * It is sorted to facilitate set operations. */ - private final Vector tvs = new Vector(); + private final Vector tvs = new Vector<>(); void add(TypeAndValue tv) { @@ -636,7 +638,7 @@ int minSize = Math.min(tvs.size(), that.tvs.size()); for (int i = 0; i < minSize; i++) { // Compare a single pair of type/value pairs. - TypeAndValue tv = (TypeAndValue)tvs.elementAt(i); + TypeAndValue tv = tvs.elementAt(i); int diff = tv.compareTo(that.tvs.elementAt(i)); if (diff != 0) { return diff; @@ -662,7 +664,7 @@ Attribute attr; for (int i = 0; i < tvs.size(); i++) { - tv = (TypeAndValue) tvs.elementAt(i); + tv = tvs.elementAt(i); if ((attr = attrs.get(tv.getType())) == null) { attrs.put(tv.getType(), tv.getUnescapedValue()); } else { @@ -706,7 +708,7 @@ TypeAndValue that = (TypeAndValue)obj; - int diff = type.toUpperCase().compareTo(that.type.toUpperCase()); + int diff = type.compareToIgnoreCase(that.type); if (diff != 0) { return diff; } @@ -729,7 +731,7 @@ public int hashCode() { // If two objects are equal, their hash codes must match. - return (type.toUpperCase().hashCode() + + return (type.toUpperCase(Locale.ENGLISH).hashCode() + getValueComparable().hashCode()); } @@ -763,11 +765,12 @@ // cache result if (binary) { - comparable = value.toUpperCase(); + comparable = value.toUpperCase(Locale.ENGLISH); } else { comparable = (String)unescapeValue(value); if (!valueCaseSensitive) { - comparable = comparable.toUpperCase(); // ignore case + // ignore case + comparable = comparable.toUpperCase(Locale.ENGLISH); } } return comparable; @@ -835,7 +838,7 @@ buf.append(Character.forDigit(0xF & b, 16)); } - return (new String(buf)).toUpperCase(); + return (new String(buf)).toUpperCase(Locale.ENGLISH); } /* diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,267 +27,25 @@ import javax.naming.*; import javax.naming.directory.*; -import javax.naming.spi.*; import com.sun.jndi.toolkit.ctx.Continuation; -import java.util.NoSuchElementException; import java.util.Vector; -import javax.naming.ldap.LdapName; - -/** - * Basic enumeration for NameClassPair, Binding, and SearchResults. - */ - -class LdapNamingEnumeration implements NamingEnumeration, ReferralEnumeration { - protected Name listArg; +import javax.naming.ldap.Control; - private boolean cleaned = false; - private LdapResult res; - private LdapClient enumClnt; - private Continuation cont; // used to fill in exceptions - private Vector entries = null; - private int limit = 0; - private int posn = 0; - protected LdapCtx homeCtx; - private LdapReferralException refEx = null; - private NamingException errEx = null; + +final class LdapNamingEnumeration + extends AbstractLdapNamingEnumeration { private static final String defaultClassName = DirContext.class.getName(); - /* - * Record the next set of entries and/or referrals. - */ LdapNamingEnumeration(LdapCtx homeCtx, LdapResult answer, Name listArg, - Continuation cont) throws NamingException { - - // These checks are to accommodate referrals and limit exceptions - // which will generate an enumeration and defer the exception - // to be thrown at the end of the enumeration. - // All other exceptions are thrown immediately. - // Exceptions shouldn't be thrown here anyhow because - // process_return_code() is called before the constructor - // is called, so these are just safety checks. - - if ((answer.status != LdapClient.LDAP_SUCCESS) && - (answer.status != LdapClient.LDAP_SIZE_LIMIT_EXCEEDED) && - (answer.status != LdapClient.LDAP_TIME_LIMIT_EXCEEDED) && - (answer.status != LdapClient.LDAP_ADMIN_LIMIT_EXCEEDED) && - (answer.status != LdapClient.LDAP_REFERRAL) && - (answer.status != LdapClient.LDAP_PARTIAL_RESULTS)) { - - // %%% need to deal with referral - NamingException e = new NamingException( - LdapClient.getErrorMessage( - answer.status, answer.errorMessage)); - - throw cont.fillInException(e); - } - - // otherwise continue - - res = answer; - entries = answer.entries; - limit = (entries == null) ? 0 : entries.size(); // handle empty set - this.listArg = listArg; - this.cont = cont; - - if (answer.refEx != null) { - refEx = answer.refEx; - } - - // Ensures that context won't get closed from underneath us - this.homeCtx = homeCtx; - homeCtx.incEnumCount(); - enumClnt = homeCtx.clnt; // remember - } - - public Object nextElement() { - try { - return next(); - } catch (NamingException e) { - // can't throw exception - cleanup(); - return null; - } - } - - public boolean hasMoreElements() { - try { - return hasMore(); - } catch (NamingException e) { - // can't throw exception - cleanup(); - return false; - } - } - - /* - * Retrieve the next set of entries and/or referrals. - */ - private void getNextBatch() throws NamingException { - - res = homeCtx.getSearchReply(enumClnt, res); - if (res == null) { - limit = posn = 0; - return; - } - - entries = res.entries; - limit = (entries == null) ? 0 : entries.size(); // handle empty set - posn = 0; // reset - - // mimimize the number of calls to processReturnCode() - // (expensive when batchSize is small and there are many results) - if ((res.status != LdapClient.LDAP_SUCCESS) || - ((res.status == LdapClient.LDAP_SUCCESS) && - (res.referrals != null))) { - - try { - // convert referrals into a chain of LdapReferralException - homeCtx.processReturnCode(res, listArg); - - } catch (LimitExceededException e) { - setNamingException(e); - - } catch (PartialResultException e) { - setNamingException(e); - } - } - - // merge any newly received referrals with any current referrals - if (res.refEx != null) { - if (refEx == null) { - refEx = res.refEx; - } else { - refEx = refEx.appendUnprocessedReferrals(res.refEx); - } - res.refEx = null; // reset - } - - if (res.resControls != null) { - homeCtx.respCtls = res.resControls; - } + Continuation cont) throws NamingException { + super(homeCtx, answer, listArg, cont); } - private boolean more = true; // assume we have something to start with - private boolean hasMoreCalled = false; - - /* - * Test if unprocessed entries or referrals exist. - */ - public boolean hasMore() throws NamingException { - - if (hasMoreCalled) { - return more; - } - - hasMoreCalled = true; - - if (!more) { - return false; - } else { - return (more = hasMoreImpl()); - } - } - - /* - * Retrieve the next entry. - */ - public Object next() throws NamingException { - - if (!hasMoreCalled) { - hasMore(); - } - hasMoreCalled = false; - return nextImpl(); - } - - /* - * Test if unprocessed entries or referrals exist. - */ - private boolean hasMoreImpl() throws NamingException { - // when page size is supported, this - // might generate an exception while attempting - // to fetch the next batch to determine - // whether there are any more elements - - // test if the current set of entries has been processed - if (posn == limit) { - getNextBatch(); - } - - // test if any unprocessed entries exist - if (posn < limit) { - return true; - } else { - - try { - // try to process another referral - return hasMoreReferrals(); - - } catch (LdapReferralException e) { - cleanup(); - throw e; - - } catch (LimitExceededException e) { - cleanup(); - throw e; - - } catch (PartialResultException e) { - cleanup(); - throw e; - - } catch (NamingException e) { - cleanup(); - PartialResultException pre = new PartialResultException(); - pre.setRootCause(e); - throw pre; - } - } - } - - /* - * Retrieve the next entry. - */ - private Object nextImpl() throws NamingException { - try { - return nextAux(); - } catch (NamingException e) { - cleanup(); - throw cont.fillInException(e); - } - } - - private Object nextAux() throws NamingException { - if (posn == limit) { - getNextBatch(); // updates posn and limit - } - - if (posn >= limit) { - cleanup(); - throw new NoSuchElementException("invalid enumeration handle"); - } - - LdapEntry result = (LdapEntry)entries.elementAt(posn++); - - // gets and outputs DN from the entry - return createItem(result.DN, result.attributes, result.respCtls); - } - - protected String getAtom(String dn) { - String atom; - // need to strip off all but lowest component of dn - // so that is relative to current context (currentDN) - try { - Name parsed = new LdapName(dn); - return parsed.get(parsed.size() - 1); - } catch (NamingException e) { - return dn; - } - } - + @Override protected NameClassPair createItem(String dn, Attributes attrs, - Vector respCtls) throws NamingException { + Vector respCtls) throws NamingException { Attribute attr; String className = null; @@ -313,128 +71,10 @@ return ncp; } - /* - * Append the supplied (chain of) referrals onto the - * end of the current (chain of) referrals. - */ - public void appendUnprocessedReferrals(LdapReferralException ex) { - - if (refEx != null) { - refEx = refEx.appendUnprocessedReferrals(ex); - } else { - refEx = ex.appendUnprocessedReferrals(refEx); - } - } - - void setNamingException(NamingException e) { - errEx = e; - } - - protected LdapNamingEnumeration - getReferredResults(LdapReferralContext refCtx) throws NamingException { + @Override + protected LdapNamingEnumeration getReferredResults( + LdapReferralContext refCtx) throws NamingException { // repeat the original operation at the new context return (LdapNamingEnumeration)refCtx.list(listArg); } - - /* - * Iterate through the URLs of a referral. If successful then perform - * a search operation and merge the received results with the current - * results. - */ - protected boolean hasMoreReferrals() throws NamingException { - - if ((refEx != null) && - (refEx.hasMoreReferrals() || - refEx.hasMoreReferralExceptions())) { - - if (homeCtx.handleReferrals == LdapClient.LDAP_REF_THROW) { - throw (NamingException)(refEx.fillInStackTrace()); - } - - // process the referrals sequentially - while (true) { - - LdapReferralContext refCtx = - (LdapReferralContext)refEx.getReferralContext( - homeCtx.envprops, homeCtx.reqCtls); - - try { - - update(getReferredResults(refCtx)); - break; - - } catch (LdapReferralException re) { - - // record a previous exception - if (errEx == null) { - errEx = re.getNamingException(); - } - refEx = re; - continue; - - } finally { - // Make sure we close referral context - refCtx.close(); - } - } - return hasMoreImpl(); - - } else { - cleanup(); - - if (errEx != null) { - throw errEx; - } - return (false); - } - } - - /* - * Merge the entries and/or referrals from the supplied enumeration - * with those of the current enumeration. - */ - protected void update(LdapNamingEnumeration ne) { - // Cleanup previous context first - homeCtx.decEnumCount(); - - // New enum will have already incremented enum count and recorded clnt - homeCtx = ne.homeCtx; - enumClnt = ne.enumClnt; - - // Do this to prevent referral enumeration (ne) from decrementing - // enum count because we'll be doing that here from this - // enumeration. - ne.homeCtx = null; - - // Record rest of information from new enum - posn = ne.posn; - limit = ne.limit; - res = ne.res; - entries = ne.entries; - refEx = ne.refEx; - listArg = ne.listArg; - } - - protected void finalize() { - cleanup(); - } - - protected void cleanup() { - if (cleaned) return; // been there; done that - - if(enumClnt != null) { - enumClnt.clearSearchReply(res, homeCtx.reqCtls); - } - - enumClnt = null; - cleaned = true; - if (homeCtx != null) { - homeCtx.decEnumCount(); - homeCtx = null; - } - } - - public void close() { - cleanup(); - } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -28,6 +28,7 @@ import java.io.PrintStream; import java.io.OutputStream; import java.util.Hashtable; +import java.util.Locale; import java.util.StringTokenizer; import javax.naming.ldap.Control; @@ -133,7 +134,7 @@ String mech; int p; for (int i = 0; i < count; i++) { - mech = parser.nextToken().toLowerCase(); + mech = parser.nextToken().toLowerCase(Locale.ENGLISH); if (mech.equals("anonymous")) { mech = "none"; } @@ -214,7 +215,7 @@ * */ static boolean isPoolingAllowed(String socketFactory, OutputStream trace, - String authMech, String protocol, Hashtable env) + String authMech, String protocol, Hashtable env) throws NamingException { if (trace != null && !debug @@ -235,7 +236,7 @@ if ((socketFactory != null) && !socketFactory.equals(LdapCtx.DEFAULT_SSL_FACTORY)) { try { - Class socketFactoryClass = Obj.helper.loadClass(socketFactory); + Class socketFactoryClass = Obj.helper.loadClass(socketFactory); Class[] interfaces = socketFactoryClass.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { if (interfaces[i].getCanonicalName().equals(COMPARATOR)) { @@ -294,7 +295,7 @@ static LdapClient getLdapClient(String host, int port, String socketFactory, int connTimeout, int readTimeout, OutputStream trace, int version, String authMech, Control[] ctls, String protocol, String user, - Object passwd, Hashtable env) throws NamingException { + Object passwd, Hashtable env) throws NamingException { // Create base identity for LdapClient ClientId id = null; @@ -385,9 +386,9 @@ private static final String getProperty(final String propName, final String defVal) { - return (String) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public String run() { try { return System.getProperty(propName, defVal); } catch (SecurityException e) { @@ -399,9 +400,9 @@ private static final int getInteger(final String propName, final int defVal) { - Integer val = (Integer) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + Integer val = AccessController.doPrivileged( + new PrivilegedAction() { + public Integer run() { try { return Integer.getInteger(propName, defVal); } catch (SecurityException e) { @@ -414,9 +415,9 @@ private static final long getLong(final String propName, final long defVal) { - Long val = (Long) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + Long val = AccessController.doPrivileged( + new PrivilegedAction() { + public Long run() { try { return Long.getLong(propName, defVal); } catch (SecurityException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -52,7 +52,9 @@ private int hopCount = 1; private NamingException previousEx = null; - LdapReferralContext(LdapReferralException ex, Hashtable env, + @SuppressWarnings("unchecked") // clone() + LdapReferralContext(LdapReferralException ex, + Hashtable env, Control[] connCtls, Control[] reqCtls, String nextName, @@ -69,20 +71,21 @@ // Make copies of environment and connect controls for our own use. if (env != null) { - env = (Hashtable) env.clone(); + env = (Hashtable) env.clone(); // Remove old connect controls from environment, unless we have new // ones that will override them anyway. if (connCtls == null) { env.remove(LdapCtx.BIND_CONTROLS); } } else if (connCtls != null) { - env = new Hashtable(5); + env = new Hashtable(5); } if (connCtls != null) { Control[] copiedCtls = new Control[connCtls.length]; System.arraycopy(connCtls, 0, copiedCtls, 0, connCtls.length); // Add copied controls to environment, replacing any old ones. - env.put(LdapCtx.BIND_CONTROLS, copiedCtls); + ((Hashtable)env) + .put(LdapCtx.BIND_CONTROLS, copiedCtls); } while (true) { @@ -260,24 +263,26 @@ refCtx.rename(overrideName(oldName), toName(refEx.getNewRdn())); } - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) throws NamingException { return list(toName(name)); } - public NamingEnumeration list(Name name) throws NamingException { + @SuppressWarnings("unchecked") + public NamingEnumeration list(Name name) throws NamingException { if (skipThisReferral) { throw (NamingException) ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace()); } try { - NamingEnumeration ne = null; + NamingEnumeration ne = null; if (urlScope != null && urlScope.equals("base")) { SearchControls cons = new SearchControls(); cons.setReturningObjFlag(true); cons.setSearchScope(SearchControls.OBJECT_SCOPE); - ne = refCtx.search(overrideName(name), "(objectclass=*)", cons); + ne = (NamingEnumeration) + refCtx.search(overrideName(name), "(objectclass=*)", cons); } else { ne = refCtx.list(overrideName(name)); @@ -318,25 +323,29 @@ } } - public NamingEnumeration listBindings(String name) throws NamingException { + public NamingEnumeration listBindings(String name) throws + NamingException { return listBindings(toName(name)); } - public NamingEnumeration listBindings(Name name) throws NamingException { + @SuppressWarnings("unchecked") + public NamingEnumeration listBindings(Name name) throws + NamingException { if (skipThisReferral) { throw (NamingException) ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace()); } try { - NamingEnumeration be = null; + NamingEnumeration be = null; if (urlScope != null && urlScope.equals("base")) { SearchControls cons = new SearchControls(); cons.setReturningObjFlag(true); cons.setSearchScope(SearchControls.OBJECT_SCOPE); - be = refCtx.search(overrideName(name), "(objectclass=*)", cons); + be = (NamingEnumeration)refCtx.search(overrideName(name), + "(objectclass=*)", cons); } else { be = refCtx.listBindings(overrideName(name)); @@ -347,7 +356,7 @@ // append (referrals from) the exception that generated this // context to the new search results, so that referral processing // can continue - ((ReferralEnumeration)be).appendUnprocessedReferrals(refEx); + ((ReferralEnumeration)be).appendUnprocessedReferrals(refEx); return (be); @@ -462,7 +471,7 @@ return refCtx.removeFromEnvironment(propName); } - public Hashtable getEnvironment() throws NamingException { + public Hashtable getEnvironment() throws NamingException { if (skipThisReferral) { throw (NamingException) ((refEx.appendUnprocessedReferrals(null)).fillInStackTrace()); @@ -602,23 +611,23 @@ return refCtx.getSchemaClassDefinition(overrideName(name)); } - public NamingEnumeration search(String name, - Attributes matchingAttributes) + public NamingEnumeration search(String name, + Attributes matchingAttributes) throws NamingException { return search(toName(name), SearchFilter.format(matchingAttributes), new SearchControls()); } - public NamingEnumeration search(Name name, - Attributes matchingAttributes) + public NamingEnumeration search(Name name, + Attributes matchingAttributes) throws NamingException { return search(name, SearchFilter.format(matchingAttributes), new SearchControls()); } - public NamingEnumeration search(String name, - Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(String name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { SearchControls cons = new SearchControls(); cons.setReturningAttributes(attributesToReturn); @@ -627,9 +636,9 @@ cons); } - public NamingEnumeration search(Name name, - Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(Name name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { SearchControls cons = new SearchControls(); cons.setReturningAttributes(attributesToReturn); @@ -637,15 +646,15 @@ return search(name, SearchFilter.format(matchingAttributes), cons); } - public NamingEnumeration search(String name, - String filter, - SearchControls cons) + public NamingEnumeration search(String name, + String filter, + SearchControls cons) throws NamingException { return search(toName(name), filter, cons); } - public NamingEnumeration search(Name name, - String filter, + public NamingEnumeration search(Name name, + String filter, SearchControls cons) throws NamingException { if (skipThisReferral) { @@ -654,8 +663,10 @@ } try { - NamingEnumeration se = refCtx.search(overrideName(name), - overrideFilter(filter), overrideAttributesAndScope(cons)); + NamingEnumeration se = + refCtx.search(overrideName(name), + overrideFilter(filter), + overrideAttributesAndScope(cons)); refEx.setNameResolved(true); @@ -694,15 +705,15 @@ } } - public NamingEnumeration search(String name, - String filterExpr, - Object[] filterArgs, - SearchControls cons) + public NamingEnumeration search(String name, + String filterExpr, + Object[] filterArgs, + SearchControls cons) throws NamingException { return search(toName(name), filterExpr, filterArgs, cons); } - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException { @@ -713,7 +724,7 @@ } try { - NamingEnumeration se; + NamingEnumeration se; if (urlFilter != null) { se = refCtx.search(overrideName(name), urlFilter, diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralException.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -26,7 +26,6 @@ package com.sun.jndi.ldap; import javax.naming.*; -import javax.naming.spi.*; import javax.naming.ldap.Control; import java.util.Hashtable; @@ -67,15 +66,16 @@ */ final public class LdapReferralException extends javax.naming.ldap.LdapReferralException { + private static final long serialVersionUID = 627059076356906399L; // ----------- fields initialized in constructor --------------- private int handleReferrals; - private Hashtable envprops; + private Hashtable envprops; private String nextName; private Control[] reqCtls; // ----------- fields that have defaults ----------------------- - private Vector referrals = null; // alternatives,set by setReferralInfo() + private Vector referrals = null; // alternatives,set by setReferralInfo() private int referralIndex = 0; // index into referrals private int referralCount = 0; // count of referrals private boolean foundEntry = false; // will stop when entry is found @@ -98,7 +98,7 @@ Object resolvedObj, Name remainingName, String explanation, - Hashtable envprops, + Hashtable envprops, String nextName, int handleReferrals, Control[] reqCtls) { @@ -210,7 +210,7 @@ /** * Sets referral information. */ - void setReferralInfo(Vector referrals, boolean continuationRef) { + void setReferralInfo(Vector referrals, boolean continuationRef) { // %%% continuationRef is currently ignored if (debug) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapResult.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,6 +28,7 @@ import java.util.Vector; import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttributes; +import javax.naming.ldap.Control; /** * %%% public for use by LdapSasl %%% @@ -37,10 +38,11 @@ public int status; // %%% public for use by LdapSasl String matchedDN; String errorMessage; - Vector referrals = null; + // Vector> + Vector> referrals = null; LdapReferralException refEx = null; - Vector entries = null; - Vector resControls = null; + Vector entries = null; + Vector resControls = null; public byte[] serverCreds = null; // %%% public for use by LdapSasl String extensionId = null; // string OID byte[] extensionValue = null; // BER OCTET STRING @@ -57,7 +59,7 @@ switch (status) { case LdapClient.LDAP_COMPARE_TRUE: status = LdapClient.LDAP_SUCCESS; - entries = new Vector(1,1); + entries = new Vector<>(1,1); Attributes attrs = new BasicAttributes(LdapClient.caseIgnore); LdapEntry entry = new LdapEntry( name, attrs ); entries.addElement(entry); @@ -66,7 +68,7 @@ case LdapClient.LDAP_COMPARE_FALSE: status = LdapClient.LDAP_SUCCESS; - entries = new Vector(0); + entries = new Vector<>(0); successful = true; break; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -61,8 +61,9 @@ private int objectType; - static DirContext createSchemaTree(Hashtable env, String subschemasubentry, - LdapCtx schemaEntry, Attributes schemaAttrs, boolean netscapeBug) + static DirContext createSchemaTree(Hashtable env, + String subschemasubentry, LdapCtx schemaEntry, + Attributes schemaAttrs, boolean netscapeBug) throws NamingException { try { LdapSchemaParser parser = new LdapSchemaParser(netscapeBug); @@ -71,7 +72,7 @@ schemaEntry, parser); LdapSchemaCtx root = new LdapSchemaCtx(SCHEMA_ROOT, env, allinfo); - parser.LDAP2JNDISchema(schemaAttrs, root); + LdapSchemaParser.LDAP2JNDISchema(schemaAttrs, root); return root; } catch (NamingException e) { schemaEntry.close(); // cleanup @@ -80,7 +81,8 @@ } // Called by createNewCtx - private LdapSchemaCtx(int objectType, Hashtable environment, SchemaInfo info) { + private LdapSchemaCtx(int objectType, Hashtable environment, + SchemaInfo info) { super(environment, LdapClient.caseIgnore); this.objectType = objectType; @@ -223,9 +225,9 @@ final private static Attributes deepClone(Attributes orig) throws NamingException { BasicAttributes copy = new BasicAttributes(true); - NamingEnumeration attrs = orig.getAll(); + NamingEnumeration attrs = orig.getAll(); while (attrs.hasMore()) { - copy.put((Attribute)((Attribute)attrs.next()).clone()); + copy.put((Attribute)attrs.next().clone()); } return copy; } @@ -409,13 +411,14 @@ } } - private LdapCtx reopenEntry(Hashtable env) throws NamingException { + private LdapCtx reopenEntry(Hashtable env) throws NamingException { // Use subschemasubentry name as DN return new LdapCtx(schemaEntryName, host, port, env, hasLdapsScheme); } - synchronized void modifyAttributes(Hashtable env, ModificationItem[] mods) + synchronized void modifyAttributes(Hashtable env, + ModificationItem[] mods) throws NamingException { if (schemaEntry == null) { schemaEntry = reopenEntry(env); @@ -423,7 +426,7 @@ schemaEntry.modifyAttributes("", mods); } - synchronized void modifyAttributes(Hashtable env, int mod, + synchronized void modifyAttributes(Hashtable env, int mod, Attributes attrs) throws NamingException { if (schemaEntry == null) { schemaEntry = reopenEntry(env); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,7 +27,6 @@ import javax.naming.*; import javax.naming.directory.*; -import java.util.Hashtable; import java.util.Vector; /** @@ -141,9 +140,9 @@ LdapSchemaCtx schemaRoot) throws NamingException { - NamingEnumeration objDescs; - Attributes objDef; - LdapSchemaCtx classDefTree; + NamingEnumeration objDescs; + Attributes objDef; + LdapSchemaCtx classDefTree; // create the class def subtree Attributes attrs = new BasicAttributes(LdapClient.caseIgnore); @@ -173,9 +172,9 @@ LdapSchemaCtx schemaRoot) throws NamingException { - NamingEnumeration attrDescs; - Attributes attrDef; - LdapSchemaCtx attrDefTree; + NamingEnumeration attrDescs; + Attributes attrDef; + LdapSchemaCtx attrDefTree; // create the AttributeDef subtree Attributes attrs = new BasicAttributes(LdapClient.caseIgnore); @@ -206,9 +205,9 @@ LdapSchemaCtx schemaRoot) throws NamingException { - NamingEnumeration syntaxDescs; - Attributes syntaxDef; - LdapSchemaCtx syntaxDefTree; + NamingEnumeration syntaxDescs; + Attributes syntaxDef; + LdapSchemaCtx syntaxDefTree; // create the SyntaxDef subtree Attributes attrs = new BasicAttributes(LdapClient.caseIgnore); @@ -239,9 +238,9 @@ LdapSchemaCtx schemaRoot) throws NamingException { - NamingEnumeration matchRuleDescs; - Attributes matchRuleDef; - LdapSchemaCtx matchRuleDefTree; + NamingEnumeration matchRuleDescs; + Attributes matchRuleDef; + LdapSchemaCtx matchRuleDefTree; // create the MatchRuleDef subtree Attributes attrs = new BasicAttributes(LdapClient.caseIgnore); @@ -519,8 +518,8 @@ final private static String[] readQDescrList(String string, int[] pos) throws NamingException { - int begin, end; - Vector values = new Vector(5); + int begin, end; + Vector values = new Vector<>(5); if (debug) { System.err.println("ReadQDescrList: pos="+pos[0]); @@ -553,7 +552,7 @@ String[] answer = new String[values.size()]; for (int i = 0; i < answer.length; i++) { - answer[i] = (String)values.elementAt(i); + answer[i] = values.elementAt(i); } return answer; } @@ -614,7 +613,7 @@ int begin, cur, end; String oidName = null; - Vector values = new Vector(5); + Vector values = new Vector<>(5); if (debug) { System.err.println("ReadOIDList: pos="+pos[0]); @@ -663,7 +662,7 @@ String[] answer = new String[values.size()]; for (int i = 0; i < answer.length; i++) { - answer[i] = (String)values.elementAt(i); + answer[i] = values.elementAt(i); } return answer; } @@ -843,10 +842,10 @@ String attrId = null; // use enumeration because attribute ID is not known - for (NamingEnumeration ae = attrs.getAll(); + for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements(); ) { - attr = (Attribute)ae.next(); + attr = ae.next(); attrId = attr.getID(); // skip those already processed @@ -973,10 +972,10 @@ String attrId = null; // use enumeration because attribute ID is not known - for (NamingEnumeration ae = attrs.getAll(); + for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements(); ) { - attr = (Attribute)ae.next(); + attr = ae.next(); attrId = attr.getID(); // skip those already processed @@ -1040,10 +1039,10 @@ String attrId = null; // use enumeration because attribute ID is not known - for (NamingEnumeration ae = attrs.getAll(); + for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements(); ) { - attr = (Attribute)ae.next(); + attr = ae.next(); attrId = attr.getID(); // skip those already processed @@ -1117,10 +1116,10 @@ String attrId = null; // use enumeration because attribute ID is not known - for (NamingEnumeration ae = attrs.getAll(); + for (NamingEnumeration ae = attrs.getAll(); ae.hasMoreElements(); ) { - attr = (Attribute)ae.next(); + attr = ae.next(); attrId = attr.getID(); // skip those already processed @@ -1201,7 +1200,7 @@ qdList.append(WHSP); qdList.append(OID_LIST_BEGIN); - NamingEnumeration values = attr.getAll(); + NamingEnumeration values = attr.getAll(); while(values.hasMore()) { qdList.append(WHSP); @@ -1238,7 +1237,7 @@ oidList.append(WHSP); oidList.append(OID_LIST_BEGIN); - NamingEnumeration values = oidsAttr.getAll(); + NamingEnumeration values = oidsAttr.getAll(); oidList.append(WHSP); oidList.append(values.next()); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -34,7 +34,8 @@ import com.sun.jndi.toolkit.ctx.Continuation; -final class LdapSearchEnumeration extends LdapNamingEnumeration { +final class LdapSearchEnumeration + extends AbstractLdapNamingEnumeration { private Name startName; // prefix of names of search results private LdapCtx.SearchArgs searchArgs = null; @@ -52,9 +53,10 @@ searchArgs = args; } - protected NameClassPair - createItem(String dn, Attributes attrs, Vector respCtls) - throws NamingException { + @Override + protected SearchResult createItem(String dn, Attributes attrs, + Vector respCtls) + throws NamingException { Object obj = null; @@ -174,6 +176,7 @@ return sr; } + @Override public void appendUnprocessedReferrals(LdapReferralException ex) { // a referral has been followed so do not create relative names @@ -181,14 +184,16 @@ super.appendUnprocessedReferrals(ex); } - protected LdapNamingEnumeration - getReferredResults(LdapReferralContext refCtx) throws NamingException { + @Override + protected LdapSearchEnumeration getReferredResults( + LdapReferralContext refCtx) throws NamingException { // repeat the original operation at the new context - return (LdapSearchEnumeration) - refCtx.search(searchArgs.name, searchArgs.filter, searchArgs.cons); + return (LdapSearchEnumeration)refCtx.search( + searchArgs.name, searchArgs.filter, searchArgs.cons); } - protected void update(LdapNamingEnumeration ne) { + @Override + protected void update(AbstractLdapNamingEnumeration ne) { super.update(ne); // Update search-specific variables diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -50,12 +50,12 @@ final class NamingEventNotifier implements Runnable { private final static boolean debug = false; - private Vector namingListeners; + private Vector namingListeners; private Thread worker; private LdapCtx context; private EventContext eventSrc; private EventSupport support; - private NamingEnumeration results; + private NamingEnumeration results; // package private; used by EventSupport to remove it NotifierArgs info; @@ -83,7 +83,7 @@ context = (LdapCtx)ctx.newInstance(new Control[]{psearch}); eventSrc = ctx; - namingListeners = new Vector(); + namingListeners = new Vector<>(); namingListeners.addElement(firstListener); worker = Obj.helper.createThread(this); @@ -124,7 +124,8 @@ // Change root of search results so that it will generate // names relative to the event context instead of that // named by nm - ((LdapSearchEnumeration)results).setStartName(context.currentParsedDN); + ((LdapSearchEnumeration)(NamingEnumeration)results) + .setStartName(context.currentParsedDN); SearchResult si; Control[] respctls; @@ -132,7 +133,7 @@ long changeNum; while (results.hasMore()) { - si = (SearchResult)results.next(); + si = results.next(); respctls = (si instanceof HasControls) ? ((HasControls) si).getControls() : null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/NotifierArgs.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -133,7 +133,7 @@ private int controlsCode() { if (controls == null) return 0; - int total = (int)controls.getTimeLimit() + (int)controls.getCountLimit() + + int total = controls.getTimeLimit() + (int)controls.getCountLimit() + (controls.getDerefLinkFlag() ? 1 : 0) + (controls.getReturningObjFlag() ? 1 : 0); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/Obj.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/Obj.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -84,6 +84,7 @@ /** * @deprecated */ + @Deprecated private static final int REMOTE_LOC = 7; // LDAP object classes to support Java objects @@ -206,13 +207,13 @@ } else { StringTokenizer parser = new StringTokenizer((String)codebaseAttr.get()); - Vector vec = new Vector(10); + Vector vec = new Vector<>(10); while (parser.hasMoreTokens()) { vec.addElement(parser.nextToken()); } String[] answer = new String[vec.size()]; for (int i = 0; i < answer.length; i++) { - answer[i] = (String)vec.elementAt(i); + answer[i] = vec.elementAt(i); } return answer; } @@ -410,10 +411,10 @@ * Temporary Vector for decoded RefAddr addresses - used to ensure * unordered addresses are correctly re-ordered. */ - Vector refAddrList = new Vector(); + Vector refAddrList = new Vector<>(); refAddrList.setSize(attr.size()); - for (NamingEnumeration vals = attr.getAll(); vals.hasMore(); ) { + for (NamingEnumeration vals = attr.getAll(); vals.hasMore(); ) { val = (String)vals.next(); @@ -488,7 +489,7 @@ // Copy to real reference for (int i = 0; i < refAddrList.size(); i++) { - ref.add((RefAddr)refAddrList.elementAt(i)); + ref.add(refAddrList.elementAt(i)); } } @@ -502,9 +503,9 @@ try { ByteArrayOutputStream bytes = new ByteArrayOutputStream(); - ObjectOutputStream serial = new ObjectOutputStream(bytes); - serial.writeObject(obj); - serial.close(); + try (ObjectOutputStream serial = new ObjectOutputStream(bytes)) { + serial.writeObject(obj); + } return (bytes.toByteArray()); @@ -524,18 +525,14 @@ try { // Create ObjectInputStream for deserialization ByteArrayInputStream bytes = new ByteArrayInputStream(obj); - ObjectInputStream deserial = (cl == null ? - new ObjectInputStream(bytes) : - new LoaderInputStream(bytes, cl)); - - try { + try (ObjectInputStream deserial = cl == null ? + new ObjectInputStream(bytes) : + new LoaderInputStream(bytes, cl)) { return deserial.readObject(); } catch (ClassNotFoundException e) { NamingException ne = new NamingException(); ne.setRootCause(e); throw ne; - } finally { - deserial.close(); } } catch (IOException e) { NamingException ne = new NamingException(); @@ -549,7 +546,7 @@ */ static Attributes determineBindAttrs( char separator, Object obj, Attributes attrs, boolean cloned, - Name name, Context ctx, Hashtable env) + Name name, Context ctx, Hashtable env) throws NamingException { // Call state factories to convert object and attrs @@ -582,10 +579,10 @@ } else { // Get existing objectclass attribute - objectClass = (Attribute)attrs.get("objectClass"); + objectClass = attrs.get("objectClass"); if (objectClass == null && !attrs.isCaseIgnored()) { // %%% workaround - objectClass = (Attribute)attrs.get("objectclass"); + objectClass = attrs.get("objectclass"); } // No objectclasses supplied, use "top" to start @@ -614,8 +611,8 @@ classLoader = cl; } - protected Class resolveClass(ObjectStreamClass desc) throws IOException, - ClassNotFoundException { + protected Class resolveClass(ObjectStreamClass desc) throws + IOException, ClassNotFoundException { try { // %%% Should use Class.forName(desc.getName(), false, classLoader); // except we can't because that is only available on JDK1.2 @@ -625,15 +622,15 @@ } } - protected Class resolveProxyClass(String[] interfaces) throws + protected Class resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException { ClassLoader nonPublicLoader = null; boolean hasNonPublicInterface = false; // define proxy in class loader of non-public interface(s), if any - Class[] classObjs = new Class[interfaces.length]; + Class[] classObjs = new Class[interfaces.length]; for (int i = 0; i < interfaces.length; i++) { - Class cl = Class.forName(interfaces[i], false, classLoader); + Class cl = Class.forName(interfaces[i], false, classLoader); if ((cl.getModifiers() & Modifier.PUBLIC) == 0) { if (hasNonPublicInterface) { if (nonPublicLoader != cl.getClassLoader()) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,6 +27,6 @@ import javax.naming.NamingEnumeration; -interface ReferralEnumeration extends NamingEnumeration { +interface ReferralEnumeration extends NamingEnumeration { void appendUnprocessedReferrals(LdapReferralException ex); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -26,9 +26,7 @@ package com.sun.jndi.ldap; import java.util.Arrays; -import java.util.Enumeration; import java.util.Hashtable; -import java.util.NoSuchElementException; import java.util.Random; import java.util.StringTokenizer; import java.util.List; @@ -39,8 +37,6 @@ import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import com.sun.jndi.ldap.LdapURL; - /** * This class discovers the location of LDAP services by querying DNS. * See http://www.ietf.org/internet-drafts/draft-ietf-ldapext-locate-07.txt @@ -78,10 +74,10 @@ // process RDNs left-to-right //List rdnList = ldapName.getRdns(); - List rdnList = ldapName.getRdns(); + List rdnList = ldapName.getRdns(); for (int i = rdnList.size() - 1; i >= 0; i--) { //Rdn rdn = rdnList.get(i); - Rdn rdn = (Rdn) rdnList.get(i); + Rdn rdn = rdnList.get(i); // single-valued RDN with a DC attribute if ((rdn.size() == 1) && @@ -117,7 +113,7 @@ * @return An ordered list of hostports for the LDAP service or null if * the service has not been located. */ - static String[] getLdapService(String domainName, Hashtable environment) { + static String[] getLdapService(String domainName, Hashtable environment) { if (domainName == null || domainName.length() == 0) { return null; @@ -252,7 +248,7 @@ * See http://www.ietf.org/rfc/rfc2782.txt */ -static class SrvRecord implements Comparable { +static class SrvRecord implements Comparable { int priority; int weight; @@ -284,8 +280,7 @@ * Sort records in ascending order of priority value. For records with * equal priority move those with weight 0 to the top of the list. */ - public int compareTo(Object o) { - SrvRecord that = (SrvRecord) o; + public int compareTo(SrvRecord that) { if (priority > that.priority) { return 1; // this > that } else if (priority < that.priority) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/SimpleClientId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -54,9 +54,9 @@ } else if (passwd instanceof String) { this.passwd = passwd; } else if (passwd instanceof byte[]) { - this.passwd = (byte[]) ((byte[])passwd).clone(); + this.passwd = ((byte[])passwd).clone(); } else if (passwd instanceof char[]) { - this.passwd = (char[]) ((char[])passwd).clone(); + this.passwd = ((char[])passwd).clone(); } else { this.passwd = passwd; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -41,7 +41,7 @@ private NamingException exception; private Control[] controls; - UnsolicitedResponseImpl(String oid, byte[] berVal, Vector ref, + UnsolicitedResponseImpl(String oid, byte[] berVal, Vector> ref, int status, String msg, String matchedDN, Control[] controls) { this.oid = oid; this.extensionValue = berVal; @@ -50,7 +50,8 @@ int len = ref.size(); referrals = new String[len]; for (int i = 0; i < len; i++) { - referrals[i] = (String)ref.elementAt(i); + // ref is a list of single-String Vectors + referrals[i] = ref.elementAt(i).elementAt(0); } } exception = LdapCtx.mapErrorCode(status, msg); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -72,7 +72,7 @@ return urlArray; } - abstract Class loadClass(String className) throws ClassNotFoundException; + abstract Class loadClass(String className) throws ClassNotFoundException; abstract Thread createThread(Runnable r); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -66,15 +66,15 @@ } } - Class loadClass(String className) throws ClassNotFoundException { + Class loadClass(String className) throws ClassNotFoundException { ClassLoader cl = getContextClassLoader(); return Class.forName(className, true, cl); } private ClassLoader getContextClassLoader() { - return (ClassLoader) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public ClassLoader run() { return Thread.currentThread().getContextClassLoader(); } } @@ -82,9 +82,9 @@ } Thread createThread(final Runnable r) { - return (Thread) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public Thread run() { return new Thread(r); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -27,16 +27,8 @@ import java.io.InputStream; import java.io.OutputStream; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; import java.io.IOException; -import java.net.Socket; - -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - import java.security.Principal; import java.security.cert.X509Certificate; import java.security.cert.CertificateException; @@ -45,11 +37,9 @@ import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.SSLPeerUnverifiedException; -import javax.net.ssl.SSLContext; import javax.net.ssl.HostnameVerifier; import sun.security.util.HostnameChecker; -import javax.naming.*; import javax.naming.ldap.*; import com.sun.jndi.ldap.Connection; @@ -415,7 +405,7 @@ // Use ciphersuite to determine whether Kerberos is active. if (session.getCipherSuite().startsWith("TLS_KRB5")) { Principal principal = getPeerPrincipal(session); - if (!checker.match(hostname, principal)) { + if (!HostnameChecker.match(hostname, principal)) { throw new SSLPeerUnverifiedException( "hostname of the kerberos principal:" + principal + " does not match the hostname:" + hostname); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -71,10 +71,10 @@ final private int maxSize; final private int prefSize; - final private List conns; + final private List conns; private boolean closed = false; // Closed for business - private Reference ref; // maintains reference to id to prevent premature GC + private Reference ref; // maintains reference to id to prevent premature GC /** * @param id the identity (connection request) of the connections in the list @@ -99,11 +99,11 @@ } else { this.prefSize = prefSize; } - conns = new ArrayList(maxSize > 0 ? maxSize : DEFAULT_SIZE); + conns = new ArrayList<>(maxSize > 0 ? maxSize : DEFAULT_SIZE); // Maintain soft ref to id so that this Connections' entry in // Pool doesn't get GC'ed prematurely - ref = new SoftReference(id); + ref = new SoftReference<>(id); d("init size=", initSize); d("max size=", maxSize); @@ -186,7 +186,7 @@ // exceeds prefSize, then first look for an idle connection ConnectionDesc entry; for (int i = 0; i < size; i++) { - entry = (ConnectionDesc) conns.get(i); + entry = conns.get(i); if ((conn = entry.tryUse()) != null) { d("get(): use ", conn); td("Use ", conn); @@ -239,7 +239,7 @@ td("Release ", conn); // Get ConnectionDesc from list to get correct state info - entry = (ConnectionDesc) conns.get(loc); + entry = conns.get(loc); // Return connection to list, ready for reuse entry.release(); } @@ -291,10 +291,10 @@ * @return true if no more connections in list */ synchronized boolean expire(long threshold) { - Iterator iter = conns.iterator(); + Iterator iter = conns.iterator(); ConnectionDesc entry; while (iter.hasNext()) { - entry = (ConnectionDesc) iter.next(); + entry = iter.next(); if (entry.expire(threshold)) { d("expire(): removing ", entry); td("Expired ", entry); @@ -333,7 +333,7 @@ ConnectionDesc entry; for (int i = 0; i < len; i++) { - entry = (ConnectionDesc) conns.get(i); + entry = conns.get(i); use += entry.getUseCount(); switch (entry.getState()) { case ConnectionDesc.BUSY: diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -55,11 +55,12 @@ * reference to Connections used for closing (which in turn terminates * the Connection thread) it by monitoring the ReferenceQueue. */ -class ConnectionsWeakRef extends WeakReference { +class ConnectionsWeakRef extends WeakReference { private final Connections conns; - ConnectionsWeakRef (ConnectionsRef connsRef, ReferenceQueue queue) { + ConnectionsWeakRef (ConnectionsRef connsRef, + ReferenceQueue queue) { super(connsRef, queue); this.conns = connsRef.getConnections(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -30,7 +30,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; -import java.util.Set; import java.util.LinkedList; import java.io.PrintStream; @@ -83,17 +82,18 @@ /* * Used for connections cleanup */ - private static final ReferenceQueue queue = new ReferenceQueue(); - private static final Collection weakRefs = - Collections.synchronizedList(new LinkedList()); + private static final ReferenceQueue queue = + new ReferenceQueue<>(); + private static final Collection> weakRefs = + Collections.synchronizedList(new LinkedList>()); final private int maxSize; // max num of identical conn per pool final private int prefSize; // preferred num of identical conn per pool final private int initSize; // initial number of identical conn to create - final private Map map; + final private Map map; public Pool(int initSize, int prefSize, int maxSize) { - map = new WeakHashMap(); + map = new WeakHashMap<>(); this.prefSize = prefSize; this.maxSize = maxSize; this.initSize = initSize; @@ -135,7 +135,8 @@ map.put(id, connsRef); // Create a weak reference to ConnectionsRef - Reference weakRef = new ConnectionsWeakRef(connsRef, queue); + Reference weakRef = + new ConnectionsWeakRef(connsRef, queue); // Keep the weak reference through the element of a linked list weakRefs.add(weakRef); @@ -148,7 +149,7 @@ } private Connections getConnections(Object id) { - ConnectionsRef ref = (ConnectionsRef) map.get(id); + ConnectionsRef ref = map.get(id); return (ref != null) ? ref.getConnections() : null; } @@ -163,11 +164,10 @@ */ public void expire(long threshold) { synchronized (map) { - Collection coll = map.values(); - Iterator iter = coll.iterator(); + Iterator iter = map.values().iterator(); Connections conns; while (iter.hasNext()) { - conns = ((ConnectionsRef) (iter.next())).getConnections(); + conns = iter.next().getConnections(); if (conns.expire(threshold)) { d("expire(): removing ", conns); iter.remove(); @@ -202,7 +202,6 @@ public void showStats(PrintStream out) { - Map.Entry entry; Object id; Connections conns; @@ -212,13 +211,9 @@ out.println("initial pool size: " + initSize); out.println("current pool size: " + map.size()); - Set entries = map.entrySet(); - Iterator iter = entries.iterator(); - - while (iter.hasNext()) { - entry = (Map.Entry) iter.next(); + for (Map.Entry entry : map.entrySet()) { id = entry.getKey(); - conns = ((ConnectionsRef) entry.getValue()).getConnections(); + conns = entry.getValue().getConnections(); out.println(" " + id + ":" + conns.getStats()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -41,7 +41,7 @@ public PoolCleaner(long period, Pool[] pools) { super(); this.period = period; - this.pools = (Pool[]) pools.clone(); + this.pools = pools.clone(); setDaemon(true); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -57,7 +57,7 @@ if (cred instanceof String) { passwd = ((String)cred).toCharArray(); } else if (cred instanceof char[]) { - passwd = (char[])((char[])cred).clone(); + passwd = ((char[])cred).clone(); } else if (cred != null) { // assume UTF-8 encoding String orig = new String((byte[])cred, "UTF8"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -89,9 +89,10 @@ * @param bindCtls The possibly null controls to accompany the bind * @return LdapResult containing status of the bind */ + @SuppressWarnings("unchecked") public static LdapResult saslBind(LdapClient clnt, Connection conn, String server, String dn, Object pw, - String authMech, Hashtable env, Control[] bindCtls) + String authMech, Hashtable env, Control[] bindCtls) throws IOException, NamingException { SaslClient saslClnt = null; @@ -112,7 +113,7 @@ try { // Create SASL client to use using SASL package saslClnt = Sasl.createSaslClient( - mechs, authzId, "ldap", server, env, cbh); + mechs, authzId, "ldap", server, (Hashtable)env, cbh); if (saslClnt == null) { throw new AuthenticationNotSupportedException(authMech); @@ -185,13 +186,13 @@ */ private static String[] getSaslMechanismNames(String str) { StringTokenizer parser = new StringTokenizer(str); - Vector mechs = new Vector(10); + Vector mechs = new Vector<>(10); while (parser.hasMoreTokens()) { mechs.addElement(parser.nextToken()); } String[] mechNames = new String[mechs.size()]; for (int i = 0; i < mechs.size(); i++) { - mechNames[i] = (String)mechs.elementAt(i); + mechNames[i] = mechs.elementAt(i); } return mechNames; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java --- a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -46,7 +46,7 @@ public class RegistryContext implements Context, Referenceable { - private Hashtable environment; + private Hashtable environment; private Registry registry; private String host; private int port; @@ -67,10 +67,13 @@ * Cloning of "env" is handled by caller; see comments within * RegistryContextFactory.getObjectInstance(), for example. */ - public RegistryContext(String host, int port, Hashtable env) + @SuppressWarnings("unchecked") + public RegistryContext(String host, int port, Hashtable env) throws NamingException { - environment = ((env == null) ? new Hashtable(5) : env); + environment = (env == null) + ? new Hashtable(5) + : (Hashtable) env; if (environment.get(SECURITY_MGR) != null) { installSecurityMgr(); } @@ -93,8 +96,9 @@ * won't close the other). */ // %%% Alternatively, this could be done with a clone() method. + @SuppressWarnings("unchecked") // clone() RegistryContext(RegistryContext ctx) { - environment = (Hashtable)ctx.environment.clone(); + environment = (Hashtable)ctx.environment.clone(); registry = ctx.registry; host = ctx.host; port = ctx.port; @@ -195,7 +199,8 @@ rename(new CompositeName(name), new CompositeName(newName)); } - public NamingEnumeration list(Name name) throws NamingException { + public NamingEnumeration list(Name name) throws + NamingException { if (!name.isEmpty()) { throw (new InvalidNameException( "RegistryContext: can only list \"\"")); @@ -208,11 +213,12 @@ } } - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) throws + NamingException { return list(new CompositeName(name)); } - public NamingEnumeration listBindings(Name name) + public NamingEnumeration listBindings(Name name) throws NamingException { if (!name.isEmpty()) { @@ -227,7 +233,8 @@ } } - public NamingEnumeration listBindings(String name) throws NamingException { + public NamingEnumeration listBindings(String name) throws + NamingException { return listBindings(new CompositeName(name)); } @@ -290,8 +297,9 @@ return environment.put(propName, propVal); } - public Hashtable getEnvironment() throws NamingException { - return (Hashtable)environment.clone(); + @SuppressWarnings("unchecked") // clone() + public Hashtable getEnvironment() throws NamingException { + return (Hashtable)environment.clone(); } public void close() { @@ -483,11 +491,9 @@ /** - * An enumeration of name / class-name pairs. Since we don't know anything - * about the classes, each class name is returned as the generic - * "java.lang.Object". + * An enumeration of name / class-name pairs. */ -class NameClassPairEnumeration implements NamingEnumeration { +class NameClassPairEnumeration implements NamingEnumeration { private final String[] names; private int nextName; // index into "names" @@ -500,7 +506,7 @@ return (nextName < names.length); } - public Object next() throws NamingException { + public NameClassPair next() throws NamingException { if (!hasMore()) { throw (new java.util.NoSuchElementException()); } @@ -518,7 +524,7 @@ return hasMore(); } - public Object nextElement() { + public NameClassPair nextElement() { try { return next(); } catch (NamingException e) { // should never happen @@ -541,7 +547,7 @@ * requested. The problem with that approach is that Binding.getObject() * cannot throw NamingException. */ -class BindingEnumeration implements NamingEnumeration { +class BindingEnumeration implements NamingEnumeration { private RegistryContext ctx; private final String[] names; private int nextName; // index into "names" @@ -564,7 +570,7 @@ return (nextName < names.length); } - public Object next() throws NamingException { + public Binding next() throws NamingException { if (!hasMore()) { throw (new java.util.NoSuchElementException()); } @@ -584,7 +590,7 @@ return hasMore(); } - public Object nextElement() { + public Binding nextElement() { try { return next(); } catch (NamingException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -95,7 +95,7 @@ return obj; } - private static Context URLToContext(String url, Hashtable env) + private static Context URLToContext(String url, Hashtable env) throws NamingException { rmiURLContextFactory factory = new rmiURLContextFactory(); @@ -108,7 +108,7 @@ } } - private static Object URLsToObject(String[] urls, Hashtable env) + private static Object URLsToObject(String[] urls, Hashtable env) throws NamingException { rmiURLContextFactory factory = new rmiURLContextFactory(); @@ -119,7 +119,7 @@ * Reads environment to find URL of initial context. * The default URL is "rmi:". */ - private static String getInitCtxURL(Hashtable env) { + private static String getInitCtxURL(Hashtable env) { final String defaultURL = "rmi:"; @@ -152,9 +152,9 @@ int size = 0; // number of URLs String[] urls = new String[ref.size()]; - Enumeration addrs = ref.getAll(); + Enumeration addrs = ref.getAll(); while (addrs.hasMoreElements()) { - RefAddr addr = (RefAddr)addrs.nextElement(); + RefAddr addr = addrs.nextElement(); if ((addr instanceof StringRefAddr) && addr.getType().equals(ADDRESS_TYPE)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -158,7 +158,7 @@ * Use all String properties from env for initializing ORB * @return A non-null ORB. */ - public static ORB getOrb(String server, int port, Hashtable env) { + public static ORB getOrb(String server, int port, Hashtable env) { // See if we can get info from environment Properties orbProp; @@ -169,7 +169,7 @@ orbProp = (Properties) env.clone(); } else { // Get all String properties - Enumeration envProp; + Enumeration envProp; orbProp = new Properties(); for (envProp = env.keys(); envProp.hasMoreElements();) { String key = (String)envProp.nextElement(); @@ -239,7 +239,7 @@ // Fields used for reflection of RMI-IIOP private static Method toStubMethod = null; private static Method connectMethod = null; - private static Class corbaStubClass = null; + private static Class corbaStubClass = null; /** * Initializes reflection method handles for RMI-IIOP. * @exception ClassNotFoundException javax.rmi.CORBA.* not available @@ -252,19 +252,19 @@ try { connectMethod = corbaStubClass.getMethod("connect", - new Class[] {org.omg.CORBA.ORB.class}); + new Class[] {org.omg.CORBA.ORB.class}); } catch (NoSuchMethodException e) { throw new IllegalStateException( "No method definition for javax.rmi.CORBA.Stub.connect(org.omg.CORBA.ORB)"); } - // Get javax.rmi.PortableRemoteObject method - Class proClass = Class.forName("javax.rmi.PortableRemoteObject"); + // Get javax.rmi.PortableRemoteObject class + Class proClass = Class.forName("javax.rmi.PortableRemoteObject"); - // Get javax.rmi.PortableRemoteObject(java.rmi.Remote) method + // Get javax.rmi.PortableRemoteObject.toStub(java.rmi.Remote) method try { toStubMethod = proClass.getMethod("toStub", - new Class[] {java.rmi.Remote.class}); + new Class[] {java.rmi.Remote.class}); } catch (NoSuchMethodException e) { throw new IllegalStateException( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -26,7 +26,6 @@ package com.sun.jndi.toolkit.ctx; import javax.naming.*; -import javax.naming.spi.ResolveResult; /** * Clients: deal only with names for its own naming service @@ -58,9 +57,9 @@ protected abstract Object a_lookupLink(String name, Continuation cont) throws NamingException; - protected abstract NamingEnumeration a_list( + protected abstract NamingEnumeration a_list( Continuation cont) throws NamingException; - protected abstract NamingEnumeration a_listBindings( + protected abstract NamingEnumeration a_listBindings( Continuation cont) throws NamingException; protected abstract void a_bind(String name, Object obj, Continuation cont) throws NamingException; @@ -193,12 +192,12 @@ return null; } - protected NamingEnumeration a_list_nns(Continuation cont) + protected NamingEnumeration a_list_nns(Continuation cont) throws NamingException { a_processJunction_nns(cont); return null; } - protected NamingEnumeration a_listBindings_nns(Continuation cont) + protected NamingEnumeration a_listBindings_nns(Continuation cont) throws NamingException { a_processJunction_nns(cont); return null; @@ -273,7 +272,7 @@ return null; } - protected NamingEnumeration c_list(Name name, + protected NamingEnumeration c_list(Name name, Continuation cont) throws NamingException { if (resolve_to_context(name, cont)) { return a_list(cont); @@ -281,7 +280,7 @@ return null; } - protected NamingEnumeration c_listBindings(Name name, + protected NamingEnumeration c_listBindings(Name name, Continuation cont) throws NamingException { if (resolve_to_context(name, cont)) { return a_listBindings(cont); @@ -392,7 +391,7 @@ } } - protected NamingEnumeration c_list_nns(Name name, + protected NamingEnumeration c_list_nns(Name name, Continuation cont) throws NamingException { if (_contextType == _ATOMIC) { resolve_to_nns_and_continue(name, cont); @@ -403,14 +402,14 @@ } } - protected NamingEnumeration c_listBindings_nns(Name name, + protected NamingEnumeration c_listBindings_nns(Name name, Continuation cont) throws NamingException { if (_contextType == _ATOMIC) { resolve_to_nns_and_continue(name, cont); return null; } else { // use ComponentContext - return super.c_list_nns(name, cont); + return super.c_listBindings_nns(name, cont); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,7 +27,6 @@ import javax.naming.*; import javax.naming.directory.*; -import javax.naming.spi.ResolveResult; /** * Direct subclasses of AtomicDirContext must provide implementations for @@ -79,20 +78,25 @@ Continuation cont) throws NamingException; - protected abstract NamingEnumeration a_search(Attributes matchingAttributes, + protected abstract NamingEnumeration a_search( + Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) throws NamingException; - protected abstract NamingEnumeration a_search(String name, + protected abstract NamingEnumeration a_search( + String name, String filterExpr, Object[] filterArgs, - SearchControls cons, Continuation cont) + SearchControls cons, + Continuation cont) throws NamingException; - protected abstract NamingEnumeration a_search(String name, + protected abstract NamingEnumeration a_search( + String name, String filter, - SearchControls cons, Continuation cont) + SearchControls cons, + Continuation cont) throws NamingException; protected abstract DirContext a_getSchema(Continuation cont) @@ -163,7 +167,8 @@ return null; } - protected NamingEnumeration a_search_nns(Attributes matchingAttributes, + protected NamingEnumeration a_search_nns( + Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) throws NamingException { @@ -171,20 +176,20 @@ return null; } - protected NamingEnumeration a_search_nns(String name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected NamingEnumeration a_search_nns(String name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException { a_processJunction_nns(name, cont); return null; } - protected NamingEnumeration a_search_nns(String name, - String filter, - SearchControls cons, - Continuation cont) + protected NamingEnumeration a_search_nns(String name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException { a_processJunction_nns(name, cont); return null; @@ -250,7 +255,7 @@ return null; } - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration c_search(Name name, Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) @@ -260,19 +265,21 @@ return null; } - protected NamingEnumeration c_search(Name name, - String filter, - SearchControls cons, Continuation cont) + protected NamingEnumeration c_search(Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException { if (resolve_to_penultimate_context(name, cont)) return a_search(name.toString(), filter, cons, cont); return null; } - protected NamingEnumeration c_search(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, Continuation cont) + protected NamingEnumeration c_search(Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException { if (resolve_to_penultimate_context(name, cont)) return a_search(name.toString(), filterExpr, filterArgs, cons, cont); @@ -340,7 +347,8 @@ return null; } - protected NamingEnumeration c_search_nns(Name name, + protected NamingEnumeration c_search_nns( + Name name, Attributes matchingAttributes, String[] attributesToReturn, Continuation cont) @@ -349,20 +357,21 @@ return null; } - protected NamingEnumeration c_search_nns(Name name, - String filter, - SearchControls cons, Continuation cont) + protected NamingEnumeration c_search_nns(Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException { if (resolve_to_penultimate_context_nns(name, cont)) return a_search_nns(name.toString(), filter, cons, cont); return null; } - protected NamingEnumeration c_search_nns(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected NamingEnumeration c_search_nns(Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException { if (resolve_to_penultimate_context_nns(name, cont)) return a_search_nns(name.toString(), filterExpr, filterArgs, diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -25,8 +25,6 @@ package com.sun.jndi.toolkit.ctx; -import java.util.Hashtable; - import javax.naming.*; import javax.naming.spi.ResolveResult; @@ -57,9 +55,9 @@ protected abstract Object c_lookupLink(Name name, Continuation cont) throws NamingException; - protected abstract NamingEnumeration c_list(Name name, + protected abstract NamingEnumeration c_list(Name name, Continuation cont) throws NamingException; - protected abstract NamingEnumeration c_listBindings(Name name, + protected abstract NamingEnumeration c_listBindings(Name name, Continuation cont) throws NamingException; protected abstract void c_bind(Name name, Object obj, Continuation cont) throws NamingException; @@ -237,13 +235,13 @@ return null; } - protected NamingEnumeration c_list_nns(Name name, + protected NamingEnumeration c_list_nns(Name name, Continuation cont) throws NamingException { c_processJunction_nns(name, cont); return null; } - protected NamingEnumeration c_listBindings_nns(Name name, + protected NamingEnumeration c_listBindings_nns(Name name, Continuation cont) throws NamingException { c_processJunction_nns(name, cont); return null; @@ -495,7 +493,7 @@ /* implementation for Resolver method */ protected ResolveResult p_resolveToClass(Name name, - Class contextType, + Class contextType, Continuation cont) throws NamingException { @@ -556,9 +554,9 @@ return ret; } - protected NamingEnumeration p_list(Name name, Continuation cont) + protected NamingEnumeration p_list(Name name, Continuation cont) throws NamingException { - NamingEnumeration ret = null; + NamingEnumeration ret = null; HeadTail res = p_resolveIntermediate(name, cont); switch (res.getStatus()) { case TERMINAL_NNS_COMPONENT: @@ -581,9 +579,9 @@ return ret; } - protected NamingEnumeration p_listBindings(Name name, Continuation cont) throws + protected NamingEnumeration p_listBindings(Name name, Continuation cont) throws NamingException { - NamingEnumeration ret = null; + NamingEnumeration ret = null; HeadTail res = p_resolveIntermediate(name, cont); switch (res.getStatus()) { case TERMINAL_NNS_COMPONENT: diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,8 +28,6 @@ import javax.naming.*; import javax.naming.directory.*; -import javax.naming.spi.ResolveResult; - /* Direct subclasses of ComponentDirContext must provide implementations for * the abstract c_ DirContext methods, and override the c_ Context methods * (which are no longer abstract because they have been overriden by @@ -81,23 +79,26 @@ Continuation cont) throws NamingException; - protected abstract NamingEnumeration c_search(Name name, - Attributes matchingAttributes, - String[] attributesToReturn, - Continuation cont) + protected abstract NamingEnumeration c_search( + Name name, + Attributes matchingAttributes, + String[] attributesToReturn, + Continuation cont) throws NamingException; - protected abstract NamingEnumeration c_search(Name name, - String filter, - SearchControls cons, - Continuation cont) + protected abstract NamingEnumeration c_search( + Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException; - protected abstract NamingEnumeration c_search(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected abstract NamingEnumeration c_search( + Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException; protected abstract DirContext c_getSchema(Name name, Continuation cont) @@ -172,29 +173,32 @@ return null; } - protected NamingEnumeration c_search_nns(Name name, - Attributes matchingAttributes, - String[] attributesToReturn, - Continuation cont) + protected NamingEnumeration c_search_nns( + Name name, + Attributes matchingAttributes, + String[] attributesToReturn, + Continuation cont) throws NamingException { c_processJunction_nns(name, cont); return null; } - protected NamingEnumeration c_search_nns(Name name, - String filter, - SearchControls cons, - Continuation cont) + protected NamingEnumeration c_search_nns( + Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException { c_processJunction_nns(name, cont); return null; } - protected NamingEnumeration c_search_nns(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected NamingEnumeration c_search_nns( + Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException { c_processJunction_nns(name, cont); return null; @@ -345,13 +349,14 @@ return answer; } - protected NamingEnumeration p_search(Name name, - Attributes matchingAttributes, - String[] attributesToReturn, - Continuation cont) + protected NamingEnumeration p_search( + Name name, + Attributes matchingAttributes, + String[] attributesToReturn, + Continuation cont) throws NamingException { HeadTail res = p_resolveIntermediate(name, cont); - NamingEnumeration answer = null; + NamingEnumeration answer = null; switch (res.getStatus()) { case TERMINAL_NNS_COMPONENT: answer = c_search_nns(res.getHead(), matchingAttributes, @@ -371,12 +376,13 @@ return answer; } - protected NamingEnumeration p_search(Name name, - String filter, - SearchControls cons, Continuation cont) + protected NamingEnumeration p_search(Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException { HeadTail res = p_resolveIntermediate(name, cont); - NamingEnumeration answer = null; + NamingEnumeration answer = null; switch (res.getStatus()) { case TERMINAL_NNS_COMPONENT: answer = c_search_nns(res.getHead(), filter, cons, cont); @@ -394,14 +400,14 @@ return answer; } - protected NamingEnumeration p_search(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected NamingEnumeration p_search(Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException { HeadTail res = p_resolveIntermediate(name, cont); - NamingEnumeration answer = null; + NamingEnumeration answer = null; switch (res.getStatus()) { case TERMINAL_NNS_COMPONENT: answer = c_search_nns(res.getHead(), diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Mon Aug 29 14:29:23 2011 -0700 @@ -57,7 +57,7 @@ * The environment used by the caller. Initialized by constructor and * used when filling out a CannotProceedException. */ - protected Hashtable environment = null; + protected Hashtable environment = null; /** * Indicates whether the Continuation instance indicates that the operation @@ -94,7 +94,7 @@ * @param environment The environment used by the caller. It is used * when setting the "environment" of a CannotProceedException. */ - public Continuation(Name top, Hashtable environment) { + public Continuation(Name top, Hashtable environment) { super(); starter = top; this.environment = environment; @@ -154,8 +154,8 @@ if ((e instanceof CannotProceedException)) { CannotProceedException cpe = (CannotProceedException)e; - Hashtable env = (environment == null ? - new Hashtable(11) : (Hashtable)environment.clone()); + Hashtable env = (environment == null ? + new Hashtable<>(11) : (Hashtable)environment.clone()); cpe.setEnvironment(env); cpe.setAltNameCtx(resolvedContext); cpe.setAltName(relativeResolvedName); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -77,16 +77,16 @@ /* Equivalent to method in Resolver interface */ protected abstract ResolveResult p_resolveToClass(Name name, - Class contextType, Continuation cont) throws NamingException; + Class contextType, Continuation cont) throws NamingException; /* Equivalent to methods in Context interface */ protected abstract Object p_lookup(Name name, Continuation cont) throws NamingException; protected abstract Object p_lookupLink(Name name, Continuation cont) throws NamingException; - protected abstract NamingEnumeration p_list(Name name, + protected abstract NamingEnumeration p_list(Name name, Continuation cont) throws NamingException; - protected abstract NamingEnumeration p_listBindings(Name name, + protected abstract NamingEnumeration p_listBindings(Name name, Continuation cont) throws NamingException; protected abstract void p_bind(Name name, Object obj, Continuation cont) throws NamingException; @@ -115,7 +115,7 @@ * The toolkit knows to clone when necessary. * @return The possibly null environment of the context. */ - protected Hashtable p_getEnvironment() throws NamingException { + protected Hashtable p_getEnvironment() throws NamingException { return getEnvironment(); } @@ -137,7 +137,7 @@ throws NamingException { PartialCompositeContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); ResolveResult answer; Name nm = name; @@ -168,7 +168,7 @@ public Object lookup(Name name) throws NamingException { PartialCompositeContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Object answer; Name nm = name; @@ -194,7 +194,7 @@ public void bind(Name name, Object newObj) throws NamingException { PartialCompositeContext ctx = this; Name nm = name; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -216,7 +216,7 @@ public void rebind(Name name, Object newObj) throws NamingException { PartialCompositeContext ctx = this; Name nm = name; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -238,7 +238,7 @@ public void unbind(Name name) throws NamingException { PartialCompositeContext ctx = this; Name nm = name; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -262,7 +262,7 @@ { PartialCompositeContext ctx = this; Name nm = oldName; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(oldName, env); try { @@ -293,8 +293,8 @@ { PartialCompositeContext ctx = this; Name nm = name; - NamingEnumeration answer; - Hashtable env = p_getEnvironment(); + NamingEnumeration answer; + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -322,8 +322,8 @@ { PartialCompositeContext ctx = this; Name nm = name; - NamingEnumeration answer; - Hashtable env = p_getEnvironment(); + NamingEnumeration answer; + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -347,7 +347,7 @@ public void destroySubcontext(Name name) throws NamingException { PartialCompositeContext ctx = this; Name nm = name; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -371,7 +371,7 @@ PartialCompositeContext ctx = this; Name nm = name; Context answer; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { @@ -394,7 +394,7 @@ public Object lookupLink(Name name) throws NamingException { PartialCompositeContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Object answer; Name nm = name; @@ -421,7 +421,7 @@ PartialCompositeContext ctx = this; Name nm = name; NameParser answer; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -29,7 +29,6 @@ import javax.naming.*; import javax.naming.directory.*; -import javax.naming.spi.NamingManager; import javax.naming.spi.DirectoryManager; /* @@ -83,23 +82,26 @@ Continuation cont) throws NamingException; - protected abstract NamingEnumeration p_search(Name name, - Attributes matchingAttributes, - String[] attributesToReturn, - Continuation cont) + protected abstract NamingEnumeration p_search( + Name name, + Attributes matchingAttributes, + String[] attributesToReturn, + Continuation cont) throws NamingException; - protected abstract NamingEnumeration p_search(Name name, - String filter, - SearchControls cons, - Continuation cont) + protected abstract NamingEnumeration p_search( + Name name, + String filter, + SearchControls cons, + Continuation cont) throws NamingException; - protected abstract NamingEnumeration p_search(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons, - Continuation cont) + protected abstract NamingEnumeration p_search( + Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons, + Continuation cont) throws NamingException; protected abstract DirContext p_getSchema(Name name, Continuation cont) @@ -130,7 +132,7 @@ public Attributes getAttributes(Name name, String[] attrIds) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Attributes answer; Name nm = name; @@ -157,7 +159,7 @@ public void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Name nm = name; @@ -182,7 +184,7 @@ public void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Name nm = name; @@ -207,7 +209,7 @@ public void bind(Name name, Object obj, Attributes attrs) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Name nm = name; @@ -232,7 +234,7 @@ public void rebind(Name name, Object obj, Attributes attrs) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); Name nm = name; @@ -257,7 +259,7 @@ public DirContext createSubcontext(Name name, Attributes attrs) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); DirContext answer; Name nm = name; @@ -308,9 +310,9 @@ { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); - NamingEnumeration answer; + NamingEnumeration answer; Name nm = name; try { @@ -347,9 +349,9 @@ { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); - NamingEnumeration answer; + NamingEnumeration answer; Name nm = name; try { @@ -385,9 +387,9 @@ { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); - NamingEnumeration answer; + NamingEnumeration answer; Name nm = name; try { @@ -411,7 +413,7 @@ public DirContext getSchema(Name name) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); DirContext answer; Name nm = name; @@ -438,7 +440,7 @@ public DirContext getSchemaClassDefinition(Name name) throws NamingException { PartialCompositeDirContext ctx = this; - Hashtable env = p_getEnvironment(); + Hashtable env = p_getEnvironment(); Continuation cont = new Continuation(name, env); DirContext answer; Name nm = name; @@ -509,14 +511,14 @@ throw cont.fillInException(e); } - protected NamingEnumeration a_list( + protected NamingEnumeration a_list( Continuation cont) throws NamingException { OperationNotSupportedException e = new OperationNotSupportedException(); throw cont.fillInException(e); } - protected NamingEnumeration a_listBindings( + protected NamingEnumeration a_listBindings( Continuation cont) throws NamingException { OperationNotSupportedException e = new OperationNotSupportedException(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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,19 +56,19 @@ if (subset == null) return true; // an empty set is always a subset - NamingEnumeration m = subset.getAll(); + NamingEnumeration m = subset.getAll(); while (m.hasMore()) { if (superset == null) { return false; // contains nothing } - Attribute target = (Attribute) m.next(); + Attribute target = m.next(); Attribute fromSuper = superset.get(target.getID()); if (fromSuper == null) { return false; } else { // check whether attribute values match if (target.size() > 0) { - NamingEnumeration vals = target.getAll(); + NamingEnumeration vals = target.getAll(); while (vals.hasMore()) { if (!fromSuper.contains(vals.next())) { return false; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -33,10 +33,10 @@ * * @author Jon Ruiz */ -public class ContextEnumerator implements NamingEnumeration { +public class ContextEnumerator implements NamingEnumeration { private static boolean debug = false; - private NamingEnumeration children = null; + private NamingEnumeration children = null; private Binding currentChild = null; private boolean currentReturned = false; private Context root; @@ -77,7 +77,7 @@ } // Subclass should override if it wants to avoid calling obj factory - protected NamingEnumeration getImmediateChildren(Context ctx) + protected NamingEnumeration getImmediateChildren(Context ctx) throws NamingException { return ctx.listBindings(""); } @@ -101,7 +101,7 @@ } } - public Object nextElement() { + public Binding nextElement() { try { return next(); } catch (NamingException e) { @@ -109,7 +109,7 @@ } } - public Object next() throws NamingException { + public Binding next() throws NamingException { if (!rootProcessed) { rootProcessed = true; return new Binding("", root.getClass().getName(), @@ -132,7 +132,7 @@ } private Binding getNextChild() throws NamingException { - Binding oldBinding = ((Binding)children.next()); + Binding oldBinding = children.next(); Binding newBinding = null; // if the name is relative, we need to add it to the name of this @@ -192,7 +192,7 @@ if(debug) {System.out.println("getNextDescedant: expanded case");} // if the current child is expanded, use it's enumerator - return (Binding)currentChildEnum.next(); + return currentChildEnum.next(); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -34,7 +34,7 @@ * @author Jon Ruiz */ public class DirSearch { - public static NamingEnumeration search(DirContext ctx, + public static NamingEnumeration search(DirContext ctx, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException { SearchControls cons = new SearchControls( @@ -48,7 +48,7 @@ cons); } - public static NamingEnumeration search(DirContext ctx, + public static NamingEnumeration search(DirContext ctx, String filter, SearchControls cons) throws NamingException { if (cons == null) @@ -60,7 +60,7 @@ cons); } - public static NamingEnumeration search(DirContext ctx, + public static NamingEnumeration search(DirContext ctx, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -42,8 +42,8 @@ static private final boolean debug = false; private static final NameParser defaultParser = new HierarchicalNameParser(); - protected Hashtable myEnv; - protected Hashtable bindings; + protected Hashtable myEnv; + protected Hashtable bindings; protected Attributes attrs; protected boolean ignoreCase = false; protected NamingException readOnlyEx = null; @@ -70,12 +70,12 @@ this(null, ignoreCase, false); } - public HierMemDirCtx(Hashtable environment, boolean ignoreCase) { + public HierMemDirCtx(Hashtable environment, boolean ignoreCase) { this(environment, ignoreCase, false); } - protected HierMemDirCtx(Hashtable environment, boolean ignoreCase, - boolean useFac) { + protected HierMemDirCtx(Hashtable environment, + boolean ignoreCase, boolean useFac) { myEnv = environment; this.ignoreCase = ignoreCase; init(); @@ -84,7 +84,7 @@ private void init() { attrs = new BasicAttributes(ignoreCase); - bindings = new Hashtable(11, 0.75f); + bindings = new Hashtable<>(11, 0.75f); } public Object lookup(String name) throws NamingException { @@ -326,30 +326,30 @@ bindings.put(newname, oldBinding); } - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) throws NamingException { return list(myParser.parse(name)); } - public NamingEnumeration list(Name name) throws NamingException { + public NamingEnumeration list(Name name) throws NamingException { HierMemDirCtx ctx = (HierMemDirCtx) doLookup(name, false); return ctx.doList(); } - protected NamingEnumeration doList () throws NamingException { + protected NamingEnumeration doList () throws NamingException { return new FlatNames(bindings.keys()); } - public NamingEnumeration listBindings(String name) throws NamingException { + public NamingEnumeration listBindings(String name) throws NamingException { return listBindings(myParser.parse(name)); } - public NamingEnumeration listBindings(Name name) throws NamingException { + public NamingEnumeration listBindings(Name name) throws NamingException { HierMemDirCtx ctx = (HierMemDirCtx)doLookup(name, false); return ctx.doListBindings(alwaysUseFactory); } - protected NamingEnumeration doListBindings(boolean useFactory) + protected NamingEnumeration doListBindings(boolean useFactory) throws NamingException { return new FlatBindings(bindings, myEnv, useFactory); } @@ -447,28 +447,32 @@ return result; } + @SuppressWarnings("unchecked") // clone() public Object addToEnvironment(String propName, Object propVal) throws NamingException { - myEnv = (myEnv == null) ? - new Hashtable(11, 0.75f) : (Hashtable)myEnv.clone(); + myEnv = (myEnv == null) + ? new Hashtable(11, 0.75f) + : (Hashtable)myEnv.clone(); return myEnv.put(propName, propVal); } + @SuppressWarnings("unchecked") // clone() public Object removeFromEnvironment(String propName) throws NamingException { if (myEnv == null) return null; - myEnv = (Hashtable)myEnv.clone(); + myEnv = (Hashtable)myEnv.clone(); return myEnv.remove(propName); } - public Hashtable getEnvironment() throws NamingException { + @SuppressWarnings("unchecked") // clone() + public Hashtable getEnvironment() throws NamingException { if (myEnv == null) { - return new Hashtable(5, 0.75f); + return new Hashtable<>(5, 0.75f); } else { - return (Hashtable)myEnv.clone(); + return (Hashtable)myEnv.clone(); } } @@ -529,10 +533,10 @@ } // turn it into a modification Enumeration and pass it on - NamingEnumeration attrEnum = attrs.getAll(); + NamingEnumeration attrEnum = attrs.getAll(); ModificationItem[] mods = new ModificationItem[attrs.size()]; for (int i = 0; i < mods.length && attrEnum.hasMoreElements(); i++) { - mods[i] = new ModificationItem(mod_op, (Attribute)attrEnum.next()); + mods[i] = new ModificationItem(mod_op, attrEnum.next()); } modifyAttributes(name, mods); @@ -564,7 +568,7 @@ ModificationItem mod; Attribute existingAttr, modAttr; - NamingEnumeration modVals; + NamingEnumeration modVals; for (int i = 0; i < mods.length; i++) { mod = mods[i]; @@ -619,29 +623,29 @@ return orig; } - public NamingEnumeration search(String name, - Attributes matchingAttributes) + public NamingEnumeration search(String name, + Attributes matchingAttributes) throws NamingException { return search(name, matchingAttributes, null); } - public NamingEnumeration search(Name name, - Attributes matchingAttributes) + public NamingEnumeration search(Name name, + Attributes matchingAttributes) throws NamingException { return search(name, matchingAttributes, null); } - public NamingEnumeration search(String name, - Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(String name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { return search(myParser.parse(name), matchingAttributes, attributesToReturn); } - public NamingEnumeration search(Name name, - Attributes matchingAttributes, - String[] attributesToReturn) + public NamingEnumeration search(Name name, + Attributes matchingAttributes, + String[] attributesToReturn) throws NamingException { HierMemDirCtx target = (HierMemDirCtx) doLookup(name, false); @@ -656,9 +660,9 @@ false); // alwaysUseFactory ignored because objReturnFlag == false } - public NamingEnumeration search(Name name, - String filter, - SearchControls cons) + public NamingEnumeration search(Name name, + String filter, + SearchControls cons) throws NamingException { DirContext target = (DirContext) doLookup(name, false); @@ -671,27 +675,27 @@ cons, this, myEnv, alwaysUseFactory); } - public NamingEnumeration search(Name name, - String filterExpr, - Object[] filterArgs, - SearchControls cons) + public NamingEnumeration search(Name name, + String filterExpr, + Object[] filterArgs, + SearchControls cons) throws NamingException { String strfilter = SearchFilter.format(filterExpr, filterArgs); return search(name, strfilter, cons); } - public NamingEnumeration search(String name, - String filter, - SearchControls cons) + public NamingEnumeration search(String name, + String filter, + SearchControls cons) throws NamingException { return search(myParser.parse(name), filter, cons); } - public NamingEnumeration search(String name, - String filterExpr, - Object[] filterArgs, - SearchControls cons) + public NamingEnumeration search(String name, + String filterExpr, + Object[] filterArgs, + SearchControls cons) throws NamingException { return search(myParser.parse(name), filterExpr, filterArgs, cons); } @@ -761,15 +765,17 @@ myParser = parser; } - // Class for enumerating name/class pairs - private class FlatNames implements NamingEnumeration { - Enumeration names; + /* + * Common base class for FlatNames and FlatBindings. + */ + private abstract class BaseFlatNames implements NamingEnumeration { + Enumeration names; - FlatNames (Enumeration names) { + BaseFlatNames (Enumeration names) { this.names = names; } - public boolean hasMoreElements() { + public final boolean hasMoreElements() { try { return hasMore(); } catch (NamingException e) { @@ -777,11 +783,11 @@ } } - public boolean hasMore() throws NamingException { + public final boolean hasMore() throws NamingException { return names.hasMoreElements(); } - public Object nextElement() { + public final T nextElement() { try { return next(); } catch (NamingException e) { @@ -789,32 +795,45 @@ } } - public Object next() throws NamingException { - Name name = (Name)names.nextElement(); - String className = bindings.get(name).getClass().getName(); - return new NameClassPair(name.toString(), className); - } + public abstract T next() throws NamingException; - public void close() { + public final void close() { names = null; } } - // Class for enumerating bindings - private final class FlatBindings extends FlatNames { - private Hashtable bds; - private Hashtable env; + // Class for enumerating name/class pairs + private final class FlatNames extends BaseFlatNames { + FlatNames (Enumeration names) { + super(names); + } + + @Override + public NameClassPair next() throws NamingException { + Name name = names.nextElement(); + String className = bindings.get(name).getClass().getName(); + return new NameClassPair(name.toString(), className); + } + } + + // Class for enumerating bindings + private final class FlatBindings extends BaseFlatNames { + private Hashtable bds; + private Hashtable env; private boolean useFactory; - FlatBindings(Hashtable bindings, Hashtable env, boolean useFactory) { + FlatBindings(Hashtable bindings, + Hashtable env, + boolean useFactory) { super(bindings.keys()); this.env = env; this.bds = bindings; this.useFactory = useFactory; } - public Object next() throws NamingException { - Name name = (Name)names.nextElement(); + @Override + public Binding next() throws NamingException { + Name name = names.nextElement(); HierMemDirCtx obj = (HierMemDirCtx)bds.get(name); @@ -849,7 +868,7 @@ super(context, scope, contextName, returnSelf); } - protected NamingEnumeration getImmediateChildren(Context ctx) + protected NamingEnumeration getImmediateChildren(Context ctx) throws NamingException { return ((HierMemDirCtx)ctx).doListBindings(false); } @@ -872,14 +891,14 @@ // Creates an empty name HierarchicalName() { - super(new Enumeration() { - public boolean hasMoreElements() {return false;} - public Object nextElement() {throw new NoSuchElementException();} - }, - HierarchicalNameParser.mySyntax); + super(new Enumeration() { + public boolean hasMoreElements() {return false;} + public String nextElement() {throw new NoSuchElementException();} + }, + HierarchicalNameParser.mySyntax); } - HierarchicalName(Enumeration comps, Properties syntax) { + HierarchicalName(Enumeration comps, Properties syntax) { super(comps, syntax); } @@ -891,7 +910,7 @@ public int hashCode() { if (hashValue == -1) { - String name = toString().toUpperCase(); + String name = toString().toUpperCase(Locale.ENGLISH); int len = name.length(); int off = 0; char val[] = new char[len]; @@ -907,12 +926,12 @@ } public Name getPrefix(int posn) { - Enumeration comps = super.getPrefix(posn).getAll(); + Enumeration comps = super.getPrefix(posn).getAll(); return (new HierarchicalName(comps, mySyntax)); } public Name getSuffix(int posn) { - Enumeration comps = super.getSuffix(posn).getAll(); + Enumeration comps = super.getSuffix(posn).getAll(); return (new HierarchicalName(comps, mySyntax)); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -47,16 +47,17 @@ import java.util.NoSuchElementException; import java.util.Hashtable; -final public class LazySearchEnumerationImpl implements NamingEnumeration { - private NamingEnumeration candidates; +final public class LazySearchEnumerationImpl + implements NamingEnumeration { + private NamingEnumeration candidates; private SearchResult nextMatch = null; private SearchControls cons; private AttrFilter filter; private Context context; - private Hashtable env; + private Hashtable env; private boolean useFactory = true; - public LazySearchEnumerationImpl(NamingEnumeration candidates, + public LazySearchEnumerationImpl(NamingEnumeration candidates, AttrFilter filter, SearchControls cons) throws NamingException { this.candidates = candidates; this.filter = filter; @@ -68,9 +69,10 @@ } } - public LazySearchEnumerationImpl(NamingEnumeration candidates, + public LazySearchEnumerationImpl(NamingEnumeration candidates, AttrFilter filter, SearchControls cons, - Context ctx, Hashtable env, boolean useFactory) throws NamingException { + Context ctx, Hashtable env, boolean useFactory) + throws NamingException { this.candidates = candidates; this.filter = filter; @@ -86,9 +88,9 @@ } - public LazySearchEnumerationImpl(NamingEnumeration candidates, + public LazySearchEnumerationImpl(NamingEnumeration candidates, AttrFilter filter, SearchControls cons, - Context ctx, Hashtable env) throws NamingException { + Context ctx, Hashtable env) throws NamingException { this(candidates, filter, cons, ctx, env, true); } @@ -105,7 +107,7 @@ } } - public Object nextElement() { + public SearchResult nextElement() { try { return findNextMatch(true); } catch (NamingException e) { @@ -113,7 +115,7 @@ } } - public Object next() throws NamingException { + public SearchResult next() throws NamingException { // find and remove from list return (findNextMatch(true)); } @@ -138,7 +140,7 @@ Object obj; Attributes targetAttrs; while (candidates.hasMore()) { - next = (Binding)candidates.next(); + next = candidates.next(); obj = next.getObject(); if (obj instanceof DirContext) { targetAttrs = ((DirContext)(obj)).getAttributes(""); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -29,6 +29,7 @@ import java.util.Enumeration; import java.util.StringTokenizer; import java.util.Vector; +import java.util.Locale; /** * A class for parsing LDAP search filters (defined in RFC 1960, 2254) @@ -203,11 +204,11 @@ * A class for dealing with compound filters ("and" & "or" filters). */ final class CompoundFilter implements StringFilter { - private Vector subFilters; + private Vector subFilters; private boolean polarity; CompoundFilter(boolean polarity) { - subFilters = new Vector(); + subFilters = new Vector<>(); this.polarity = polarity; } @@ -223,7 +224,7 @@ public boolean check(Attributes targetAttrs) throws NamingException { for(int i = 0; i candidates; try { Attribute attr = targetAttrs.get(attrID); @@ -395,19 +396,21 @@ // do we need to begin with the first token? if(proto.charAt(0) != WILDCARD_TOKEN && - !value.toString().toLowerCase().startsWith( - subStrs.nextToken().toLowerCase())) { - if(debug) {System.out.println("faild initial test");} + !value.toString().toLowerCase(Locale.ENGLISH).startsWith( + subStrs.nextToken().toLowerCase(Locale.ENGLISH))) { + if(debug) { + System.out.println("faild initial test"); + } return false; } - while(subStrs.hasMoreTokens()) { String currentStr = subStrs.nextToken(); if (debug) {System.out.println("looking for \"" + currentStr +"\"");} - currentPos = value.toLowerCase().indexOf( - currentStr.toLowerCase(), currentPos); + currentPos = value.toLowerCase(Locale.ENGLISH).indexOf( + currentStr.toLowerCase(Locale.ENGLISH), currentPos); + if(currentPos == -1) { return false; } @@ -441,15 +444,15 @@ String answer; answer = "(& "; Attribute attr; - for (NamingEnumeration e = attrs.getAll(); e.hasMore(); ) { - attr = (Attribute)e.next(); + for (NamingEnumeration e = attrs.getAll(); + e.hasMore(); ) { + attr = e.next(); if (attr.size() == 0 || (attr.size() == 1 && attr.get() == null)) { // only checking presence of attribute answer += "(" + attr.getID() + "=" + "*)"; } else { - for (NamingEnumeration ve = attr.getAll(); - ve.hasMore(); - ) { + for (NamingEnumeration ve = attr.getAll(); + ve.hasMore(); ) { String val = getEncodedStringRep(ve.next()); if (val != null) { answer += "(" + attr.getID() + "=" + val + ")"; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -48,11 +48,12 @@ * @author Rosanna Lee */ abstract public class GenericURLContext implements Context { - protected Hashtable myEnv = null; + protected Hashtable myEnv = null; - public GenericURLContext(Hashtable env) { + @SuppressWarnings("unchecked") // Expect Hashtable + public GenericURLContext(Hashtable env) { // context that is not tied to any specific URL - myEnv = env; // copied on write + myEnv = (Hashtable)env; // copied on write } public void close() throws NamingException { @@ -75,7 +76,7 @@ * must be in sync wrt how URLs are parsed and returned. */ abstract protected ResolveResult getRootURLContext(String url, - Hashtable env) throws NamingException; + Hashtable env) throws NamingException; /** * Returns the suffix of the url. The result should be identical to @@ -487,27 +488,31 @@ return result; } + @SuppressWarnings("unchecked") // clone() public Object removeFromEnvironment(String propName) throws NamingException { if (myEnv == null) { return null; } - myEnv = (Hashtable)myEnv.clone(); + myEnv = (Hashtable)myEnv.clone(); return myEnv.remove(propName); } + @SuppressWarnings("unchecked") // clone() public Object addToEnvironment(String propName, Object propVal) throws NamingException { - myEnv = (myEnv == null) ? - new Hashtable(11, 0.75f) : (Hashtable)myEnv.clone(); + myEnv = (myEnv == null) + ? new Hashtable(11, 0.75f) + : (Hashtable)myEnv.clone(); return myEnv.put(propName, propVal); } - public Hashtable getEnvironment() throws NamingException { + @SuppressWarnings("unchecked") // clone() + public Hashtable getEnvironment() throws NamingException { if (myEnv == null) { - return new Hashtable(5, 0.75f); + return new Hashtable<>(5, 0.75f); } else { - return (Hashtable)myEnv.clone(); + return (Hashtable)myEnv.clone(); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -50,7 +50,7 @@ abstract public class GenericURLDirContext extends GenericURLContext implements DirContext { - protected GenericURLDirContext(Hashtable env) { + protected GenericURLDirContext(Hashtable env) { super(env); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -45,7 +45,7 @@ public class dnsURLContext extends GenericURLDirContext { - public dnsURLContext(Hashtable env) { + public dnsURLContext(Hashtable env) { super(env); } @@ -54,7 +54,7 @@ * to the named DNS server, and returns the domain name as the * remaining name. */ - protected ResolveResult getRootURLContext(String url, Hashtable env) + protected ResolveResult getRootURLContext(String url, Hashtable env) throws NamingException { DnsUrl dnsUrl; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -62,7 +62,7 @@ } } - private static Object getUsingURL(String url, Hashtable env) + private static Object getUsingURL(String url, Hashtable env) throws NamingException { dnsURLContext urlCtx = new dnsURLContext(env); @@ -78,7 +78,7 @@ * If all URLs fail, throw one of the exceptions arbitrarily. * Not pretty, but potentially more informative than returning null. */ - private static Object getUsingURLs(String[] urls, Hashtable env) + private static Object getUsingURLs(String[] urls, Hashtable env) throws NamingException { if (urls.length == 0) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -42,7 +42,7 @@ public class iiopURLContext extends com.sun.jndi.toolkit.url.GenericURLContext { - iiopURLContext(Hashtable env) { + iiopURLContext(Hashtable env) { super(env); } @@ -56,7 +56,7 @@ * context on for the ORB at 'localhost' on port 900, * and returns as the remaining name "rest/of/name". */ - protected ResolveResult getRootURLContext(String name, Hashtable env) + protected ResolveResult getRootURLContext(String name, Hashtable env) throws NamingException { return iiopURLContextFactory.getUsingURLIgnoreRest(name, env); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -68,12 +68,12 @@ * context on for the ORB at 'localhost' on port 900, * and returns as the remaining name "rest/of/name". */ - static ResolveResult getUsingURLIgnoreRest(String url, Hashtable env) + static ResolveResult getUsingURLIgnoreRest(String url, Hashtable env) throws NamingException { return CNCtx.createUsingURL(url, env); } - private static Object getUsingURL(String url, Hashtable env) + private static Object getUsingURL(String url, Hashtable env) throws NamingException { ResolveResult res = getUsingURLIgnoreRest(url, env); @@ -85,7 +85,7 @@ } } - private static Object getUsingURLs(String[] urls, Hashtable env) { + private static Object getUsingURLs(String[] urls, Hashtable env) { for (int i = 0; i < urls.length; i++) { String url = urls[i]; try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -42,7 +42,7 @@ final public class ldapURLContext extends com.sun.jndi.toolkit.url.GenericURLDirContext { - ldapURLContext(Hashtable env) { + ldapURLContext(Hashtable env) { super(env); } @@ -56,7 +56,7 @@ * context on the server 'localhost' on port 389, * and returns as the remaining name "o=widget, c=us". */ - protected ResolveResult getRootURLContext(String name, Hashtable env) + protected ResolveResult getRootURLContext(String name, Hashtable env) throws NamingException { return ldapURLContextFactory.getUsingURLIgnoreRootDN(name, env); } @@ -171,7 +171,8 @@ } } - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) + throws NamingException { if (LdapURL.hasQueryComponents(name)) { throw new InvalidNameException(name); } else { @@ -179,7 +180,8 @@ } } - public NamingEnumeration list(Name name) throws NamingException { + public NamingEnumeration list(Name name) + throws NamingException { if (LdapURL.hasQueryComponents(name.get(0))) { throw new InvalidNameException(name.toString()); } else { @@ -187,7 +189,8 @@ } } - public NamingEnumeration listBindings(String name) throws NamingException { + public NamingEnumeration listBindings(String name) + throws NamingException { if (LdapURL.hasQueryComponents(name)) { throw new InvalidNameException(name); } else { @@ -195,7 +198,8 @@ } } - public NamingEnumeration listBindings(Name name) throws NamingException { + public NamingEnumeration listBindings(Name name) + throws NamingException { if (LdapURL.hasQueryComponents(name.get(0))) { throw new InvalidNameException(name.toString()); } else { @@ -447,7 +451,7 @@ } // divert the search operation when the LDAP URL has query components - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException { @@ -459,7 +463,7 @@ } // divert the search operation when name has a single component - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, Attributes matchingAttributes) throws NamingException { if (name.size() == 1) { @@ -472,7 +476,7 @@ } // divert the search operation when the LDAP URL has query components - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException { @@ -485,7 +489,7 @@ } // divert the search operation when name has a single component - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException { @@ -500,7 +504,7 @@ } // divert the search operation when the LDAP URL has query components - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException { @@ -513,7 +517,7 @@ } // divert the search operation when name has a single component - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, String filter, SearchControls cons) throws NamingException { @@ -528,7 +532,7 @@ } // divert the search operation when the LDAP URL has query components - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) @@ -542,7 +546,7 @@ } // divert the search operation when name has a single component - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) @@ -559,7 +563,7 @@ // Search using the LDAP URL in name. // LDAP URL query components override the search argments. - private NamingEnumeration searchUsingURL(String name) + private NamingEnumeration searchUsingURL(String name) throws NamingException { LdapURL url = new LdapURL(name); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -53,7 +53,7 @@ } } - static ResolveResult getUsingURLIgnoreRootDN(String url, Hashtable env) + static ResolveResult getUsingURLIgnoreRootDN(String url, Hashtable env) throws NamingException { LdapURL ldapUrl = new LdapURL(url); DirContext ctx = new LdapCtx("", ldapUrl.getHost(), ldapUrl.getPort(), diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -26,7 +26,6 @@ package com.sun.jndi.url.rmi; import java.util.Hashtable; -import java.rmi.registry.LocateRegistry; import javax.naming.*; import javax.naming.spi.ResolveResult; @@ -48,7 +47,7 @@ */ public class rmiURLContext extends GenericURLContext { - public rmiURLContext(Hashtable env) { + public rmiURLContext(Hashtable env) { super(env); } @@ -57,7 +56,7 @@ * RMI registry, and returns the atomic object name as the * remaining name. */ - protected ResolveResult getRootURLContext(String url, Hashtable env) + protected ResolveResult getRootURLContext(String url, Hashtable env) throws NamingException { if (!url.startsWith("rmi:")) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java --- a/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -63,7 +63,7 @@ } } - private static Object getUsingURL(String url, Hashtable env) + private static Object getUsingURL(String url, Hashtable env) throws NamingException { rmiURLContext urlCtx = new rmiURLContext(env); @@ -79,7 +79,7 @@ * If all URLs fail, throw one of the exceptions arbitrarily. * Not pretty, but potentially more informative than returning null. */ - private static Object getUsingURLs(String[] urls, Hashtable env) + private static Object getUsingURLs(String[] urls, Hashtable env) throws NamingException { if (urls.length == 0) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java --- a/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -37,7 +37,8 @@ // no need to implement Enumeration since this is only for internal use public final class FactoryEnumeration { - private List factories; + // List> + private List> factories; private int posn = 0; private ClassLoader loader; @@ -59,7 +60,8 @@ * @param factories A non-null list * @param loader The class loader of the list's contents */ - FactoryEnumeration(List factories, ClassLoader loader) { + FactoryEnumeration(List> factories, + ClassLoader loader) { this.factories = factories; this.loader = loader; } @@ -67,7 +69,7 @@ public Object next() throws NamingException { synchronized (factories) { - NamedWeakReference ref = (NamedWeakReference) factories.get(posn++); + NamedWeakReference ref = factories.get(posn++); Object answer = ref.get(); if ((answer != null) && !(answer instanceof Class)) { return answer; @@ -81,7 +83,7 @@ } // Instantiate Class to get factory answer = ((Class) answer).newInstance(); - ref = new NamedWeakReference(answer, className); + ref = new NamedWeakReference<>(answer, className); factories.set(posn-1, ref); // replace Class object or null return answer; } catch (ClassNotFoundException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java --- a/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/NamedWeakReference.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -33,11 +33,11 @@ */ -class NamedWeakReference extends java.lang.ref.WeakReference { +class NamedWeakReference extends java.lang.ref.WeakReference { private final String name; - NamedWeakReference(Object referent, String name) { + NamedWeakReference(T referent, String name) { super(referent); this.name = name; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java --- a/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -27,11 +27,9 @@ import java.io.InputStream; import java.io.IOException; -import java.net.URL; import java.lang.ref.WeakReference; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; -import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; @@ -89,7 +87,9 @@ * One from application resource files is keyed on the thread's * context class loader. */ - private static final WeakHashMap propertiesCache = new WeakHashMap(11); + // WeakHashMap + private static final WeakHashMap> + propertiesCache = new WeakHashMap<>(11); /* * A cache of factory objects (ObjectFactory, StateFactory, ControlFactory). @@ -99,7 +99,9 @@ * weakly referenced so as not to prevent GC of the class loader. * Used in getFactories(). */ - private static final WeakHashMap factoryCache = new WeakHashMap(11); + private static final + WeakHashMap>>> + factoryCache = new WeakHashMap<>(11); /* * A cache of URL factory objects (ObjectFactory). @@ -110,8 +112,11 @@ * NO_FACTORY if a previous search revealed no factory. Used in * getFactory(). */ - private static final WeakHashMap urlFactoryCache = new WeakHashMap(11); - private static final WeakReference NO_FACTORY = new WeakReference(null); + private static final + WeakHashMap>> + urlFactoryCache = new WeakHashMap<>(11); + private static final WeakReference NO_FACTORY = + new WeakReference<>(null); /** * A class to allow JNDI properties be specified as applet parameters @@ -152,10 +157,9 @@ throw new ClassCastException(applet.getClass().getName()); try { return getMethod.invoke(applet, name); - } catch (InvocationTargetException e) { + } catch (InvocationTargetException | + IllegalAccessException e) { throw new AssertionError(e); - } catch (IllegalAccessException iae) { - throw new AssertionError(iae); } } } @@ -183,12 +187,14 @@ * @throws NamingException if an error occurs while reading a * resource file */ - public static Hashtable getInitialEnvironment(Hashtable env) + @SuppressWarnings("unchecked") + public static Hashtable getInitialEnvironment( + Hashtable env) throws NamingException { String[] props = VersionHelper.PROPS; // system/applet properties if (env == null) { - env = new Hashtable(11); + env = new Hashtable<>(11); } Object applet = env.get(Context.APPLET); @@ -213,14 +219,14 @@ : helper.getJndiProperty(i); } if (val != null) { - env.put(props[i], val); + ((Hashtable)env).put(props[i], val); } } } // Merge the above with the values read from all application // resource files. Colon-separated lists are concatenated. - mergeTables(env, getApplicationResources()); + mergeTables((Hashtable)env, getApplicationResources()); return env; } @@ -244,7 +250,7 @@ * @throws NamingException if an error occurs while reading the provider * resource file. */ - public static String getProperty(String propName, Hashtable env, + public static String getProperty(String propName, Hashtable env, Context ctx, boolean concat) throws NamingException { @@ -305,8 +311,8 @@ * @see javax.naming.spi.DirectoryManager#getStateToBind * @see javax.naming.ldap.ControlFactory#getControlInstance */ - public static FactoryEnumeration getFactories(String propName, Hashtable env, - Context ctx) throws NamingException { + public static FactoryEnumeration getFactories(String propName, + Hashtable env, Context ctx) throws NamingException { String facProp = getProperty(propName, env, ctx, true); if (facProp == null) @@ -315,17 +321,18 @@ // Cache is based on context class loader and property val ClassLoader loader = helper.getContextClassLoader(); - Map perLoaderCache = null; + Map>> perLoaderCache = null; synchronized (factoryCache) { - perLoaderCache = (Map) factoryCache.get(loader); + perLoaderCache = factoryCache.get(loader); if (perLoaderCache == null) { - perLoaderCache = new HashMap(11); + perLoaderCache = new HashMap<>(11); factoryCache.put(loader, perLoaderCache); } } synchronized (perLoaderCache) { - List factories = (List) perLoaderCache.get(facProp); + List> factories = + perLoaderCache.get(facProp); if (factories != null) { // Cached list return factories.size() == 0 ? null @@ -334,13 +341,13 @@ // Populate list with classes named in facProp; skipping // those that we cannot load StringTokenizer parser = new StringTokenizer(facProp, ":"); - factories = new ArrayList(5); + factories = new ArrayList<>(5); while (parser.hasMoreTokens()) { try { // System.out.println("loading"); String className = parser.nextToken(); - Class c = helper.loadClass(className, loader); - factories.add(new NamedWeakReference(c, className)); + Class c = helper.loadClass(className, loader); + factories.add(new NamedWeakReference(c, className)); } catch (Exception e) { // ignore ClassNotFoundException, IllegalArgumentException } @@ -388,8 +395,9 @@ * @see javax.naming.spi.NamingManager#getURLContext * @see javax.naming.spi.NamingManager#getURLObject */ - public static Object getFactory(String propName, Hashtable env, Context ctx, - String classSuffix, String defaultPkgPrefix) throws NamingException { + public static Object getFactory(String propName, Hashtable env, + Context ctx, String classSuffix, String defaultPkgPrefix) + throws NamingException { // Merge property with provider property and supplied default String facProp = getProperty(propName, env, ctx, true); @@ -403,11 +411,11 @@ ClassLoader loader = helper.getContextClassLoader(); String key = classSuffix + " " + facProp; - Map perLoaderCache = null; + Map> perLoaderCache = null; synchronized (urlFactoryCache) { - perLoaderCache = (Map) urlFactoryCache.get(loader); + perLoaderCache = urlFactoryCache.get(loader); if (perLoaderCache == null) { - perLoaderCache = new HashMap(11); + perLoaderCache = new HashMap<>(11); urlFactoryCache.put(loader, perLoaderCache); } } @@ -415,7 +423,7 @@ synchronized (perLoaderCache) { Object factory = null; - WeakReference factoryRef = (WeakReference) perLoaderCache.get(key); + WeakReference factoryRef = perLoaderCache.get(key); if (factoryRef == NO_FACTORY) { return null; } else if (factoryRef != null) { @@ -451,7 +459,7 @@ // Cache it. perLoaderCache.put(key, (factory != null) - ? new WeakReference(factory) + ? new WeakReference<>(factory) : NO_FACTORY); return factory; } @@ -468,16 +476,18 @@ * * @throws NamingException if an error occurs while reading the file. */ - private static Hashtable getProviderResource(Object obj) + private static Hashtable + getProviderResource(Object obj) throws NamingException { if (obj == null) { - return (new Hashtable(1)); + return (new Hashtable<>(1)); } synchronized (propertiesCache) { - Class c = obj.getClass(); + Class c = obj.getClass(); - Hashtable props = (Hashtable)propertiesCache.get(c); + Hashtable props = + propertiesCache.get(c); if (props != null) { return props; } @@ -518,22 +528,23 @@ * @throws NamingException if an error occurs while reading a resource * file. */ - private static Hashtable getApplicationResources() throws NamingException { + private static Hashtable getApplicationResources() + throws NamingException { ClassLoader cl = helper.getContextClassLoader(); synchronized (propertiesCache) { - Hashtable result = (Hashtable)propertiesCache.get(cl); + Hashtable result = propertiesCache.get(cl); if (result != null) { return result; } try { - NamingEnumeration resources = + NamingEnumeration resources = helper.getResources(cl, APP_RESOURCE_FILE_NAME); while (resources.hasMore()) { Properties props = new Properties(); - props.load((InputStream)resources.next()); + props.load(resources.next()); if (result == null) { result = props; @@ -563,7 +574,7 @@ throw ne; } if (result == null) { - result = new Hashtable(11); + result = new Hashtable<>(11); } propertiesCache.put(cl, result); return result; @@ -577,11 +588,10 @@ * standard JNDI properties that specify colon-separated lists, * the values are concatenated and stored in props1. */ - private static void mergeTables(Hashtable props1, Hashtable props2) { - Enumeration keys = props2.keys(); - - while (keys.hasMoreElements()) { - String prop = (String)keys.nextElement(); + private static void mergeTables(Hashtable props1, + Hashtable props2) { + for (Object key : props2.keySet()) { + String prop = (String)key; Object val1 = props1.get(prop); if (val1 == null) { props1.put(prop, props2.get(prop)); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java --- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -29,7 +29,6 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import java.util.Enumeration; import java.util.StringTokenizer; import java.util.Vector; @@ -78,13 +77,13 @@ return helper; } - public abstract Class loadClass(String className) + public abstract Class loadClass(String className) throws ClassNotFoundException; - abstract Class loadClass(String className, ClassLoader cl) + abstract Class loadClass(String className, ClassLoader cl) throws ClassNotFoundException; - public abstract Class loadClass(String className, String codebase) + public abstract Class loadClass(String className, String codebase) throws ClassNotFoundException, MalformedURLException; /* @@ -106,7 +105,7 @@ * Returns the resource of a given name associated with a particular * class (never null), or null if none can be found. */ - abstract InputStream getResourceAsStream(Class c, String name); + abstract InputStream getResourceAsStream(Class c, String name); /* * Returns an input stream for a file in /lib, @@ -122,7 +121,8 @@ * loader. Null represents the bootstrap class loader in some * Java implementations. */ - abstract NamingEnumeration getResources(ClassLoader cl, String name) + abstract NamingEnumeration getResources( + ClassLoader cl, String name) throws IOException; /* @@ -137,13 +137,13 @@ throws MalformedURLException { // Parse codebase into separate URLs StringTokenizer parser = new StringTokenizer(codebase); - Vector vec = new Vector(10); + Vector vec = new Vector<>(10); while (parser.hasMoreTokens()) { vec.addElement(parser.nextToken()); } String[] url = new String[vec.size()]; for (int i = 0; i < url.length; i++) { - url[i] = (String)vec.elementAt(i); + url[i] = vec.elementAt(i); } URL[] urlArray = new URL[url.length]; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java --- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -35,7 +35,6 @@ import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.util.Enumeration; -import java.util.Hashtable; import java.util.NoSuchElementException; import java.util.Properties; @@ -58,7 +57,7 @@ VersionHelper12() {} // Disallow external from creating one of these. - public Class loadClass(String className) throws ClassNotFoundException { + public Class loadClass(String className) throws ClassNotFoundException { ClassLoader cl = getContextClassLoader(); return Class.forName(className, true, cl); } @@ -66,7 +65,7 @@ /** * Package private. */ - Class loadClass(String className, ClassLoader cl) + Class loadClass(String className, ClassLoader cl) throws ClassNotFoundException { return Class.forName(className, true, cl); } @@ -75,7 +74,7 @@ * @param className A non-null fully qualified class name. * @param codebase A non-null, space-separated list of URL strings. */ - public Class loadClass(String className, String codebase) + public Class loadClass(String className, String codebase) throws ClassNotFoundException, MalformedURLException { ClassLoader cl; @@ -86,9 +85,9 @@ } String getJndiProperty(final int i) { - return (String) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public String run() { try { return System.getProperty(PROPS[i]); } catch (SecurityException e) { @@ -103,9 +102,9 @@ if (getSystemPropsFailed) { return null; // after one failure, don't bother trying again } - Properties sysProps = (Properties) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + Properties sysProps = AccessController.doPrivileged( + new PrivilegedAction() { + public Properties run() { try { return System.getProperties(); } catch (SecurityException e) { @@ -125,10 +124,10 @@ return jProps; } - InputStream getResourceAsStream(final Class c, final String name) { - return (InputStream) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + InputStream getResourceAsStream(final Class c, final String name) { + return AccessController.doPrivileged( + new PrivilegedAction() { + public InputStream run() { return c.getResourceAsStream(name); } } @@ -136,9 +135,9 @@ } InputStream getJavaHomeLibStream(final String filename) { - return (InputStream) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public InputStream run() { try { String javahome = System.getProperty("java.home"); if (javahome == null) { @@ -155,14 +154,13 @@ ); } - NamingEnumeration getResources(final ClassLoader cl, final String name) - throws IOException - { - Enumeration urls; + NamingEnumeration getResources(final ClassLoader cl, + final String name) throws IOException { + Enumeration urls; try { - urls = (Enumeration) AccessController.doPrivileged( - new PrivilegedExceptionAction() { - public Object run() throws IOException { + urls = AccessController.doPrivileged( + new PrivilegedExceptionAction>() { + public Enumeration run() throws IOException { return (cl == null) ? ClassLoader.getSystemResources(name) : cl.getResources(name); @@ -176,9 +174,9 @@ } ClassLoader getContextClassLoader() { - return (ClassLoader) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public ClassLoader run() { return Thread.currentThread().getContextClassLoader(); } } @@ -193,13 +191,13 @@ * This is used to enumerate the resources under a foreign codebase. * This class is not MT-safe. */ - class InputStreamEnumeration implements NamingEnumeration { + class InputStreamEnumeration implements NamingEnumeration { - private final Enumeration urls; + private final Enumeration urls; - private Object nextElement = null; + private InputStream nextElement = null; - InputStreamEnumeration(Enumeration urls) { + InputStreamEnumeration(Enumeration urls) { this.urls = urls; } @@ -207,13 +205,13 @@ * Returns the next InputStream, or null if there are no more. * An InputStream that cannot be opened is skipped. */ - private Object getNextElement() { + private InputStream getNextElement() { return AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + new PrivilegedAction() { + public InputStream run() { while (urls.hasMoreElements()) { try { - return ((URL)urls.nextElement()).openStream(); + return urls.nextElement().openStream(); } catch (IOException e) { // skip this URL } @@ -236,9 +234,9 @@ return hasMore(); } - public Object next() { + public InputStream next() { if (hasMore()) { - Object res = nextElement; + InputStream res = nextElement; nextElement = null; return res; } else { @@ -246,7 +244,7 @@ } } - public Object nextElement() { + public InputStream nextElement() { return next(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/PolicyFile.java --- a/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/PolicyFile.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,13 +26,10 @@ package com.sun.security.auth; import java.io.*; -import java.lang.RuntimePermission; import java.lang.reflect.*; -import java.net.MalformedURLException; import java.net.URL; import java.util.*; -import java.security.AccessController; import java.security.CodeSource; import java.security.KeyStore; import java.security.KeyStoreException; @@ -260,7 +257,7 @@ private static final String AUTH_POLICY_URL = "auth.policy.url."; private Vector policyEntries; - private Hashtable aliasMapping; + private Hashtable aliasMapping; private boolean initialized = false; @@ -293,7 +290,7 @@ return; policyEntries = new Vector(); - aliasMapping = new Hashtable(11); + aliasMapping = new Hashtable(11); initPolicyFile(); initialized = true; @@ -403,7 +400,7 @@ } try { extra_policy = PropertyExpander.expand(extra_policy); - URL policyURL;; + URL policyURL; File policyFile = new File(extra_policy); if (policyFile.exists()) { policyURL = @@ -702,8 +699,8 @@ InvocationTargetException { //XXX we might want to keep a hash of created factories... - Class pc = Class.forName(type); - Constructor c = pc.getConstructor(PARAMS); + Class pc = Class.forName(type); + Constructor c = pc.getConstructor(PARAMS); return (Permission) c.newInstance(new Object[] { name, actions }); } @@ -1088,16 +1085,20 @@ // because the earlier CodeSource.implies succeeded SubjectCodeSource scs = (SubjectCodeSource)accCs; - Set principalSet = null; + Set principalSet = null; try { - Class pClass = Class.forName(principal.principalClass, false, - ClassLoader.getSystemClassLoader()); + // principal.principalClass should extend Principal + // If it doesn't, we should stop here with a ClassCastException. + @SuppressWarnings("unchecked") + Class pClass = (Class) + Class.forName(principal.principalClass, false, + ClassLoader.getSystemClassLoader()); principalSet = scs.getSubject().getPrincipals(pClass); } catch (Exception e) { if (debug != null) { debug.println("problem finding Principal Class " + - "when expanding SELF permission: " + - e.toString()); + "when expanding SELF permission: " + + e.toString()); } } @@ -1107,11 +1108,9 @@ } String[][] info = new String[principalSet.size()][2]; - java.util.Iterator pIterator = principalSet.iterator(); int i = 0; - while (pIterator.hasNext()) { - Principal p = pIterator.next(); + for (Principal p : principalSet) { info[i][0] = p.getClass().getName(); info[i][1] = p.getName(); i++; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java --- a/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/SubjectCodeSource.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -205,10 +205,9 @@ // handle PrincipalComparators - Class principalComparator = Class.forName(pppe.principalClass, - true, - sysClassLoader); - Constructor c = principalComparator.getConstructor(PARAMS); + Class principalComparator = Class.forName( + pppe.principalClass, true, sysClassLoader); + Constructor c = principalComparator.getConstructor(PARAMS); PrincipalComparator pc = (PrincipalComparator)c.newInstance (new Object[] { pppe.principalName }); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java --- a/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/module/JndiLoginModule.java Mon Aug 29 14:29:23 2011 -0700 @@ -32,16 +32,13 @@ import javax.naming.*; import javax.naming.directory.*; -import java.io.IOException; import java.util.Map; import java.util.LinkedList; -import java.util.ResourceBundle; import com.sun.security.auth.UnixPrincipal; import com.sun.security.auth.UnixNumericUserPrincipal; import com.sun.security.auth.UnixNumericGroupPrincipal; -import sun.security.util.AuthResources; /** *

The module prompts for a username and password @@ -189,7 +186,7 @@ // initial state private Subject subject; private CallbackHandler callbackHandler; - private Map sharedState; + private Map sharedState; private Map options; private static final String CRYPT = "{crypt}"; @@ -217,13 +214,18 @@ * Configuration for this particular * LoginModule. */ + // Unchecked warning from (Map)sharedState is safe + // since javax.security.auth.login.LoginContext passes a raw HashMap. + // Unchecked warnings from options.get(String) are safe since we are + // passing known keys. + @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { this.subject = subject; this.callbackHandler = callbackHandler; - this.sharedState = sharedState; + this.sharedState = (Map)sharedState; this.options = options; // initialize any configured options diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java --- a/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,11 +25,9 @@ package com.sun.security.auth.module; -import javax.security.auth.x500.X500Principal; import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.io.PushbackInputStream; import java.net.MalformedURLException; import java.net.URL; import java.security.AuthProvider; @@ -39,7 +37,6 @@ import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; -import java.security.Principal; import java.security.PrivateKey; import java.security.Provider; import java.security.UnrecoverableKeyException; @@ -49,13 +46,10 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.Map; -import java.util.ResourceBundle; import javax.security.auth.Destroyable; import javax.security.auth.DestroyFailedException; import javax.security.auth.Subject; import javax.security.auth.x500.*; -import javax.security.auth.Subject; -import javax.security.auth.x500.*; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.ConfirmationCallback; @@ -67,7 +61,6 @@ import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; -import sun.security.util.AuthResources; import sun.security.util.Password; /** @@ -159,7 +152,7 @@ private Subject subject; private CallbackHandler callbackHandler; - private Map sharedState; + private Map sharedState; private Map options; private char[] keyStorePassword; @@ -202,7 +195,9 @@ * Configuration for this particular * LoginModule. */ - + // Unchecked warning from (Map)sharedState is safe + // since javax.security.auth.login.LoginContext passes a raw HashMap. + @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, @@ -210,7 +205,7 @@ { this.subject = subject; this.callbackHandler = callbackHandler; - this.sharedState = sharedState; + this.sharedState = (Map)sharedState; this.options = options; processOptions(); @@ -337,6 +332,7 @@ } /** Get the alias and passwords to use for looking up in the KeyStore. */ + @SuppressWarnings("fallthrough") private void getAliasAndPasswords(int env) throws LoginException { if (callbackHandler == null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java --- a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Mon Aug 29 14:29:23 2011 -0700 @@ -367,7 +367,7 @@ // initial state private Subject subject; private CallbackHandler callbackHandler; - private Map sharedState; + private Map sharedState; private Map options; // configurable option @@ -432,7 +432,11 @@ * Configuration for this particular * LoginModule. */ - + // Unchecked warning from (Map)sharedState is safe + // since javax.security.auth.login.LoginContext passes a raw HashMap. + // Unchecked warnings from options.get(String) are safe since we are + // passing known keys. + @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, @@ -440,7 +444,7 @@ this.subject = subject; this.callbackHandler = callbackHandler; - this.sharedState = sharedState; + this.sharedState = (Map)sharedState; this.options = options; // initialize any configured options diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java --- a/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/auth/module/LdapLoginModule.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -25,14 +25,12 @@ package com.sun.security.auth.module; -import java.io.IOException; import java.security.AccessController; import java.net.SocketPermission; import java.security.Principal; import java.security.PrivilegedAction; import java.util.Arrays; import java.util.Hashtable; -import java.util.Iterator; import java.util.Map; import java.util.ResourceBundle; import java.util.regex.Matcher; @@ -50,7 +48,6 @@ import com.sun.security.auth.LdapPrincipal; import com.sun.security.auth.UserPrincipal; -import sun.security.util.AuthResources; /** * This {@link LoginModule} performs LDAP-based authentication. @@ -366,12 +363,12 @@ // Initial state private Subject subject; private CallbackHandler callbackHandler; - private Map sharedState; + private Map sharedState; private Map options; private LdapContext ctx; private Matcher identityMatcher = null; private Matcher filterMatcher = null; - private Hashtable ldapEnvironment; + private Hashtable ldapEnvironment; private SearchControls constraints = null; /** @@ -385,15 +382,18 @@ * Configuration for this particular * LoginModule. */ + // Unchecked warning from (Map)sharedState is safe + // since javax.security.auth.login.LoginContext passes a raw HashMap. + @SuppressWarnings("unchecked") public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { this.subject = subject; this.callbackHandler = callbackHandler; - this.sharedState = sharedState; + this.sharedState = (Map)sharedState; this.options = options; - ldapEnvironment = new Hashtable(9); + ldapEnvironment = new Hashtable(9); ldapEnvironment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java --- a/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -36,6 +36,7 @@ *

The target name is the {@link InquireType} allowed. */ public final class InquireSecContextPermission extends BasicPermission { + private static final long serialVersionUID = -7131173349668647297L; /** * Constructs a new {@code InquireSecContextPermission} object with diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/ntlm/Client.java --- a/jdk/src/share/classes/com/sun/security/ntlm/Client.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/ntlm/Client.java Mon Aug 29 14:29:23 2011 -0700 @@ -69,14 +69,16 @@ * This method does not make any modification to this parameter, it neither * needs to access the content of this parameter after this method call, * so you are free to modify or nullify this parameter after this call. - * @throws NullPointerException if {@code username} or {@code password} is null. - * @throws NTLMException if {@code version} is illegal + * @throws NTLMException if {@code username} or {@code password} is null, + * or {@code version} is illegal. + * */ public Client(String version, String hostname, String username, String domain, char[] password) throws NTLMException { super(version); if ((username == null || password == null)) { - throw new NullPointerException("username/password cannot be null"); + throw new NTLMException(NTLMException.PROTOCOL, + "username/password cannot be null"); } this.hostname = hostname; this.username = username; @@ -117,13 +119,13 @@ * @param nonce random 8-byte array to be used in message generation, * must not be null except for original NTLM v1 * @return the message generated - * @throws NullPointerException if {@code type2} or {@code nonce} is null - * for NTLM v1. - * @throws NTLMException if the incoming message is invalid + * @throws NTLMException if the incoming message is invalid, or + * {@code nonce} is null for NTLM v1. */ public byte[] type3(byte[] type2, byte[] nonce) throws NTLMException { if (type2 == null || (v != Version.NTLM && nonce == null)) { - throw new NullPointerException("type2 and nonce cannot be null"); + throw new NTLMException(NTLMException.PROTOCOL, + "type2 and nonce cannot be null"); } debug("NTLM Client: Type 2 received\n"); debug(type2); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/ntlm/NTLM.java --- a/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java Mon Aug 29 14:29:23 2011 -0700 @@ -33,6 +33,7 @@ import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import java.util.Arrays; +import java.util.Locale; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; @@ -410,7 +411,8 @@ static byte[] getP1(char[] password) { try { - return new String(password).toUpperCase().getBytes("ISO8859_1"); + return new String(password).toUpperCase( + Locale.ENGLISH).getBytes("ISO8859_1"); } catch (UnsupportedEncodingException ex) { return null; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java --- a/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/ntlm/NTLMException.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -31,6 +31,7 @@ * An NTLM-related Exception */ public final class NTLMException extends GeneralSecurityException { + private static final long serialVersionUID = -3298539507906689430L; /** * If the incoming packet is invalid. @@ -64,6 +65,11 @@ */ public final static int BAD_VERSION = 5; + /** + * Protocol errors. + */ + public final static int PROTOCOL = 6; + private int errorCode; /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/ntlm/Server.java --- a/jdk/src/share/classes/com/sun/security/ntlm/Server.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/ntlm/Server.java Mon Aug 29 14:29:23 2011 -0700 @@ -62,12 +62,13 @@ * is selected, authentication succeeds if one of LM (or LMv2) or * NTLM (or NTLMv2) is verified. * @param domain the domain, must not be null - * @throws NullPointerException if {@code domain} is null. + * @throws NTLMException if {@code domain} is null. */ public Server(String version, String domain) throws NTLMException { super(version); if (domain == null) { - throw new NullPointerException("domain cannot be null"); + throw new NTLMException(NTLMException.PROTOCOL, + "domain cannot be null"); } this.allVersion = (version == null); this.domain = domain; @@ -80,12 +81,13 @@ * @param nonce the random 8-byte array to be used in message generation, * must not be null * @return the message generated - * @throws NullPointerException if type1 or nonce is null - * @throws NTLMException if the incoming message is invalid + * @throws NTLMException if the incoming message is invalid, or + * {@code nonce} is null. */ - public byte[] type2(byte[] type1, byte[] nonce) { + public byte[] type2(byte[] type1, byte[] nonce) throws NTLMException { if (nonce == null) { - throw new NullPointerException("nonce cannot be null"); + throw new NTLMException(NTLMException.PROTOCOL, + "nonce cannot be null"); } debug("NTLM Server: Type 1 received\n"); if (type1 != null) debug(type1); @@ -105,13 +107,14 @@ * @param type3 the incoming Type3 message from client, must not be null * @param nonce the same nonce provided in {@link #type2}, must not be null * @return username and hostname of the client in a byte array - * @throws NullPointerException if {@code type3} or {@code nonce} is null - * @throws NTLMException if the incoming message is invalid + * @throws NTLMException if the incoming message is invalid, or + * {@code nonce} is null. */ public String[] verify(byte[] type3, byte[] nonce) throws NTLMException { if (type3 == null || nonce == null) { - throw new NullPointerException("type1 or nonce cannot be null"); + throw new NTLMException(NTLMException.PROTOCOL, + "type1 or nonce cannot be null"); } debug("NTLM Server: Type 3 received\n"); if (type3 != null) debug(type3); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java --- a/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -33,7 +33,6 @@ import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; -import java.util.logging.Logger; import java.util.logging.Level; /** @@ -68,7 +67,7 @@ * @param pw A non-null String or byte[] * containing the password. If it is an array, it is first cloned. */ - CramMD5Server(String protocol, String serverFqdn, Map props, + CramMD5Server(String protocol, String serverFqdn, Map props, CallbackHandler cbh) throws SaslException { if (serverFqdn == null) { throw new SaslException( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -28,21 +28,15 @@ import java.util.Map; import java.util.Arrays; import java.util.List; -import java.util.Set; -import java.util.logging.Logger; import java.util.logging.Level; import java.math.BigInteger; import java.util.Random; -import java.security.Provider; -import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.io.IOException; import java.security.MessageDigest; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.security.NoSuchAlgorithmException; import java.security.InvalidKeyException; import java.security.spec.KeySpec; @@ -53,7 +47,6 @@ import javax.crypto.SecretKey; import javax.crypto.Mac; import javax.crypto.SecretKeyFactory; -import javax.crypto.BadPaddingException; import javax.crypto.NoSuchPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.IvParameterSpec; @@ -175,8 +168,9 @@ * * @throws SaslException If invalid value found in props. */ - protected DigestMD5Base(Map props, String className, int firstStep, - String digestUri, CallbackHandler cbh) throws SaslException { + protected DigestMD5Base(Map props, String className, + int firstStep, String digestUri, CallbackHandler cbh) + throws SaslException { super(props, className); // sets QOP, STENGTH and BUFFER_SIZE step = firstStep; @@ -791,7 +785,7 @@ } } else if (realmChoices != null && i == realmIndex) { // > 1 realm specified - if (realmChoices.size() == 0) { + if (realmChoices.isEmpty()) { realmChoices.add(valueTable[i]); // add existing one } realmChoices.add(value); // add new one @@ -1585,47 +1579,45 @@ KeySpec spec = null; SecretKeyFactory desFactory = SecretKeyFactory.getInstance(desStrength); - - if (desStrength.equals("des")) { - spec = new DESKeySpec(subkey1, 0); - if (logger.isLoggable(Level.FINEST)) { - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST42:DES key input: ", input); - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST43:DES key parity-adjusted: ", subkey1); - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey()); - logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}", - Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0))); - } - - } else if (desStrength.equals("desede")) { - - // Generate second subkey using second 7 bytes - byte[] subkey2 = addDesParity(input, 7, 7); - - // Construct 24-byte encryption-decryption-encryption sequence - byte[] ede = new byte[subkey1.length*2+subkey2.length]; - System.arraycopy(subkey1, 0, ede, 0, subkey1.length); - System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length); - System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length, - subkey1.length); - - spec = new DESedeKeySpec(ede, 0); - if (logger.isLoggable(Level.FINEST)) { - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST46:3DES key input: ", input); - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST47:3DES key ede: ", ede); - traceOutput(DP_CLASS_NAME, "makeDesKeys", - "DIGEST48:3DES key material: ", - ((DESedeKeySpec)spec).getKey()); - logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ", - Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0))); - } - } else { - throw new IllegalArgumentException("Invalid DES strength:" + - desStrength); + switch (desStrength) { + case "des": + spec = new DESKeySpec(subkey1, 0); + if (logger.isLoggable(Level.FINEST)) { + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST42:DES key input: ", input); + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST43:DES key parity-adjusted: ", subkey1); + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST44:DES key material: ", ((DESKeySpec)spec).getKey()); + logger.log(Level.FINEST, "DIGEST45: is parity-adjusted? {0}", + Boolean.valueOf(DESKeySpec.isParityAdjusted(subkey1, 0))); + } + break; + case "desede": + // Generate second subkey using second 7 bytes + byte[] subkey2 = addDesParity(input, 7, 7); + // Construct 24-byte encryption-decryption-encryption sequence + byte[] ede = new byte[subkey1.length*2+subkey2.length]; + System.arraycopy(subkey1, 0, ede, 0, subkey1.length); + System.arraycopy(subkey2, 0, ede, subkey1.length, subkey2.length); + System.arraycopy(subkey1, 0, ede, subkey1.length+subkey2.length, + subkey1.length); + spec = new DESedeKeySpec(ede, 0); + if (logger.isLoggable(Level.FINEST)) { + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST46:3DES key input: ", input); + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST47:3DES key ede: ", ede); + traceOutput(DP_CLASS_NAME, "makeDesKeys", + "DIGEST48:3DES key material: ", + ((DESedeKeySpec)spec).getKey()); + logger.log(Level.FINEST, "DIGEST49: is parity-adjusted? ", + Boolean.valueOf(DESedeKeySpec.isParityAdjusted(ede, 0))); + } + break; + default: + throw new IllegalArgumentException("Invalid DES strength:" + + desStrength); } return desFactory.generateSecret(spec); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java --- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -25,21 +25,16 @@ package com.sun.security.sasl.digest; -import java.security.AccessController; -import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.io.ByteArrayOutputStream; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.StringTokenizer; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Arrays; -import java.util.logging.Logger; import java.util.logging.Level; import javax.security.sasl.*; @@ -153,7 +148,7 @@ * @throws SaslException if no authentication ID or password is supplied */ DigestMD5Client(String authzid, String protocol, String serverName, - Map props, CallbackHandler cbh) throws SaslException { + Map props, CallbackHandler cbh) throws SaslException { super(props, MY_CLASS_NAME, 2, protocol + "/" + serverName, cbh); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java --- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -25,23 +25,16 @@ package com.sun.security.sasl.digest; -import java.security.AccessController; -import java.security.Provider; -import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.io.ByteArrayOutputStream; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; -import java.util.Random; import java.util.StringTokenizer; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Arrays; -import java.util.logging.Logger; import java.util.logging.Level; import javax.security.sasl.*; @@ -147,7 +140,7 @@ private byte[] myCiphers; private List serverRealms; - DigestMD5Server(String protocol, String serverName, Map props, + DigestMD5Server(String protocol, String serverName, Map props, CallbackHandler cbh) throws SaslException { super(props, MY_CLASS_NAME, 1, protocol + "/" + serverName, cbh); @@ -179,7 +172,7 @@ encoding = (useUTF8 ? "UTF8" : "8859_1"); // By default, use server name as realm - if (serverRealms.size() == 0) { + if (serverRealms.isEmpty()) { serverRealms.add(serverName); } } @@ -468,19 +461,23 @@ // Check that QOP is one sent by server byte cQop; - if (negotiatedQop.equals("auth")) { - cQop = NO_PROTECTION; - } else if (negotiatedQop.equals("auth-int")) { - cQop = INTEGRITY_ONLY_PROTECTION; - integrity = true; - rawSendSize = sendMaxBufSize - 16; - } else if (negotiatedQop.equals("auth-conf")) { - cQop = PRIVACY_PROTECTION; - integrity = privacy = true; - rawSendSize = sendMaxBufSize - 26; - } else { - throw new SaslException("DIGEST-MD5: digest response format " + - "violation. Invalid QOP: " + negotiatedQop); + switch (negotiatedQop) { + case "auth": + cQop = NO_PROTECTION; + break; + case "auth-int": + cQop = INTEGRITY_ONLY_PROTECTION; + integrity = true; + rawSendSize = sendMaxBufSize - 16; + break; + case "auth-conf": + cQop = PRIVACY_PROTECTION; + integrity = privacy = true; + rawSendSize = sendMaxBufSize - 26; + break; + default: + throw new SaslException("DIGEST-MD5: digest response format " + + "violation. Invalid QOP: " + negotiatedQop); } if ((cQop&allQop) == 0) { throw new SaslException("DIGEST-MD5: server does not support " + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java --- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -26,9 +26,7 @@ package com.sun.security.sasl.gsskerb; -import java.io.IOException; import java.util.Map; -import java.util.logging.Logger; import java.util.logging.Level; import javax.security.sasl.*; import com.sun.security.sasl.util.AbstractSaslImpl; @@ -50,7 +48,8 @@ protected MessageProp msgProp; // QOP and privacy for unwrap protected static final int JGSS_QOP = 0; // unrelated to SASL QOP mask - protected GssKrb5Base(Map props, String className) throws SaslException { + protected GssKrb5Base(Map props, String className) + throws SaslException { super(props, className); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java --- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -27,7 +27,6 @@ import java.io.IOException; import java.util.Map; -import java.util.logging.Logger; import java.util.logging.Level; import javax.security.sasl.*; @@ -93,7 +92,7 @@ * with the server. */ GssKrb5Client(String authzID, String protocol, String serverName, - Map props, CallbackHandler cbh) throws SaslException { + Map props, CallbackHandler cbh) throws SaslException { super(props, MY_CLASS_NAME); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java --- a/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -28,7 +28,6 @@ import javax.security.sasl.*; import java.io.*; import java.util.Map; -import java.util.logging.Logger; import java.util.logging.Level; // JAAS @@ -77,7 +76,7 @@ * with the client. */ GssKrb5Server(String protocol, String serverName, - Map props, CallbackHandler cbh) throws SaslException { + Map props, CallbackHandler cbh) throws SaslException { super(props, MY_CLASS_NAME); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java --- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/FactoryImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -70,6 +70,12 @@ if (mechs[i].equals("NTLM") && PolicyUtils.checkPolicy(mechPolicies[0], props)) { + if (cbh == null) { + throw new SaslException( + "Callback handler with support for " + + "RealmCallback, NameCallback, and PasswordCallback " + + "required"); + } return new NTLMClient(mechs[i], authorizationId, protocol, serverName, props, cbh); } @@ -98,9 +104,9 @@ } if (cbh == null) { throw new SaslException( - "Callback handler with support for AuthorizeCallback, "+ - "RealmCallback, NameCallback, and PasswordCallback " + - "required"); + "Callback handler with support for " + + "RealmCallback, NameCallback, and PasswordCallback " + + "required"); } return new NTLMServer(mech, protocol, serverName, props, cbh); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java --- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMClient.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -107,11 +107,11 @@ * @param protocol non-null for Sasl, useless for NTLM * @param serverName non-null for Sasl, but can be null for NTLM * @param props can be null - * @param cbh can be null for Sasl, but will throw NPE for NTLM + * @param cbh can be null for Sasl, already null-checked in factory * @throws SaslException */ NTLMClient(String mech, String authzid, String protocol, String serverName, - Map props, CallbackHandler cbh) throws SaslException { + Map props, CallbackHandler cbh) throws SaslException { this.mech = mech; String version = null; @@ -166,7 +166,7 @@ pcb.getPassword()); } catch (NTLMException ne) { throw new SaslException( - "NTLM: Invalid version string: " + version, ne); + "NTLM: client creation failure", ne); } } @@ -183,23 +183,27 @@ @Override public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException { - throw new UnsupportedOperationException("Not supported."); + throw new IllegalStateException("Not supported."); } @Override public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException { - throw new UnsupportedOperationException("Not supported."); + throw new IllegalStateException("Not supported."); } @Override public Object getNegotiatedProperty(String propName) { - if (propName.equals(Sasl.QOP)) { - return "auth"; - } else if (propName.equals(NTLM_DOMAIN)) { - return client.getDomain(); - } else { - return null; + if (!isComplete()) { + throw new IllegalStateException("authentication not complete"); + } + switch (propName) { + case Sasl.QOP: + return "auth"; + case NTLM_DOMAIN: + return client.getDomain(); + default: + return null; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java --- a/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/ntlm/NTLMServer.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -106,11 +106,12 @@ * @param serverName not null for Sasl, can be null in NTLM. If non-null, * might be used as domain if not provided in props * @param props can be null - * @param cbh can be null for Sasl, but will throw NPE in auth for NTLM + * @param cbh can be null for Sasl, already null-checked in factory * @throws SaslException */ NTLMServer(String mech, String protocol, String serverName, - Map props, final CallbackHandler cbh) throws SaslException { + Map props, final CallbackHandler cbh) + throws SaslException { this.mech = mech; String version = null; @@ -131,7 +132,7 @@ domain = serverName; } if (domain == null) { - throw new NullPointerException("Domain must be provided as" + throw new SaslException("Domain must be provided as" + " the serverName argument or in props"); } @@ -158,7 +159,7 @@ }; } catch (NTLMException ne) { throw new SaslException( - "NTLM: Invalid version string: " + version, ne); + "NTLM: server creation failure", ne); } nonce = new byte[8]; } @@ -181,8 +182,8 @@ hostname = out[1]; return null; } - } catch (GeneralSecurityException ex) { - throw new SaslException("", ex); + } catch (NTLMException ex) { + throw new SaslException("NTLM: generate response failure", ex); } } @@ -193,29 +194,36 @@ @Override public String getAuthorizationID() { + if (!isComplete()) { + throw new IllegalStateException("authentication not complete"); + } return authzId; } @Override public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException { - throw new UnsupportedOperationException("Not supported yet."); + throw new IllegalStateException("Not supported yet."); } @Override public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException { - throw new UnsupportedOperationException("Not supported yet."); + throw new IllegalStateException("Not supported yet."); } @Override public Object getNegotiatedProperty(String propName) { - if (propName.equals(Sasl.QOP)) { - return "auth"; - } else if (propName.equals(NTLM_HOSTNAME)) { - return hostname; - } else { - return null; + if (!isComplete()) { + throw new IllegalStateException("authentication not complete"); + } + switch (propName) { + case Sasl.QOP: + return "auth"; + case NTLM_HOSTNAME: + return hostname; + default: + return null; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java --- a/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -29,8 +29,6 @@ import java.io.*; import java.util.Map; import java.util.StringTokenizer; -import java.security.AccessController; -import java.security.PrivilegedAction; import java.util.logging.Logger; import java.util.logging.Level; @@ -63,7 +61,8 @@ protected String myClassName; - protected AbstractSaslImpl(Map props, String className) throws SaslException { + protected AbstractSaslImpl(Map props, String className) + throws SaslException { myClassName = className; // Parse properties to set desired context options @@ -156,23 +155,23 @@ if (!completed) { throw new IllegalStateException("SASL authentication not completed"); } - - if (propName.equals(Sasl.QOP)) { - if (privacy) { - return "auth-conf"; - } else if (integrity) { - return "auth-int"; - } else { - return "auth"; - } - } else if (propName.equals(Sasl.MAX_BUFFER)) { - return Integer.toString(recvMaxBufSize); - } else if (propName.equals(Sasl.RAW_SEND_SIZE)) { - return Integer.toString(rawSendSize); - } else if (propName.equals(MAX_SEND_BUF)) { - return Integer.toString(sendMaxBufSize); - } else { - return null; + switch (propName) { + case Sasl.QOP: + if (privacy) { + return "auth-conf"; + } else if (integrity) { + return "auth-int"; + } else { + return "auth"; + } + case Sasl.MAX_BUFFER: + return Integer.toString(recvMaxBufSize); + case Sasl.RAW_SEND_SIZE: + return Integer.toString(rawSendSize); + case MAX_SEND_BUF: + return Integer.toString(sendMaxBufSize); + default: + return null; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java --- a/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/security/sasl/util/PolicyUtils.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -53,7 +53,7 @@ * @param props The security policy properties to check * @return true if passes; false if fails */ - public static boolean checkPolicy(int flags, Map props) { + public static boolean checkPolicy(int flags, Map props) { if (props == null) { return true; } @@ -93,7 +93,7 @@ * */ public static String[] filterMechs(String[] mechs, int[] policies, - Map props) { + Map props) { if (props == null) { return mechs.clone(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/com/sun/servicetag/SunConnection.java --- a/jdk/src/share/classes/com/sun/servicetag/SunConnection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/com/sun/servicetag/SunConnection.java Mon Aug 29 14:29:23 2011 -0700 @@ -101,10 +101,7 @@ return new URL(registerURL); } catch (MalformedURLException ex) { // should never reach here - InternalError x = - new InternalError(ex.getMessage()); - x.initCause(ex); - throw x; + throw new InternalError(ex.getMessage(), ex); } } @@ -171,9 +168,7 @@ try { BrowserSupport.browse(url.toURI()); } catch (URISyntaxException ex) { - InternalError x = new InternalError("Error in registering: " + ex.getMessage()); - x.initCause(ex); - throw x; + throw new InternalError("Error in registering: " + ex.getMessage(), ex); } catch (IllegalArgumentException ex) { if (Util.isVerbose()) { ex.printStackTrace(); @@ -232,9 +227,7 @@ return (returnCode == HttpURLConnection.HTTP_OK); } catch (MalformedURLException me) { // should never reach here - InternalError x = new InternalError("Error in registering: " + me.getMessage()); - x.initCause(me); - throw x; + throw new InternalError("Error in registering: " + me.getMessage(), me); } catch (Exception ioe) { // SocketTimeoutException, IOException or UnknownHostException if (Util.isVerbose()) { @@ -262,10 +255,9 @@ BrowserSupport.browse(registerPage.toURI()); } catch (FileNotFoundException ex) { // should never reach here - InternalError x = - new InternalError("Error in launching " + registerPage + ": " + ex.getMessage()); - x.initCause(ex); - throw x; + throw new InternalError( + "Error in launching " + registerPage + ": " + ex.getMessage() + , ex); } catch (IllegalArgumentException ex) { if (Util.isVerbose()) { ex.printStackTrace(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/io/BufferedReader.java --- a/jdk/src/share/classes/java/io/BufferedReader.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/io/BufferedReader.java Mon Aug 29 14:29:23 2011 -0700 @@ -514,9 +514,12 @@ synchronized (lock) { if (in == null) return; - in.close(); - in = null; - cb = null; + try { + in.close(); + } finally { + in = null; + cb = null; + } } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/io/BufferedWriter.java --- a/jdk/src/share/classes/java/io/BufferedWriter.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/io/BufferedWriter.java Mon Aug 29 14:29:23 2011 -0700 @@ -255,15 +255,15 @@ } } + @SuppressWarnings("try") public void close() throws IOException { synchronized (lock) { if (out == null) { return; } - try { + try (Writer w = out) { flushBuffer(); } finally { - out.close(); out = null; cb = null; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/io/Closeable.java --- a/jdk/src/share/classes/java/io/Closeable.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/io/Closeable.java Mon Aug 29 14:29:23 2011 -0700 @@ -42,6 +42,12 @@ * with it. If the stream is already closed then invoking this * method has no effect. * + *

As noted in {@link AutoCloseable#close()}, cases where the + * close may fail require careful attention. It is strongly advised + * to relinquish the underlying resources and to internally + * mark the {@code Closeable} as closed, prior to throwing + * the {@code IOException}. + * * @throws IOException if an I/O error occurs */ public void close() throws IOException; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/io/FilterOutputStream.java --- a/jdk/src/share/classes/java/io/FilterOutputStream.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/io/FilterOutputStream.java Mon Aug 29 14:29:23 2011 -0700 @@ -152,11 +152,10 @@ * @see java.io.FilterOutputStream#flush() * @see java.io.FilterOutputStream#out */ + @SuppressWarnings("try") public void close() throws IOException { - try { - flush(); - } catch (IOException ignored) { + try (OutputStream ostream = out) { + flush(); } - out.close(); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/AutoCloseable.java --- a/jdk/src/share/classes/java/lang/AutoCloseable.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/AutoCloseable.java Mon Aug 29 14:29:23 2011 -0700 @@ -43,6 +43,15 @@ * throw more specific exceptions, or to throw no exception at all * if the close operation cannot fail. * + *

Cases where the close operation may fail require careful + * attention by implementers. It is strongly advised to relinquish + * the underlying resources and to internally mark the + * resource as closed, prior to throwing the exception. The {@code + * close} method is unlikely to be invoked more than once and so + * this ensures that the resources are released in a timely manner. + * Furthermore it reduces problems that could arise when the resource + * wraps, or is wrapped, by another resource. + * *

Implementers of this interface are also strongly advised * to not have the {@code close} method throw {@link * InterruptedException}. diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/Integer.java --- a/jdk/src/share/classes/java/lang/Integer.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/Integer.java Mon Aug 29 14:29:23 2011 -0700 @@ -776,17 +776,17 @@ * Determines the integer value of the system property with the * specified name. * - *

The first argument is treated as the name of a system property. - * System properties are accessible through the - * {@link java.lang.System#getProperty(java.lang.String)} method. The + *

The first argument is treated as the name of a system + * property. System properties are accessible through the {@link + * java.lang.System#getProperty(java.lang.String)} method. The * string value of this property is then interpreted as an integer - * value and an {@code Integer} object representing this value is - * returned. Details of possible numeric formats can be found with - * the definition of {@code getProperty}. + * value using the grammar supported by {@link Integer#decode decode} and + * an {@code Integer} object representing this value is returned. * - *

If there is no property with the specified name, if the specified name - * is empty or {@code null}, or if the property does not have - * the correct numeric format, then {@code null} is returned. + *

If there is no property with the specified name, if the + * specified name is empty or {@code null}, or if the property + * does not have the correct numeric format, then {@code null} is + * returned. * *

In other words, this method returns an {@code Integer} * object equal to the value of: @@ -808,13 +808,12 @@ * Determines the integer value of the system property with the * specified name. * - *

The first argument is treated as the name of a system property. - * System properties are accessible through the {@link + *

The first argument is treated as the name of a system + * property. System properties are accessible through the {@link * java.lang.System#getProperty(java.lang.String)} method. The * string value of this property is then interpreted as an integer - * value and an {@code Integer} object representing this value is - * returned. Details of possible numeric formats can be found with - * the definition of {@code getProperty}. + * value using the grammar supported by {@link Integer#decode decode} and + * an {@code Integer} object representing this value is returned. * *

The second argument is the default value. An {@code Integer} object * that represents the value of the second argument is returned if there @@ -856,9 +855,9 @@ * system property. System properties are accessible through the * {@link java.lang.System#getProperty(java.lang.String)} method. * The string value of this property is then interpreted as an - * integer value, as per the {@code Integer.decode} method, + * integer value, as per the {@link Integer#decode decode} method, * and an {@code Integer} object representing this value is - * returned. + * returned; in summary: * *

  • If the property value begins with the two ASCII characters * {@code 0x} or the ASCII character {@code #}, not @@ -882,16 +881,14 @@ * @param nm property name. * @param val default value. * @return the {@code Integer} value of the property. - * @see java.lang.System#getProperty(java.lang.String) - * @see java.lang.System#getProperty(java.lang.String, java.lang.String) - * @see java.lang.Integer#decode + * @see System#getProperty(java.lang.String) + * @see System#getProperty(java.lang.String, java.lang.String) */ public static Integer getInteger(String nm, Integer val) { String v = null; try { v = System.getProperty(nm); - } catch (IllegalArgumentException e) { - } catch (NullPointerException e) { + } catch (IllegalArgumentException | NullPointerException e) { } if (v != null) { try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/InternalError.java --- a/jdk/src/share/classes/java/lang/InternalError.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/InternalError.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2011, 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 @@ -32,8 +32,7 @@ * @author unascribed * @since JDK1.0 */ -public -class InternalError extends VirtualMachineError { +public class InternalError extends VirtualMachineError { private static final long serialVersionUID = -9062593416125562365L; /** @@ -47,9 +46,45 @@ * Constructs an InternalError with the specified * detail message. * - * @param s the detail message. + * @param message the detail message. + */ + public InternalError(String message) { + super(message); + } + + + /** + * Constructs an {@code InternalError} with the specified detail + * message and cause.

    Note that the detail message associated + * with {@code cause} is not automatically incorporated in + * this error's detail message. + * + * @param message the detail message (which is saved for later retrieval + * by the {@link #getMessage()} method). + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method). (A {@code null} value is + * permitted, and indicates that the cause is nonexistent or + * unknown.) + * @since 1.8 */ - public InternalError(String s) { - super(s); + public InternalError(String message, Throwable cause) { + super(message, cause); } + + /** + * Constructs an {@code InternalError} with the specified cause + * and a detail message of {@code (cause==null ? null : + * cause.toString())} (which typically contains the class and + * detail message of {@code cause}). + * + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method). (A {@code null} value is + * permitted, and indicates that the cause is nonexistent or + * unknown.) + * @since 1.8 + */ + public InternalError(Throwable cause) { + super(cause); + } + } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/Long.java --- a/jdk/src/share/classes/java/lang/Long.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/Long.java Mon Aug 29 14:29:23 2011 -0700 @@ -806,22 +806,20 @@ * Determines the {@code long} value of the system property * with the specified name. * - *

    The first argument is treated as the name of a system property. - * System properties are accessible through the {@link + *

    The first argument is treated as the name of a system + * property. System properties are accessible through the {@link * java.lang.System#getProperty(java.lang.String)} method. The - * string value of this property is then interpreted as a - * {@code long} value and a {@code Long} object - * representing this value is returned. Details of possible - * numeric formats can be found with the definition of - * {@code getProperty}. + * string value of this property is then interpreted as a {@code + * long} value using the grammar supported by {@link Long#decode decode} + * and a {@code Long} object representing this value is returned. * *

    If there is no property with the specified name, if the - * specified name is empty or {@code null}, or if the - * property does not have the correct numeric format, then - * {@code null} is returned. + * specified name is empty or {@code null}, or if the property + * does not have the correct numeric format, then {@code null} is + * returned. * - *

    In other words, this method returns a {@code Long} object equal to - * the value of: + *

    In other words, this method returns a {@code Long} object + * equal to the value of: * *

    * {@code getLong(nm, null)} @@ -840,14 +838,12 @@ * Determines the {@code long} value of the system property * with the specified name. * - *

    The first argument is treated as the name of a system property. - * System properties are accessible through the {@link + *

    The first argument is treated as the name of a system + * property. System properties are accessible through the {@link * java.lang.System#getProperty(java.lang.String)} method. The - * string value of this property is then interpreted as a - * {@code long} value and a {@code Long} object - * representing this value is returned. Details of possible - * numeric formats can be found with the definition of - * {@code getProperty}. + * string value of this property is then interpreted as a {@code + * long} value using the grammar supported by {@link Long#decode decode} + * and a {@code Long} object representing this value is returned. * *

    The second argument is the default value. A {@code Long} object * that represents the value of the second argument is returned if there @@ -889,8 +885,8 @@ * the {@link java.lang.System#getProperty(java.lang.String)} * method. The string value of this property is then interpreted * as a {@code long} value, as per the - * {@code Long.decode} method, and a {@code Long} object - * representing this value is returned. + * {@link Long#decode decode} method, and a {@code Long} object + * representing this value is returned; in summary: * *

      *
    • If the property value begins with the two ASCII characters @@ -921,16 +917,14 @@ * @param nm property name. * @param val default value. * @return the {@code Long} value of the property. - * @see java.lang.System#getProperty(java.lang.String) - * @see java.lang.System#getProperty(java.lang.String, java.lang.String) - * @see java.lang.Long#decode + * @see System#getProperty(java.lang.String) + * @see System#getProperty(java.lang.String, java.lang.String) */ public static Long getLong(String nm, Long val) { String v = null; try { v = System.getProperty(nm); - } catch (IllegalArgumentException e) { - } catch (NullPointerException e) { + } catch (IllegalArgumentException | NullPointerException e) { } if (v != null) { try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/System.java --- a/jdk/src/share/classes/java/lang/System.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/System.java Mon Aug 29 14:29:23 2011 -0700 @@ -632,6 +632,7 @@ * *

      On UNIX systems, it returns {@code "\n"}; on Microsoft * Windows systems it returns {@code "\r\n"}. + * @since 1.7 */ public static String lineSeparator() { return lineSeparator; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/VirtualMachineError.java --- a/jdk/src/share/classes/java/lang/VirtualMachineError.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/VirtualMachineError.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,9 +1,9 @@ /* - * Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2011, 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 + * under the terms of the GNU General Public License version 2 only, asP * 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. @@ -33,8 +33,9 @@ * @author Frank Yellin * @since JDK1.0 */ -abstract public -class VirtualMachineError extends Error { +abstract public class VirtualMachineError extends Error { + private static final long serialVersionUID = 4161983926571568670L; + /** * Constructs a VirtualMachineError with no detail message. */ @@ -46,9 +47,43 @@ * Constructs a VirtualMachineError with the specified * detail message. * - * @param s the detail message. + * @param message the detail message. */ - public VirtualMachineError(String s) { - super(s); + public VirtualMachineError(String message) { + super(message); + } + + /** + * Constructs a {@code VirtualMachineError} with the specified + * detail message and cause.

      Note that the detail message + * associated with {@code cause} is not automatically + * incorporated in this error's detail message. + * + * @param message the detail message (which is saved for later retrieval + * by the {@link #getMessage()} method). + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method). (A {@code null} value is + * permitted, and indicates that the cause is nonexistent or + * unknown.) + * @since 1.8 + */ + public VirtualMachineError(String message, Throwable cause) { + super(message, cause); + } + + /** + * Constructs an a {@code VirtualMachineError} with the specified + * cause and a detail message of {@code (cause==null ? null : + * cause.toString())} (which typically contains the class and + * detail message of {@code cause}). + * + * @param cause the cause (which is saved for later retrieval by the + * {@link #getCause()} method). (A {@code null} value is + * permitted, and indicates that the cause is nonexistent or + * unknown.) + * @since 1.8 + */ + public VirtualMachineError(Throwable cause) { + super(cause); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Array.java --- a/jdk/src/share/classes/java/lang/reflect/Array.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Array.java Mon Aug 29 14:29:23 2011 -0700 @@ -474,10 +474,10 @@ * Private */ - private static native Object newArray(Class componentType, int length) + private static native Object newArray(Class componentType, int length) throws NegativeArraySizeException; - private static native Object multiNewArray(Class componentType, + private static native Object multiNewArray(Class componentType, int[] dimensions) throws IllegalArgumentException, NegativeArraySizeException; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Constructor.java --- a/jdk/src/share/classes/java/lang/reflect/Constructor.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Constructor.java Mon Aug 29 14:29:23 2011 -0700 @@ -27,14 +27,12 @@ import sun.reflect.ConstructorAccessor; import sun.reflect.Reflection; -import sun.reflect.annotation.AnnotationParser; import sun.reflect.generics.repository.ConstructorRepository; import sun.reflect.generics.factory.CoreReflectionFactory; import sun.reflect.generics.factory.GenericsFactory; import sun.reflect.generics.scope.ConstructorScope; import java.lang.annotation.Annotation; import java.lang.annotation.AnnotationFormatError; -import java.lang.reflect.Modifier; /** * {@code Constructor} provides information about, and access to, a single @@ -184,6 +182,7 @@ * @since 1.5 */ @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) public TypeVariable>[] getTypeParameters() { if (getSignature() != null) { return (TypeVariable>[])getGenericInfo().getTypeParameters(); @@ -197,7 +196,7 @@ */ @Override public Class[] getParameterTypes() { - return (Class[]) parameterTypes.clone(); + return parameterTypes.clone(); } /** @@ -217,7 +216,7 @@ */ @Override public Class[] getExceptionTypes() { - return (Class[])exceptionTypes.clone(); + return exceptionTypes.clone(); } @@ -392,7 +391,9 @@ if (ca == null) { ca = acquireConstructorAccessor(); } - return (T) ca.newInstance(initargs); + @SuppressWarnings("unchecked") + T inst = (T) ca.newInstance(initargs); + return inst; } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Executable.java --- a/jdk/src/share/classes/java/lang/reflect/Executable.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Executable.java Mon Aug 29 14:29:23 2011 -0700 @@ -29,9 +29,6 @@ import java.util.Map; import sun.reflect.annotation.AnnotationParser; import sun.reflect.generics.repository.ConstructorRepository; -import sun.reflect.generics.factory.CoreReflectionFactory; -import sun.reflect.generics.factory.GenericsFactory; -import sun.reflect.generics.scope.ConstructorScope; /** * A shared superclass for the common functionality of {@link Method} @@ -366,8 +363,8 @@ * {@inheritDoc} * @throws NullPointerException {@inheritDoc} */ - @SuppressWarnings("unchecked") - public T getAnnotation(Class annotationClass) { + @SuppressWarnings("unchecked") + public T getAnnotation(Class annotationClass) { if (annotationClass == null) throw new NullPointerException(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Field.java --- a/jdk/src/share/classes/java/lang/reflect/Field.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Field.java Mon Aug 29 14:29:23 2011 -0700 @@ -1012,6 +1012,7 @@ * @throws NullPointerException {@inheritDoc} * @since 1.5 */ + @SuppressWarnings("unchecked") public T getAnnotation(Class annotationClass) { if (annotationClass == null) throw new NullPointerException(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Method.java --- a/jdk/src/share/classes/java/lang/reflect/Method.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Method.java Mon Aug 29 14:29:23 2011 -0700 @@ -194,6 +194,7 @@ * @since 1.5 */ @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) public TypeVariable[] getTypeParameters() { if (getGenericSignature() != null) return (TypeVariable[])getGenericInfo().getTypeParameters(); @@ -246,7 +247,7 @@ */ @Override public Class[] getParameterTypes() { - return (Class[]) parameterTypes.clone(); + return parameterTypes.clone(); } /** @@ -266,7 +267,7 @@ */ @Override public Class[] getExceptionTypes() { - return (Class[]) exceptionTypes.clone(); + return exceptionTypes.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/lang/reflect/Proxy.java --- a/jdk/src/share/classes/java/lang/reflect/Proxy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/lang/reflect/Proxy.java Mon Aug 29 14:29:23 2011 -0700 @@ -604,15 +604,12 @@ * Invoke its constructor with the designated invocation handler. */ try { - Constructor cons = cl.getConstructor(constructorParams); + Constructor cons = cl.getConstructor(constructorParams); return cons.newInstance(new Object[] { h }); - } catch (NoSuchMethodException e) { - throw new InternalError(e.toString()); - } catch (IllegalAccessException e) { - throw new InternalError(e.toString()); - } catch (InstantiationException e) { - throw new InternalError(e.toString()); - } catch (InvocationTargetException e) { + } catch (NoSuchMethodException | + IllegalAccessException | + InstantiationException | + InvocationTargetException e) { throw new InternalError(e.toString()); } } @@ -661,6 +658,6 @@ return p.h; } - private static native Class defineClass0(ClassLoader loader, String name, - byte[] b, int off, int len); + private static native Class defineClass0(ClassLoader loader, String name, + byte[] b, int off, int len); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/net/HttpCookie.java --- a/jdk/src/share/classes/java/net/HttpCookie.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/net/HttpCookie.java Mon Aug 29 14:29:23 2011 -0700 @@ -748,10 +748,14 @@ && (embeddedDotInDomain == -1 || embeddedDotInDomain == domain.length() - 1)) return false; - // if the host name contains no dot and the domain name is .local + // if the host name contains no dot and the domain name + // is .local or host.local int firstDotInHost = host.indexOf('.'); - if (firstDotInHost == -1 && isLocalDomain) + if (firstDotInHost == -1 && + (isLocalDomain || + domain.equalsIgnoreCase(host + ".local"))) { return true; + } int domainLength = domain.length(); int lengthDiff = host.length() - domainLength; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/nio/Bits.java --- a/jdk/src/share/classes/java/nio/Bits.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/nio/Bits.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -699,6 +699,14 @@ } }; } + @Override + public ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob) { + return new DirectByteBuffer(addr, cap, ob); + } + @Override + public void truncate(Buffer buf) { + buf.truncate(); + } }); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/nio/Buffer.java --- a/jdk/src/share/classes/java/nio/Buffer.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/nio/Buffer.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -543,6 +543,13 @@ return mark; } + final void truncate() { // package-private + mark = -1; + position = 0; + limit = 0; + capacity = 0; + } + final void discardMark() { // package-private mark = -1; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template --- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -58,12 +58,13 @@ // NOTE: moved up to Buffer.java for speed in JNI GetDirectBufferAddress // protected long address; - // If this buffer is a view of another buffer then we keep a reference to - // that buffer so that its memory isn't freed before we're done with it - protected Object viewedBuffer = null; + // An object attached to this buffer. If this buffer is a view of another + // buffer then we use this field to keep a reference to that buffer to + // ensure that its memory isn't freed before we are done with it. + private final Object att; - public Object viewedBuffer() { - return viewedBuffer; + public Object attachment() { + return att; } #if[byte] @@ -136,6 +137,7 @@ address = base; } cleaner = Cleaner.create(this, new Deallocator(base, size, cap)); + att = null; #else[rw] super(cap); #end[rw] @@ -143,12 +145,24 @@ #if[rw] + // Invoked to construct a direct ByteBuffer referring to the block of + // memory. A given arbitrary object may also be attached to the buffer. + // + Direct$Type$Buffer(long addr, int cap, Object ob) { + super(-1, 0, cap, cap); + address = addr; + cleaner = null; + att = ob; + } + + // Invoked only by JNI: NewDirectByteBuffer(void*, long) // private Direct$Type$Buffer(long addr, int cap) { super(-1, 0, cap, cap); address = addr; cleaner = null; + att = null; } #end[rw] @@ -162,8 +176,8 @@ #if[rw] super(-1, 0, cap, cap, fd); address = addr; - viewedBuffer = null; cleaner = Cleaner.create(this, unmapper); + att = null; #else[rw] super(cap, addr, fd, unmapper); #end[rw] @@ -180,10 +194,10 @@ #if[rw] super(mark, pos, lim, cap); address = db.address() + off; - viewedBuffer = db; #if[byte] cleaner = null; #end[byte] + att = db; #else[rw] super(db, mark, pos, lim, cap, off); #end[rw] diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/AccessControlContext.java --- a/jdk/src/share/classes/java/security/AccessControlContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/AccessControlContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -29,8 +29,6 @@ import java.util.List; import sun.security.util.Debug; import sun.security.util.SecurityConstants; -import sun.misc.JavaSecurityAccess; -import sun.misc.SharedSecrets; /** @@ -312,7 +310,7 @@ Debug.isOn("permission=" + perm.getClass().getCanonicalName()); if (dumpDebug && Debug.isOn("stack")) { - Thread.currentThread().dumpStack(); + Thread.dumpStack(); } if (dumpDebug && Debug.isOn("domain")) { @@ -353,7 +351,7 @@ if (!dumpDebug) { debug.println("access denied " + perm); } - Thread.currentThread().dumpStack(); + Thread.dumpStack(); final ProtectionDomain pd = context[i]; final Debug db = debug; AccessController.doPrivileged (new PrivilegedAction() { @@ -561,7 +559,7 @@ match = (that.context[j] == null); } } else { - Class thisPdClass = thisPd.getClass(); + Class thisPdClass = thisPd.getClass(); ProtectionDomain thatPd; for (int j = 0; (j < that.context.length) && !match; j++) { thatPd = that.context[j]; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/AccessController.java --- a/jdk/src/share/classes/java/security/AccessController.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/AccessController.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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,7 +406,7 @@ * callerClass[2] = AccessController.doPrivileged * callerClass[3] = caller */ - final Class callerClass = sun.reflect.Reflection.getCallerClass(3); + final Class callerClass = sun.reflect.Reflection.getCallerClass(3); ProtectionDomain callerPd = doPrivileged (new PrivilegedAction() { public ProtectionDomain run() { @@ -538,7 +538,7 @@ } if (dumpDebug && Debug.isOn("stack")) { - Thread.currentThread().dumpStack(); + Thread.dumpStack(); } if (dumpDebug && Debug.isOn("domain")) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/BasicPermission.java --- a/jdk/src/share/classes/java/security/BasicPermission.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/BasicPermission.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,6 @@ package java.security; -import java.security.*; import java.util.Enumeration; import java.util.Map; import java.util.HashMap; @@ -333,14 +332,14 @@ * * @see #serialPersistentFields */ - private Class permClass; + private Class permClass; /** * Create an empty BasicPermissionCollection object. * */ - public BasicPermissionCollection(Class clazz) { + public BasicPermissionCollection(Class clazz) { perms = new HashMap(11); all_allowed = false; permClass = clazz; @@ -542,6 +541,9 @@ ObjectInputStream.GetField gfields = in.readFields(); // Get permissions + // writeObject writes a Hashtable for the + // permissions key, so this cast is safe, unless the data is corrupt. + @SuppressWarnings("unchecked") Hashtable permissions = (Hashtable)gfields.get("permissions", null); perms = new HashMap(permissions.size()*2); @@ -551,7 +553,7 @@ all_allowed = gfields.get("all_allowed", false); // Get permClass - permClass = (Class) gfields.get("permClass", null); + permClass = (Class) gfields.get("permClass", null); if (permClass == null) { // set permClass diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/KeyRep.java --- a/jdk/src/share/classes/java/security/KeyRep.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/KeyRep.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,6 +26,7 @@ package java.security; import java.io.*; +import java.util.Locale; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; @@ -137,7 +138,7 @@ this.type = type; this.algorithm = algorithm; - this.format = format.toUpperCase(); + this.format = format.toUpperCase(Locale.ENGLISH); this.encoded = encoded.clone(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/Permissions.java --- a/jdk/src/share/classes/java/security/Permissions.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/Permissions.java Mon Aug 29 14:29:23 2011 -0700 @@ -31,7 +31,6 @@ import java.util.Map; import java.util.HashMap; import java.util.List; -import java.util.ArrayList; import java.util.Iterator; import java.util.Collections; import java.io.Serializable; @@ -238,7 +237,7 @@ */ private PermissionCollection getPermissionCollection(Permission p, boolean createEmpty) { - Class c = p.getClass(); + Class c = p.getClass(); PermissionCollection pc = permsMap.get(c); @@ -390,6 +389,9 @@ allPermission = (PermissionCollection) gfields.get("allPermission", null); // Get permissions + // writeObject writes a Hashtable, PermissionCollection> for + // the perms key, so this cast is safe, unless the data is corrupt. + @SuppressWarnings("unchecked") Hashtable, PermissionCollection> perms = (Hashtable, PermissionCollection>)gfields.get("perms", null); permsMap = new HashMap, PermissionCollection>(perms.size()*2); @@ -590,6 +592,9 @@ ObjectInputStream.GetField gfields = in.readFields(); // Get permissions + // writeObject writes a Hashtable, PermissionCollection> for + // the perms key, so this cast is safe, unless the data is corrupt. + @SuppressWarnings("unchecked") Hashtable perms = (Hashtable)gfields.get("perms", null); permsMap = new HashMap(perms.size()*2); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/Policy.java --- a/jdk/src/share/classes/java/security/Policy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/Policy.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,16 +26,7 @@ package java.security; -import java.io.*; -import java.lang.RuntimePermission; -import java.lang.reflect.*; -import java.net.MalformedURLException; -import java.net.URL; import java.util.Enumeration; -import java.util.Hashtable; -import java.util.PropertyPermission; -import java.util.StringTokenizer; -import java.util.Vector; import java.util.WeakHashMap; import sun.security.jca.GetInstance; import sun.security.util.Debug; @@ -786,6 +777,8 @@ private static class UnsupportedEmptyCollection extends PermissionCollection { + private static final long serialVersionUID = -8492269157353014774L; + private Permissions perms; /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/ProtectionDomain.java --- a/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Aug 29 14:29:23 2011 -0700 @@ -33,7 +33,6 @@ import java.util.WeakHashMap; import sun.misc.JavaSecurityProtectionDomainAccess; import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache; -import sun.misc.SharedSecrets; import sun.security.util.Debug; import sun.security.util.SecurityConstants; import sun.misc.JavaSecurityAccess; @@ -403,7 +402,7 @@ e = permissions.elements(); // domain vs policy while (e.hasMoreElements()) { Permission pdp = e.nextElement(); - Class pdpClass = pdp.getClass(); + Class pdpClass = pdp.getClass(); String pdpActions = pdp.getActions(); String pdpName = pdp.getName(); for (int i = 0; i < plVector.size(); i++) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/Provider.java --- a/jdk/src/share/classes/java/security/Provider.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/Provider.java Mon Aug 29 14:29:23 2011 -0700 @@ -31,9 +31,6 @@ import java.lang.ref.*; import java.lang.reflect.*; -import java.security.cert.CertStoreParameters; -import javax.security.auth.login.Configuration; - /** * This class represents a "provider" for the * Java Security API, where a provider implements some or all parts of @@ -453,8 +450,8 @@ * Internal method to be called AFTER the security check has been * performed. */ - private void implPutAll(Map t) { - for (Map.Entry e : ((Map)t).entrySet()) { + private void implPutAll(Map t) { + for (Map.Entry e : t.entrySet()) { implPut(e.getKey(), e.getValue()); } } @@ -562,9 +559,9 @@ * occur if the legacy properties are inconsistent or incomplete. */ private void removeInvalidServices(Map map) { - for (Iterator t = map.entrySet().iterator(); t.hasNext(); ) { - Map.Entry entry = (Map.Entry)t.next(); - Service s = (Service)entry.getValue(); + for (Iterator> t = + map.entrySet().iterator(); t.hasNext(); ) { + Service s = t.next().getValue(); if (s.isValid() == false) { t.remove(); } @@ -918,15 +915,15 @@ final String name; final boolean supportsParameter; final String constructorParameterClassName; - private volatile Class constructorParameterClass; + private volatile Class constructorParameterClass; EngineDescription(String name, boolean sp, String paramName) { this.name = name; this.supportsParameter = sp; this.constructorParameterClassName = paramName; } - Class getConstructorParameterClass() throws ClassNotFoundException { - Class clazz = constructorParameterClass; + Class getConstructorParameterClass() throws ClassNotFoundException { + Class clazz = constructorParameterClass; if (clazz == null) { clazz = Class.forName(constructorParameterClassName); constructorParameterClass = clazz; @@ -1038,7 +1035,7 @@ private Map attributes; // Reference to the cached implementation Class object - private volatile Reference classRef; + private volatile Reference> classRef; // flag indicating whether this service has its attributes for // supportedKeyFormats or supportedKeyClasses set @@ -1055,7 +1052,7 @@ // whether this service has been registered with the Provider private boolean registered; - private static final Class[] CLASS0 = new Class[0]; + private static final Class[] CLASS0 = new Class[0]; // this constructor and these methods are used for parsing // the legacy string properties. @@ -1234,12 +1231,12 @@ ("constructorParameter not used with " + type + " engines"); } - Class clazz = getImplClass(); + Class clazz = getImplClass(); return clazz.newInstance(); } else { - Class paramClass = cap.getConstructorParameterClass(); + Class paramClass = cap.getConstructorParameterClass(); if (constructorParameter != null) { - Class argClass = constructorParameter.getClass(); + Class argClass = constructorParameter.getClass(); if (paramClass.isAssignableFrom(argClass) == false) { throw new InvalidParameterException ("constructorParameter must be instanceof " @@ -1247,8 +1244,8 @@ + " for engine type " + type); } } - Class clazz = getImplClass(); - Constructor cons = clazz.getConstructor(paramClass); + Class clazz = getImplClass(); + Constructor cons = clazz.getConstructor(paramClass); return cons.newInstance(constructorParameter); } } catch (NoSuchAlgorithmException e) { @@ -1267,10 +1264,10 @@ } // return the implementation Class object for this service - private Class getImplClass() throws NoSuchAlgorithmException { + private Class getImplClass() throws NoSuchAlgorithmException { try { - Reference ref = classRef; - Class clazz = (ref == null) ? null : ref.get(); + Reference> ref = classRef; + Class clazz = (ref == null) ? null : ref.get(); if (clazz == null) { ClassLoader cl = provider.getClass().getClassLoader(); if (cl == null) { @@ -1278,7 +1275,7 @@ } else { clazz = cl.loadClass(className); } - classRef = new WeakReference(clazz); + classRef = new WeakReference>(clazz); } return clazz; } catch (ClassNotFoundException e) { @@ -1295,18 +1292,18 @@ */ private Object newInstanceGeneric(Object constructorParameter) throws Exception { - Class clazz = getImplClass(); + Class clazz = getImplClass(); if (constructorParameter == null) { Object o = clazz.newInstance(); return o; } - Class argClass = constructorParameter.getClass(); + Class argClass = constructorParameter.getClass(); Constructor[] cons = clazz.getConstructors(); // find first public constructor that can take the // argument as parameter for (int i = 0; i < cons.length; i++) { - Constructor con = cons[i]; - Class[] paramTypes = con.getParameterTypes(); + Constructor con = cons[i]; + Class[] paramTypes = con.getParameterTypes(); if (paramTypes.length != 1) { continue; } @@ -1394,10 +1391,10 @@ s = getAttribute("SupportedKeyClasses"); if (s != null) { String[] classNames = s.split("\\|"); - List classList = + List> classList = new ArrayList<>(classNames.length); for (String className : classNames) { - Class clazz = getKeyClass(className); + Class clazz = getKeyClass(className); if (clazz != null) { classList.add(clazz); } @@ -1414,7 +1411,7 @@ } // get the key class object of the specified name - private Class getKeyClass(String name) { + private Class getKeyClass(String name) { try { return Class.forName(name); } catch (ClassNotFoundException e) { @@ -1451,8 +1448,8 @@ if (supportedClasses == null) { return false; } - Class keyClass = key.getClass(); - for (Class clazz : supportedClasses) { + Class keyClass = key.getClass(); + for (Class clazz : supportedClasses) { if (clazz.isAssignableFrom(keyClass)) { return true; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/Security.java --- a/jdk/src/share/classes/java/security/Security.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/Security.java Mon Aug 29 14:29:23 2011 -0700 @@ -33,8 +33,6 @@ import sun.security.util.Debug; import sun.security.util.PropertyExpander; -import java.security.Provider.Service; - import sun.security.jca.*; /** @@ -660,15 +658,16 @@ } // Map containing cached Spi Class objects of the specified type - private static final Map spiMap = new ConcurrentHashMap<>(); + private static final Map> spiMap = + new ConcurrentHashMap<>(); /** * Return the Class object for the given engine type * (e.g. "MessageDigest"). Works for Spis in the java.security package * only. */ - private static Class getSpiClass(String type) { - Class clazz = spiMap.get(type); + private static Class getSpiClass(String type) { + Class clazz = spiMap.get(type); if (clazz != null) { return clazz; } @@ -1078,7 +1077,7 @@ if ((serviceName == null) || (serviceName.length() == 0) || (serviceName.endsWith("."))) { - return Collections.EMPTY_SET; + return Collections.emptySet(); } HashSet result = new HashSet<>(); @@ -1088,8 +1087,10 @@ // Check the keys for each provider. for (Enumeration e = providers[i].keys(); e.hasMoreElements(); ) { - String currentKey = ((String)e.nextElement()).toUpperCase(); - if (currentKey.startsWith(serviceName.toUpperCase())) { + String currentKey = + ((String)e.nextElement()).toUpperCase(Locale.ENGLISH); + if (currentKey.startsWith( + serviceName.toUpperCase(Locale.ENGLISH))) { // We should skip the currentKey if it contains a // whitespace. The reason is: such an entry in the // provider property contains attributes for the @@ -1097,7 +1098,8 @@ // in entries which lead to the implementation // classes. if (currentKey.indexOf(" ") < 0) { - result.add(currentKey.substring(serviceName.length() + 1)); + result.add(currentKey.substring( + serviceName.length() + 1)); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/UnresolvedPermission.java --- a/jdk/src/share/classes/java/security/UnresolvedPermission.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/UnresolvedPermission.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,9 +28,7 @@ import java.io.IOException; import java.io.ByteArrayInputStream; import java.util.ArrayList; -import java.util.Enumeration; import java.util.Hashtable; -import java.util.Vector; import java.lang.reflect.*; import java.security.cert.*; @@ -247,19 +245,19 @@ } } try { - Class pc = p.getClass(); + Class pc = p.getClass(); if (name == null && actions == null) { try { - Constructor c = pc.getConstructor(PARAMS0); + Constructor c = pc.getConstructor(PARAMS0); return (Permission)c.newInstance(new Object[] {}); } catch (NoSuchMethodException ne) { try { - Constructor c = pc.getConstructor(PARAMS1); + Constructor c = pc.getConstructor(PARAMS1); return (Permission) c.newInstance( new Object[] { name}); } catch (NoSuchMethodException ne1) { - Constructor c = pc.getConstructor(PARAMS2); + Constructor c = pc.getConstructor(PARAMS2); return (Permission) c.newInstance( new Object[] { name, actions }); } @@ -267,16 +265,16 @@ } else { if (name != null && actions == null) { try { - Constructor c = pc.getConstructor(PARAMS1); + Constructor c = pc.getConstructor(PARAMS1); return (Permission) c.newInstance( new Object[] { name}); } catch (NoSuchMethodException ne) { - Constructor c = pc.getConstructor(PARAMS2); + Constructor c = pc.getConstructor(PARAMS2); return (Permission) c.newInstance( new Object[] { name, actions }); } } else { - Constructor c = pc.getConstructor(PARAMS2); + Constructor c = pc.getConstructor(PARAMS2); return (Permission) c.newInstance( new Object[] { name, actions }); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java --- a/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/UnresolvedPermissionCollection.java Mon Aug 29 14:29:23 2011 -0700 @@ -197,8 +197,12 @@ ObjectInputStream.GetField gfields = in.readFields(); // Get permissions + @SuppressWarnings("unchecked") + // writeObject writes a Hashtable> + // for the permissions key, so this cast is safe, unless the data is corrupt. Hashtable> permissions = - (Hashtable>)gfields.get("permissions", null); + (Hashtable>) + gfields.get("permissions", null); perms = new HashMap>(permissions.size()*2); // Convert each entry (Vector) into a List diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/cert/CertificateRevokedException.java --- a/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/cert/CertificateRevokedException.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -32,7 +32,6 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import javax.security.auth.x500.X500Principal; import sun.security.util.ObjectIdentifier; @@ -95,7 +94,7 @@ this.revocationDate = new Date(revocationDate.getTime()); this.reason = reason; this.authority = authority; - this.extensions = new HashMap(extensions); + this.extensions = new HashMap(extensions); } /** @@ -148,8 +147,7 @@ return null; } else { try { - Date invalidity = - (Date) InvalidityDateExtension.toImpl(ext).get("DATE"); + Date invalidity = InvalidityDateExtension.toImpl(ext).get("DATE"); return new Date(invalidity.getTime()); } catch (IOException ioe) { return null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/cert/X509CRLSelector.java --- a/jdk/src/share/classes/java/security/cert/X509CRLSelector.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/cert/X509CRLSelector.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -632,7 +632,7 @@ byte[] encoded = in.getOctetString(); CRLNumberExtension crlNumExt = new CRLNumberExtension(Boolean.FALSE, encoded); - crlNum = (BigInteger)crlNumExt.get(CRLNumberExtension.NUMBER); + crlNum = crlNumExt.get(CRLNumberExtension.NUMBER); } catch (IOException ex) { if (debug != null) { debug.println("X509CRLSelector.match: exception in " diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/security/cert/X509CertSelector.java --- a/jdk/src/share/classes/java/security/cert/X509CertSelector.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/security/cert/X509CertSelector.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -277,7 +277,7 @@ try { issuer = (issuerDN == null ? null : new X500Principal(issuerDN)); } catch (IllegalArgumentException e) { - throw (IOException)new IOException("Invalid name").initCause(e); + throw new IOException("Invalid name", e); } } @@ -341,7 +341,7 @@ try { subject = (subjectDN == null ? null : new X500Principal(subjectDN)); } catch (IllegalArgumentException e) { - throw (IOException)new IOException("Invalid name").initCause(e); + throw new IOException("Invalid name", e); } } @@ -872,7 +872,7 @@ * @param object2 a Collection containing the second object to compare * @return true if the objects are equal, false otherwise */ - static boolean equalNames(Collection object1, Collection object2) { + static boolean equalNames(Collection object1, Collection object2) { if ((object1 == null) || (object2 == null)) { return object1 == object2; } @@ -1672,19 +1672,15 @@ private static Set> cloneAndCheckNames(Collection> names) throws IOException { // Copy the Lists and Collection Set> namesCopy = new HashSet>(); - Iterator> i = names.iterator(); - while (i.hasNext()) { - Object o = i.next(); - if (!(o instanceof List)) { - throw new IOException("expected a List"); - } - namesCopy.add(new ArrayList((List)o)); + for (List o : names) + { + namesCopy.add(new ArrayList(o)); } // Check the contents of the Lists and clone any byte arrays - i = namesCopy.iterator(); - while (i.hasNext()) { - List nameList = (List)i.next(); + for (List list : namesCopy) { + @SuppressWarnings("unchecked") // See javadoc for parameter "names". + List nameList = (List)list; if (nameList.size() != 2) { throw new IOException("name list size not 2"); } @@ -2184,8 +2180,7 @@ if (debug != null) { String time = "n/a"; try { - Date notAfter = - (Date)ext.get(PrivateKeyUsageExtension.NOT_AFTER); + Date notAfter = ext.get(PrivateKeyUsageExtension.NOT_AFTER); time = notAfter.toString(); } catch (CertificateException ex) { // not able to retrieve notAfter value @@ -2201,8 +2196,7 @@ if (debug != null) { String time = "n/a"; try { - Date notBefore = (Date) - ext.get(PrivateKeyUsageExtension.NOT_BEFORE); + Date notBefore = ext.get(PrivateKeyUsageExtension.NOT_BEFORE); time = notBefore.toString(); } catch (CertificateException ex) { // not able to retrieve notBefore value @@ -2214,14 +2208,6 @@ e2.printStackTrace(); } return false; - } catch (CertificateException e3) { - if (debug != null) { - debug.println("X509CertSelector.match: CertificateException " - + "in private key usage check; X509CertSelector: " - + this.toString()); - e3.printStackTrace(); - } - return false; } catch (IOException e4) { if (debug != null) { debug.println("X509CertSelector.match: IOException in " @@ -2252,7 +2238,7 @@ + subjectPublicKeyAlgID + ", xcert subjectPublicKeyAlgID = " + algID.getOID()); } - if (!subjectPublicKeyAlgID.equals(algID.getOID())) { + if (!subjectPublicKeyAlgID.equals((Object)algID.getOID())) { if (debug != null) { debug.println("X509CertSelector.match: " + "subject public key alg IDs don't match"); @@ -2301,7 +2287,7 @@ EXTENDED_KEY_USAGE_ID); if (ext != null) { Vector certKeyPurposeVector = - (Vector)ext.get(ExtendedKeyUsageExtension.USAGES); + ext.get(ExtendedKeyUsageExtension.USAGES); if (!certKeyPurposeVector.contains(ANY_EXTENDED_KEY_USAGE) && !certKeyPurposeVector.containsAll(keyPurposeOIDSet)) { if (debug != null) { @@ -2337,8 +2323,8 @@ } return false; } - GeneralNames certNames = (GeneralNames) - sanExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME); + GeneralNames certNames = + sanExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME); Iterator i = subjectAlternativeGeneralNames.iterator(); while (i.hasNext()) { @@ -2406,7 +2392,7 @@ } return false; } - List policies = (List)ext.get(CertificatePoliciesExtension.POLICIES); + List policies = ext.get(CertificatePoliciesExtension.POLICIES); /* * Convert the Vector of PolicyInformation to a Vector * of CertificatePolicyIds for easier comparison. @@ -2467,7 +2453,7 @@ if (ext == null) { return true; } - if ((debug != null) && debug.isOn("certpath")) { + if ((debug != null) && Debug.isOn("certpath")) { debug.println("X509CertSelector.match pathToNames:\n"); Iterator i = pathToGeneralNames.iterator(); @@ -2476,10 +2462,10 @@ } } - GeneralSubtrees permitted = (GeneralSubtrees) - ext.get(NameConstraintsExtension.PERMITTED_SUBTREES); - GeneralSubtrees excluded = (GeneralSubtrees) - ext.get(NameConstraintsExtension.EXCLUDED_SUBTREES); + GeneralSubtrees permitted = + ext.get(NameConstraintsExtension.PERMITTED_SUBTREES); + GeneralSubtrees excluded = + ext.get(NameConstraintsExtension.EXCLUDED_SUBTREES); if (excluded != null) { if (matchExcluded(excluded) == false) { return false; @@ -2597,12 +2583,13 @@ return true; } - private static Set cloneSet(Set set) { + @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly + private static Set cloneSet(Set set) { if (set instanceof HashSet) { - Object clone = ((HashSet)set).clone(); - return (Set)clone; + Object clone = ((HashSet)set).clone(); + return (Set)clone; } else { - return new HashSet(set); + return new HashSet(set); } } @@ -2617,17 +2604,13 @@ // Must clone these because addPathToName et al. modify them if (subjectAlternativeNames != null) { copy.subjectAlternativeNames = - (Set>)cloneSet(subjectAlternativeNames); + cloneSet(subjectAlternativeNames); copy.subjectAlternativeGeneralNames = - (Set)cloneSet - (subjectAlternativeGeneralNames); + cloneSet(subjectAlternativeGeneralNames); } if (pathToGeneralNames != null) { - copy.pathToNames = - (Set>)cloneSet(pathToNames); - copy.pathToGeneralNames = - (Set)cloneSet - (pathToGeneralNames); + copy.pathToNames = cloneSet(pathToNames); + copy.pathToGeneralNames = cloneSet(pathToGeneralNames); } return copy; } catch (CloneNotSupportedException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/util/Locale.java --- a/jdk/src/share/classes/java/util/Locale.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/util/Locale.java Mon Aug 29 14:29:23 2011 -0700 @@ -1589,7 +1589,7 @@ * @since 1.7 */ public String getDisplayScript() { - return getDisplayScript(getDefault()); + return getDisplayScript(getDefault(Category.DISPLAY)); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/util/Observable.java --- a/jdk/src/share/classes/java/util/Observable.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/util/Observable.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2011, 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 @@ -44,7 +44,7 @@ * notifications on separate threads, or may guarantee that their * subclass follows this order, as they choose. *

      - * Note that this notification mechanism is has nothing to do with threads + * Note that this notification mechanism has nothing to do with threads * and is completely separate from the wait and notify * mechanism of class Object. *

      diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/util/prefs/Preferences.java --- a/jdk/src/share/classes/java/util/prefs/Preferences.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/util/prefs/Preferences.java Mon Aug 29 14:29:23 2011 -0700 @@ -256,11 +256,9 @@ .getContextClassLoader()) .newInstance(); } catch (Exception e) { - InternalError error = new InternalError( + throw new InternalError( "Can't instantiate Preferences factory " - + factoryName); - error.initCause(e); - throw error; + + factoryName, e); } } } @@ -299,11 +297,9 @@ return (PreferencesFactory) Class.forName(platformFactory, false, null).newInstance(); } catch (Exception e) { - InternalError error = new InternalError( + throw new InternalError( "Can't instantiate platform default Preferences factory " - + platformFactory); - error.initCause(e); - throw error; + + platformFactory, e); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/java/util/regex/Matcher.java --- a/jdk/src/share/classes/java/util/regex/Matcher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/java/util/regex/Matcher.java Mon Aug 29 14:29:23 2011 -0700 @@ -515,6 +515,7 @@ * @throws IllegalArgumentException * If there is no capturing group in the pattern * with the given name + * @since 1.7 */ public String group(String name) { if (name == null) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/Cipher.java --- a/jdk/src/share/classes/javax/crypto/Cipher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/Cipher.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,7 +28,6 @@ import java.util.*; import java.util.regex.*; -import static java.util.Locale.ENGLISH; import java.security.*; import java.security.Provider.Service; @@ -44,7 +43,6 @@ import sun.security.util.Debug; import sun.security.jca.*; -import sun.security.jca.GetInstance.Instance; /** * This class provides the functionality of a cryptographic cipher for @@ -227,10 +225,10 @@ // remaining services to try in provider selection // null once provider is selected - private Iterator serviceIterator; + private Iterator serviceIterator; // list of transform Strings to lookup in the provider - private List transforms; + private List transforms; private final Object lock; @@ -271,7 +269,8 @@ } private Cipher(CipherSpi firstSpi, Service firstService, - Iterator serviceIterator, String transformation, List transforms) { + Iterator serviceIterator, String transformation, + List transforms) { this.firstSpi = firstSpi; this.firstService = firstService; this.serviceIterator = serviceIterator; @@ -392,11 +391,11 @@ // Map for previously compiled patterns // XXX use ConcurrentHashMap once available - private final static Map patternCache = - Collections.synchronizedMap(new HashMap()); + private final static Map patternCache = + Collections.synchronizedMap(new HashMap()); private static boolean matches(String regexp, String str) { - Pattern pattern = (Pattern)patternCache.get(regexp); + Pattern pattern = patternCache.get(regexp); if (pattern == null) { pattern = Pattern.compile(regexp); patternCache.put(regexp, pattern); @@ -406,7 +405,7 @@ } - private static List getTransforms(String transformation) + private static List getTransforms(String transformation) throws NoSuchAlgorithmException { String[] parts = tokenizeTransformation(transformation); @@ -426,7 +425,7 @@ return Collections.singletonList(tr); } else { // if ((mode != null) && (pad != null)) { // DES/CBC/PKCS5Padding - List list = new ArrayList(4); + List list = new ArrayList<>(4); list.add(new Transform(alg, "/" + mode + "/" + pad, null, null)); list.add(new Transform(alg, "/" + mode, null, pad)); list.add(new Transform(alg, "//" + pad, mode, null)); @@ -436,10 +435,10 @@ } // get the transform matching the specified service - private static Transform getTransform(Service s, List transforms) { + private static Transform getTransform(Service s, + List transforms) { String alg = s.getAlgorithm().toUpperCase(Locale.ENGLISH); - for (Iterator t = transforms.iterator(); t.hasNext(); ) { - Transform tr = (Transform)t.next(); + for (Transform tr : transforms) { if (alg.endsWith(tr.suffix)) { return tr; } @@ -482,19 +481,18 @@ public static final Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException { - List transforms = getTransforms(transformation); - List cipherServices = new ArrayList(transforms.size()); - for (Iterator t = transforms.iterator(); t.hasNext(); ) { - Transform transform = (Transform)t.next(); + List transforms = getTransforms(transformation); + List cipherServices = new ArrayList<>(transforms.size()); + for (Transform transform : transforms) { cipherServices.add(new ServiceId("Cipher", transform.transform)); } - List services = GetInstance.getServices(cipherServices); + List services = GetInstance.getServices(cipherServices); // make sure there is at least one service from a signed provider // and that it can use the specified mode and padding - Iterator t = services.iterator(); + Iterator t = services.iterator(); Exception failure = null; while (t.hasNext()) { - Service s = (Service)t.next(); + Service s = t.next(); if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; } @@ -620,11 +618,10 @@ throw new IllegalArgumentException("Missing provider"); } Exception failure = null; - List transforms = getTransforms(transformation); + List transforms = getTransforms(transformation); boolean providerChecked = false; String paddingError = null; - for (Iterator t = transforms.iterator(); t.hasNext();) { - Transform tr = (Transform)t.next(); + for (Transform tr : transforms) { Service s = provider.getService("Cipher", tr.transform); if (s == null) { continue; @@ -727,7 +724,7 @@ firstService = null; firstSpi = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); thisSpi = null; } if (JceSecurity.canUseProvider(s.getProvider()) == false) { @@ -821,7 +818,7 @@ firstService = null; firstSpi = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); thisSpi = null; } // if provider says it does not support this key, ignore it @@ -1622,7 +1619,7 @@ // Check whether the cert has a key usage extension // marked as a critical extension. X509Certificate cert = (X509Certificate)certificate; - Set critSet = cert.getCriticalExtensionOIDs(); + Set critSet = cert.getCriticalExtensionOIDs(); if (critSet != null && !critSet.isEmpty() && critSet.contains(KEY_USAGE_EXTENSION_OID)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/CryptoAllPermission.java --- a/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/CryptoAllPermission.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -171,8 +171,8 @@ * * @return an enumeration of all the CryptoAllPermission objects. */ - public Enumeration elements() { - Vector v = new Vector(1); + public Enumeration elements() { + Vector v = new Vector<>(1); if (all_allowed) v.add(CryptoAllPermission.INSTANCE); return v.elements(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/CryptoPermission.java --- a/jdk/src/share/classes/javax/crypto/CryptoPermission.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/CryptoPermission.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -475,14 +475,14 @@ private static final long serialVersionUID = -511215555898802763L; - private Vector permissions; + private Vector permissions; /** * Creates an empty CryptoPermissionCollection * object. */ CryptoPermissionCollection() { - permissions = new Vector(3); + permissions = new Vector(3); } /** @@ -520,7 +520,7 @@ CryptoPermission cp = (CryptoPermission)permission; - Enumeration e = permissions.elements(); + Enumeration e = permissions.elements(); while (e.hasMoreElements()) { CryptoPermission x = (CryptoPermission) e.nextElement(); @@ -538,7 +538,7 @@ * @return an enumeration of all the CryptoPermission objects. */ - public Enumeration elements() + public Enumeration elements() { return permissions.elements(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/CryptoPermissions.java --- a/jdk/src/share/classes/javax/crypto/CryptoPermissions.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/CryptoPermissions.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -62,14 +62,14 @@ private static final long serialVersionUID = 4946547168093391015L; // This class is similar to java.security.Permissions - private Hashtable perms; + private Hashtable perms; /** * Creates a new CryptoPermissions object containing * no CryptoPermissionCollections. */ CryptoPermissions() { - perms = new Hashtable(7); + perms = new Hashtable(7); } /** @@ -166,7 +166,7 @@ * * @return an enumeration of all the Permissions. */ - public Enumeration elements() { + public Enumeration elements() { // go through each Permissions in the hash table // and call their elements() function. return new PermissionsEnumerator(perms.elements()); @@ -198,8 +198,7 @@ PermissionCollection thatWildcard = - (PermissionCollection)other.perms.get( - CryptoPermission.ALG_NAME_WILDCARD); + other.perms.get(CryptoPermission.ALG_NAME_WILDCARD); int maxKeySize = 0; if (thatWildcard != null) { maxKeySize = ((CryptoPermission) @@ -208,14 +207,12 @@ // For each algorithm in this CryptoPermissions, // find out if there is anything we should add into // ret. - Enumeration thisKeys = this.perms.keys(); + Enumeration thisKeys = this.perms.keys(); while (thisKeys.hasMoreElements()) { - String alg = (String)thisKeys.nextElement(); + String alg = thisKeys.nextElement(); - PermissionCollection thisPc = - (PermissionCollection)this.perms.get(alg); - PermissionCollection thatPc = - (PermissionCollection)other.perms.get(alg); + PermissionCollection thisPc = this.perms.get(alg); + PermissionCollection thatPc = other.perms.get(alg); CryptoPermission[] partialResult; @@ -238,8 +235,7 @@ } PermissionCollection thisWildcard = - (PermissionCollection)this.perms.get( - CryptoPermission.ALG_NAME_WILDCARD); + this.perms.get(CryptoPermission.ALG_NAME_WILDCARD); // If this CryptoPermissions doesn't // have a wildcard, we are done. @@ -252,16 +248,15 @@ maxKeySize = ((CryptoPermission) thisWildcard.elements().nextElement()).getMaxKeySize(); - Enumeration thatKeys = other.perms.keys(); + Enumeration thatKeys = other.perms.keys(); while (thatKeys.hasMoreElements()) { - String alg = (String)thatKeys.nextElement(); + String alg = thatKeys.nextElement(); if (this.perms.containsKey(alg)) { continue; } - PermissionCollection thatPc = - (PermissionCollection)other.perms.get(alg); + PermissionCollection thatPc = other.perms.get(alg); CryptoPermission[] partialResult; @@ -286,9 +281,9 @@ */ private CryptoPermission[] getMinimum(PermissionCollection thisPc, PermissionCollection thatPc) { - Vector permVector = new Vector(2); + Vector permVector = new Vector<>(2); - Enumeration thisPcPermissions = thisPc.elements(); + Enumeration thisPcPermissions = thisPc.elements(); // For each CryptoPermission in // thisPc object, do the following: @@ -307,7 +302,7 @@ CryptoPermission thisCp = (CryptoPermission)thisPcPermissions.nextElement(); - Enumeration thatPcPermissions = thatPc.elements(); + Enumeration thatPcPermissions = thatPc.elements(); while (thatPcPermissions.hasMoreElements()) { CryptoPermission thatCp = (CryptoPermission)thatPcPermissions.nextElement(); @@ -342,9 +337,9 @@ */ private CryptoPermission[] getMinimum(int maxKeySize, PermissionCollection pc) { - Vector permVector = new Vector(1); + Vector permVector = new Vector<>(1); - Enumeration enum_ = pc.elements(); + Enumeration enum_ = pc.elements(); while (enum_.hasMoreElements()) { CryptoPermission cp = @@ -383,19 +378,17 @@ // If this CryptoPermissions includes CryptoAllPermission, // we should return CryptoAllPermission. if (perms.containsKey(CryptoAllPermission.ALG_NAME)) { - return - (PermissionCollection)(perms.get(CryptoAllPermission.ALG_NAME)); + return perms.get(CryptoAllPermission.ALG_NAME); } - PermissionCollection pc = (PermissionCollection)perms.get(alg); + PermissionCollection pc = perms.get(alg); // If there isn't a PermissionCollection for // the given algorithm,we should return the // PermissionCollection for the wildcard // if there is one. if (pc == null) { - pc = (PermissionCollection)perms.get( - CryptoPermission.ALG_NAME_WILDCARD); + pc = perms.get(CryptoPermission.ALG_NAME_WILDCARD); } return pc; } @@ -414,7 +407,7 @@ String alg = cryptoPerm.getAlgorithm(); - PermissionCollection pc = (PermissionCollection)perms.get(alg); + PermissionCollection pc = perms.get(alg); if (pc == null) { pc = cryptoPerm.newPermissionCollection(); @@ -423,14 +416,14 @@ } } -final class PermissionsEnumerator implements Enumeration { +final class PermissionsEnumerator implements Enumeration { // all the perms - private Enumeration perms; + private Enumeration perms; // the current set - private Enumeration permset; + private Enumeration permset; - PermissionsEnumerator(Enumeration e) { + PermissionsEnumerator(Enumeration e) { perms = e; permset = getNextEnumWithMore(); } @@ -454,7 +447,7 @@ return (permset != null); } - public synchronized Object nextElement() { + public synchronized Permission nextElement() { // hasMoreElements will update permset to the next permset // with something in it... @@ -466,11 +459,10 @@ } - private Enumeration getNextEnumWithMore() { + private Enumeration getNextEnumWithMore() { while (perms.hasMoreElements()) { - PermissionCollection pc = - (PermissionCollection) perms.nextElement(); - Enumeration next = pc.elements(); + PermissionCollection pc = perms.nextElement(); + Enumeration next = pc.elements(); if (next.hasMoreElements()) return next; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java --- a/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/CryptoPolicyParser.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -29,7 +29,6 @@ import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; -import java.util.StringTokenizer; import static java.util.Locale.ENGLISH; import java.security.GeneralSecurityException; @@ -64,7 +63,7 @@ final class CryptoPolicyParser { - private Vector grantEntries; + private Vector grantEntries; // Convenience variables for parsing private StreamTokenizer st; @@ -74,7 +73,7 @@ * Creates a CryptoPolicyParser object. */ CryptoPolicyParser() { - grantEntries = new Vector(); + grantEntries = new Vector(); } /** @@ -127,7 +126,7 @@ * The crypto jurisdiction policy must be consistent. The * following hashtable is used for checking consistency. */ - Hashtable processedPermissions = null; + Hashtable> processedPermissions = null; /* * The main parsing loop. The loop is executed once for each entry @@ -152,7 +151,8 @@ /** * parse a Grant entry */ - private GrantEntry parseGrantEntry(Hashtable processedPermissions) + private GrantEntry parseGrantEntry( + Hashtable> processedPermissions) throws ParsingException, IOException { GrantEntry e = new GrantEntry(); @@ -180,7 +180,7 @@ * parse a CryptoPermission entry */ private CryptoPermissionEntry parsePermissionEntry( - Hashtable processedPermissions) + Hashtable> processedPermissions) throws ParsingException, IOException { CryptoPermissionEntry e = new CryptoPermissionEntry(); @@ -252,7 +252,7 @@ // AlgorithmParameterSpec class name. String algParamSpecClassName = match("quoted string"); - Vector paramsV = new Vector(1); + Vector paramsV = new Vector<>(1); while (peek(",")) { match(","); if (peek("number")) { @@ -285,14 +285,14 @@ AlgorithmParameterSpec ret = null; try { - Class apsClass = Class.forName(type); - Class[] paramClasses = new Class[params.length]; + Class apsClass = Class.forName(type); + Class[] paramClasses = new Class[params.length]; for (int i = 0; i < params.length; i++) { paramClasses[i] = int.class; } - Constructor c = apsClass.getConstructor(paramClasses); + Constructor c = apsClass.getConstructor(paramClasses); ret = (AlgorithmParameterSpec) c.newInstance((Object[]) params); } catch (Exception e) { throw new ParsingException("Cannot call the constructor of " + @@ -456,15 +456,15 @@ } CryptoPermission[] getPermissions() { - Vector result = new Vector(); + Vector result = new Vector<>(); - Enumeration grantEnum = grantEntries.elements(); + Enumeration grantEnum = grantEntries.elements(); while (grantEnum.hasMoreElements()) { - GrantEntry ge = (GrantEntry)grantEnum.nextElement(); - Enumeration permEnum = ge.permissionElements(); + GrantEntry ge = grantEnum.nextElement(); + Enumeration permEnum = + ge.permissionElements(); while (permEnum.hasMoreElements()) { - CryptoPermissionEntry pe = - (CryptoPermissionEntry)permEnum.nextElement(); + CryptoPermissionEntry pe = permEnum.nextElement(); if (pe.cryptoPermission.equals( "javax.crypto.CryptoAllPermission")) { result.addElement(CryptoAllPermission.INSTANCE); @@ -491,15 +491,14 @@ return ret; } - private boolean isConsistent(String alg, - String exemptionMechanism, - Hashtable processedPermissions) { + private boolean isConsistent(String alg, String exemptionMechanism, + Hashtable> processedPermissions) { String thisExemptionMechanism = exemptionMechanism == null ? "none" : exemptionMechanism; if (processedPermissions == null) { - processedPermissions = new Hashtable(); - Vector exemptionMechanisms = new Vector(1); + processedPermissions = new Hashtable>(); + Vector exemptionMechanisms = new Vector<>(1); exemptionMechanisms.addElement(thisExemptionMechanism); processedPermissions.put(alg, exemptionMechanisms); return true; @@ -509,15 +508,15 @@ return false; } - Vector exemptionMechanisms; + Vector exemptionMechanisms; if (processedPermissions.containsKey(alg)) { - exemptionMechanisms = (Vector)processedPermissions.get(alg); + exemptionMechanisms = processedPermissions.get(alg); if (exemptionMechanisms.contains(thisExemptionMechanism)) { return false; } } else { - exemptionMechanisms = new Vector(1); + exemptionMechanisms = new Vector(1); } exemptionMechanisms.addElement(thisExemptionMechanism); @@ -556,10 +555,10 @@ private static class GrantEntry { - private Vector permissionEntries; + private Vector permissionEntries; GrantEntry() { - permissionEntries = new Vector(); + permissionEntries = new Vector(); } void add(CryptoPermissionEntry pe) @@ -580,7 +579,7 @@ /** * Enumerate all the permission entries in this GrantEntry. */ - Enumeration permissionElements(){ + Enumeration permissionElements(){ return permissionEntries.elements(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java --- a/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -80,7 +80,7 @@ throw new NullPointerException("the encoded parameter " + "must be non-null"); } - this.encoded = (byte[])encoded.clone(); + this.encoded = encoded.clone(); DerValue val = new DerValue(this.encoded); DerValue[] seq = new DerValue[2]; @@ -143,7 +143,7 @@ throw new IllegalArgumentException("the encryptedData " + "parameter must not be empty"); } else { - this.encryptedData = (byte[])encryptedData.clone(); + this.encryptedData = encryptedData.clone(); } // delay the generation of ASN.1 encoding until // getEncoded() is called @@ -183,7 +183,7 @@ throw new IllegalArgumentException("the encryptedData " + "parameter must not be empty"); } else { - this.encryptedData = (byte[])encryptedData.clone(); + this.encryptedData = encryptedData.clone(); } // delay the generation of ASN.1 encoding until @@ -222,7 +222,7 @@ * each time this method is called. */ public byte[] getEncryptedData() { - return (byte[])this.encryptedData.clone(); + return this.encryptedData.clone(); } /** @@ -247,26 +247,13 @@ throws InvalidKeySpecException { byte[] encoded = null; try { - encoded = cipher.doFinal((byte[])encryptedData); + encoded = cipher.doFinal(encryptedData); checkPKCS8Encoding(encoded); - } catch (GeneralSecurityException gse) { - InvalidKeySpecException ikse = new - InvalidKeySpecException( - "Cannot retrieve the PKCS8EncodedKeySpec"); - ikse.initCause(gse); - throw ikse; - } catch (IOException ioe) { - InvalidKeySpecException ikse = new - InvalidKeySpecException( - "Cannot retrieve the PKCS8EncodedKeySpec"); - ikse.initCause(ioe); - throw ikse; - } catch (IllegalStateException ise) { - InvalidKeySpecException ikse = new - InvalidKeySpecException( - "Cannot retrieve the PKCS8EncodedKeySpec"); - ikse.initCause(ise); - throw ikse; + } catch (GeneralSecurityException | + IOException | + IllegalStateException ex) { + throw new InvalidKeySpecException( + "Cannot retrieve the PKCS8EncodedKeySpec", ex); } return new PKCS8EncodedKeySpec(encoded); } @@ -289,16 +276,9 @@ } catch (NoSuchAlgorithmException nsae) { // rethrow throw nsae; - } catch (GeneralSecurityException gse) { - InvalidKeyException ike = new InvalidKeyException - ("Cannot retrieve the PKCS8EncodedKeySpec"); - ike.initCause(gse); - throw ike; - } catch (IOException ioe) { - InvalidKeyException ike = new InvalidKeyException - ("Cannot retrieve the PKCS8EncodedKeySpec"); - ike.initCause(ioe); - throw ike; + } catch (GeneralSecurityException | IOException ex) { + throw new InvalidKeyException( + "Cannot retrieve the PKCS8EncodedKeySpec", ex); } return new PKCS8EncodedKeySpec(encoded); } @@ -413,7 +393,7 @@ out.write(DerValue.tag_Sequence, tmp); this.encoded = out.toByteArray(); } - return (byte[])this.encoded.clone(); + return this.encoded.clone(); } private static void checkTag(DerValue val, byte tag, String valName) @@ -424,6 +404,7 @@ } } + @SuppressWarnings("fallthrough") private static void checkPKCS8Encoding(byte[] encodedKey) throws IOException { DerInputStream in = new DerInputStream(encodedKey); @@ -432,6 +413,7 @@ switch (values.length) { case 4: checkTag(values[3], DerValue.TAG_CONTEXT, "attributes"); + /* fall through */ case 3: checkTag(values[0], DerValue.tag_Integer, "version"); DerInputStream algid = values[1].toDerInputStream(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/JarVerifier.java --- a/jdk/src/share/classes/javax/crypto/JarVerifier.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/JarVerifier.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -86,23 +86,19 @@ // Get a link to the Jarfile to search. try { - jf = (JarFile) - AccessController.doPrivileged( - new PrivilegedExceptionAction() { - public Object run() throws Exception { - JarURLConnection conn = - (JarURLConnection) url.openConnection(); - // You could do some caching here as - // an optimization. - conn.setUseCaches(false); - return conn.getJarFile(); - } - }); + jf = AccessController.doPrivileged( + new PrivilegedExceptionAction() { + public JarFile run() throws Exception { + JarURLConnection conn = + (JarURLConnection) url.openConnection(); + // You could do some caching here as + // an optimization. + conn.setUseCaches(false); + return conn.getJarFile(); + } + }); } catch (java.security.PrivilegedActionException pae) { - SecurityException se = new SecurityException( - "Cannot load " + url.toString()); - se.initCause(pae); - throw se; + throw new SecurityException("Cannot load " + url.toString(), pae); } if (jf != null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/JceSecurity.java --- a/jdk/src/share/classes/javax/crypto/JceSecurity.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/JceSecurity.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -57,10 +57,12 @@ // Map of the providers we already have verified // value == PROVIDER_VERIFIED is successfully verified // value is failure cause Exception in error case - private final static Map verificationResults = new IdentityHashMap(); + private final static Map verificationResults = + new IdentityHashMap<>(); // Map of the providers currently being verified - private final static Map verifyingProviders = new IdentityHashMap(); + private final static Map verifyingProviders = + new IdentityHashMap<>(); // Set the default value. May be changed in the static initializer. private static boolean isRestricted = true; @@ -73,25 +75,23 @@ static { try { - AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws Exception { - setupJurisdictionPolicies(); - return null; - } - }); + AccessController.doPrivileged( + new PrivilegedExceptionAction() { + public Object run() throws Exception { + setupJurisdictionPolicies(); + return null; + } + }); isRestricted = defaultPolicy.implies( CryptoAllPermission.INSTANCE) ? false : true; } catch (Exception e) { - SecurityException se = - new SecurityException( - "Can not initialize cryptographic mechanism"); - se.initCause(e); - throw se; + throw new SecurityException( + "Can not initialize cryptographic mechanism", e); } } - static Instance getInstance(String type, Class clazz, String algorithm, + static Instance getInstance(String type, Class clazz, String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { Service s = GetInstance.getService(type, algorithm, provider); @@ -104,7 +104,7 @@ return GetInstance.getInstance(s, clazz); } - static Instance getInstance(String type, Class clazz, String algorithm, + static Instance getInstance(String type, Class clazz, String algorithm, Provider provider) throws NoSuchAlgorithmException { Service s = GetInstance.getService(type, algorithm, provider); Exception ve = JceSecurity.getVerificationResult(provider); @@ -116,12 +116,11 @@ return GetInstance.getInstance(s, clazz); } - static Instance getInstance(String type, Class clazz, String algorithm) + static Instance getInstance(String type, Class clazz, String algorithm) throws NoSuchAlgorithmException { - List services = GetInstance.getServices(type, algorithm); + List services = GetInstance.getServices(type, algorithm); NoSuchAlgorithmException failure = null; - for (Iterator t = services.iterator(); t.hasNext(); ) { - Service s = (Service)t.next(); + for (Service s : services) { if (canUseProvider(s.getProvider()) == false) { // allow only signed providers continue; @@ -213,16 +212,17 @@ } // reference to a Map we use as a cache for codebases - private static final Map codeBaseCacheRef = new WeakHashMap(); + private static final Map, URL> codeBaseCacheRef = + new WeakHashMap<>(); /* * Retuns the CodeBase for the given class. */ - static URL getCodeBase(final Class clazz) { - URL url = (URL)codeBaseCacheRef.get(clazz); + static URL getCodeBase(final Class clazz) { + URL url = codeBaseCacheRef.get(clazz); if (url == null) { - url = (URL)AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { + url = AccessController.doPrivileged(new PrivilegedAction() { + public URL run() { ProtectionDomain pd = clazz.getProtectionDomain(); if (pd != null) { CodeSource cs = pd.getCodeSource(); @@ -290,9 +290,9 @@ JarFile jf = new JarFile(jarPathName); - Enumeration entries = jf.entries(); + Enumeration entries = jf.entries(); while (entries.hasMoreElements()) { - JarEntry je = (JarEntry)entries.nextElement(); + JarEntry je = entries.nextElement(); InputStream is = null; try { if (je.getName().startsWith("default_")) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/JceSecurityManager.java --- a/jdk/src/share/classes/javax/crypto/JceSecurityManager.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/JceSecurityManager.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,7 +28,6 @@ import java.security.*; import java.net.*; import java.util.*; -import java.util.jar.*; /** * The JCE security manager. @@ -50,8 +49,10 @@ private static final CryptoPermissions defaultPolicy; private static final CryptoPermissions exemptPolicy; private static final CryptoAllPermission allPerm; - private static final Vector TrustedCallersCache = new Vector(2); - private static final Map exemptCache = new HashMap(); + private static final Vector> TrustedCallersCache = + new Vector<>(2); + private static final Map exemptCache = + new HashMap<>(); // singleton instance static final JceSecurityManager INSTANCE; @@ -60,12 +61,12 @@ defaultPolicy = JceSecurity.getDefaultPolicy(); exemptPolicy = JceSecurity.getExemptPolicy(); allPerm = CryptoAllPermission.INSTANCE; - INSTANCE = (JceSecurityManager) - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - return new JceSecurityManager(); - } - }); + INSTANCE = AccessController.doPrivileged( + new PrivilegedAction() { + public JceSecurityManager run() { + return new JceSecurityManager(); + } + }); } private JceSecurityManager() { @@ -94,11 +95,11 @@ // javax.crypto.* packages. // NOTE: javax.crypto.* package maybe subject to package // insertion, so need to check its classloader as well. - Class[] context = getClassContext(); + Class[] context = getClassContext(); URL callerCodeBase = null; int i; for (i=0; i cls = context[i]; callerCodeBase = JceSecurity.getCodeBase(cls); if (callerCodeBase != null) { break; @@ -119,7 +120,7 @@ CryptoPermissions appPerms; synchronized (this.getClass()) { if (exemptCache.containsKey(callerCodeBase)) { - appPerms = (CryptoPermissions)exemptCache.get(callerCodeBase); + appPerms = exemptCache.get(callerCodeBase); } else { appPerms = getAppPermissions(callerCodeBase); exemptCache.put(callerCodeBase, appPerms); @@ -143,7 +144,7 @@ if (appPc == null) { return defaultPerm; } - Enumeration enum_ = appPc.elements(); + Enumeration enum_ = appPc.elements(); while (enum_.hasMoreElements()) { CryptoPermission cp = (CryptoPermission)enum_.nextElement(); if (cp.getExemptionMechanism() == null) { @@ -215,7 +216,7 @@ * Returns the default permission for the given algorithm. */ private CryptoPermission getDefaultPermission(String alg) { - Enumeration enum_ = + Enumeration enum_ = defaultPolicy.getPermissionCollection(alg).elements(); return (CryptoPermission)enum_.nextElement(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/KeyAgreement.java --- a/jdk/src/share/classes/javax/crypto/KeyAgreement.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/KeyAgreement.java Mon Aug 29 14:29:23 2011 -0700 @@ -93,7 +93,7 @@ // remaining services to try in provider selection // null once provider is selected - private Iterator serviceIterator; + private Iterator serviceIterator; private final Object lock; @@ -112,7 +112,7 @@ lock = null; } - private KeyAgreement(Service s, Iterator t, String algorithm) { + private KeyAgreement(Service s, Iterator t, String algorithm) { firstService = s; serviceIterator = t; this.algorithm = algorithm; @@ -165,11 +165,12 @@ */ public static final KeyAgreement getInstance(String algorithm) throws NoSuchAlgorithmException { - List services = GetInstance.getServices("KeyAgreement", algorithm); + List services = + GetInstance.getServices("KeyAgreement", algorithm); // make sure there is at least one service from a signed provider - Iterator t = services.iterator(); + Iterator t = services.iterator(); while (t.hasNext()) { - Service s = (Service)t.next(); + Service s = t.next(); if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; } @@ -301,7 +302,7 @@ s = firstService; firstService = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); } if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; @@ -358,7 +359,7 @@ s = firstService; firstService = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); } // if provider says it does not support this key, ignore it if (s.supportsParameter(key) == false) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/KeyGenerator.java --- a/jdk/src/share/classes/javax/crypto/KeyGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/KeyGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -127,7 +127,7 @@ private final Object lock = new Object(); - private Iterator serviceIterator; + private Iterator serviceIterator; private int initType; private int initKeySize; @@ -150,7 +150,8 @@ private KeyGenerator(String algorithm) throws NoSuchAlgorithmException { this.algorithm = algorithm; - List list = GetInstance.getServices("KeyGenerator", algorithm); + List list = + GetInstance.getServices("KeyGenerator", algorithm); serviceIterator = list.iterator(); initType = I_NONE; // fetch and instantiate initial spi @@ -320,7 +321,7 @@ return null; } while (serviceIterator.hasNext()) { - Service s = (Service)serviceIterator.next(); + Service s = serviceIterator.next(); if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/Mac.java --- a/jdk/src/share/classes/javax/crypto/Mac.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/Mac.java Mon Aug 29 14:29:23 2011 -0700 @@ -95,7 +95,7 @@ // remaining services to try in provider selection // null once provider is selected - private Iterator serviceIterator; + private Iterator serviceIterator; private final Object lock; @@ -114,7 +114,7 @@ lock = null; } - private Mac(Service s, Iterator t, String algorithm) { + private Mac(Service s, Iterator t, String algorithm) { firstService = s; serviceIterator = t; this.algorithm = algorithm; @@ -163,11 +163,11 @@ */ public static final Mac getInstance(String algorithm) throws NoSuchAlgorithmException { - List services = GetInstance.getServices("Mac", algorithm); + List services = GetInstance.getServices("Mac", algorithm); // make sure there is at least one service from a signed provider - Iterator t = services.iterator(); + Iterator t = services.iterator(); while (t.hasNext()) { - Service s = (Service)t.next(); + Service s = t.next(); if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; } @@ -288,7 +288,7 @@ s = firstService; firstService = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); } if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; @@ -331,7 +331,7 @@ s = firstService; firstService = null; } else { - s = (Service)serviceIterator.next(); + s = serviceIterator.next(); } // if provider says it does not support this key, ignore it if (s.supportsParameter(key) == false) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/SealedObject.java --- a/jdk/src/share/classes/javax/crypto/SealedObject.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/SealedObject.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -193,11 +193,11 @@ * @exception NullPointerException if the given sealed object is null. */ protected SealedObject(SealedObject so) { - this.encryptedContent = (byte[]) so.encryptedContent.clone(); + this.encryptedContent = so.encryptedContent.clone(); this.sealAlg = so.sealAlg; this.paramsAlg = so.paramsAlg; if (so.encodedParams != null) { - this.encodedParams = (byte[]) so.encodedParams.clone(); + this.encodedParams = so.encodedParams.clone(); } else { this.encodedParams = null; } @@ -353,10 +353,8 @@ try { return unseal(key, provider); - } catch (IllegalBlockSizeException ibse) { - throw new InvalidKeyException(ibse.getMessage()); - } catch (BadPaddingException bpe) { - throw new InvalidKeyException(bpe.getMessage()); + } catch (IllegalBlockSizeException | BadPaddingException ex) { + throw new InvalidKeyException(ex.getMessage()); } } @@ -450,9 +448,9 @@ { s.defaultReadObject(); if (encryptedContent != null) - encryptedContent = (byte[])encryptedContent.clone(); + encryptedContent = encryptedContent.clone(); if (encodedParams != null) - encodedParams = (byte[])encodedParams.clone(); + encodedParams = encodedParams.clone(); } } @@ -465,7 +463,7 @@ super(in); } - protected Class resolveClass(ObjectStreamClass v) + protected Class resolveClass(ObjectStreamClass v) throws IOException, ClassNotFoundException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/SecretKeyFactory.java --- a/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -96,7 +96,7 @@ // remaining services to try in provider selection // null once provider is selected - private Iterator serviceIterator; + private Iterator serviceIterator; /** * Creates a SecretKeyFactory object. @@ -114,7 +114,8 @@ private SecretKeyFactory(String algorithm) throws NoSuchAlgorithmException { this.algorithm = algorithm; - List list = GetInstance.getServices("SecretKeyFactory", algorithm); + List list = + GetInstance.getServices("SecretKeyFactory", algorithm); serviceIterator = list.iterator(); // fetch and instantiate initial spi if (nextSpi(null) == null) { @@ -290,7 +291,7 @@ return null; } while (serviceIterator.hasNext()) { - Service s = (Service)serviceIterator.next(); + Service s = serviceIterator.next(); if (JceSecurity.canUseProvider(s.getProvider()) == false) { continue; } @@ -367,7 +368,7 @@ * (e.g., the given key has an algorithm or format not supported by this * secret-key factory). */ - public final KeySpec getKeySpec(SecretKey key, Class keySpec) + public final KeySpec getKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException { if (serviceIterator == null) { return spi.engineGetKeySpec(key, keySpec); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java --- a/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -88,7 +88,7 @@ * (e.g., the given key has an algorithm or format not supported by this * secret-key factory). */ - protected abstract KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + protected abstract KeySpec engineGetKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException; /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java --- a/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/DESKeySpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -165,7 +165,7 @@ * each time this method is called. */ public byte[] getKey() { - return (byte[])this.key.clone(); + return this.key.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java --- a/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/DESedeKeySpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -95,7 +95,7 @@ * each time this method is called. */ public byte[] getKey() { - return (byte[])this.key.clone(); + return this.key.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java --- a/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/IvParameterSpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -94,6 +94,6 @@ * each time this method is called. */ public byte[] getIV() { - return (byte[])this.iv.clone(); + return this.iv.clone(); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java --- a/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/PBEKeySpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -80,7 +80,7 @@ if ((password == null) || (password.length == 0)) { this.password = new char[0]; } else { - this.password = (char[])password.clone(); + this.password = password.clone(); } } @@ -109,7 +109,7 @@ if ((password == null) || (password.length == 0)) { this.password = new char[0]; } else { - this.password = (char[])password.clone(); + this.password = password.clone(); } if (salt == null) { throw new NullPointerException("the salt parameter " + @@ -118,7 +118,7 @@ throw new IllegalArgumentException("the salt parameter " + "must not be empty"); } else { - this.salt = (byte[]) salt.clone(); + this.salt = salt.clone(); } if (iterationCount<=0) { throw new IllegalArgumentException("invalid iterationCount value"); @@ -151,7 +151,7 @@ if ((password == null) || (password.length == 0)) { this.password = new char[0]; } else { - this.password = (char[])password.clone(); + this.password = password.clone(); } if (salt == null) { throw new NullPointerException("the salt parameter " + @@ -160,7 +160,7 @@ throw new IllegalArgumentException("the salt parameter " + "must not be empty"); } else { - this.salt = (byte[]) salt.clone(); + this.salt = salt.clone(); } if (iterationCount<=0) { throw new IllegalArgumentException("invalid iterationCount value"); @@ -196,7 +196,7 @@ if (password == null) { throw new IllegalStateException("password has been cleared"); } - return (char[]) password.clone(); + return password.clone(); } /** @@ -210,7 +210,7 @@ */ public final byte[] getSalt() { if (salt != null) { - return (byte[]) salt.clone(); + return salt.clone(); } else { return null; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java --- a/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/PBEParameterSpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package javax.crypto.spec; -import java.math.BigInteger; import java.security.spec.AlgorithmParameterSpec; /** @@ -53,7 +52,7 @@ * @exception NullPointerException if salt is null. */ public PBEParameterSpec(byte[] salt, int iterationCount) { - this.salt = (byte[])salt.clone(); + this.salt = salt.clone(); this.iterationCount = iterationCount; } @@ -64,7 +63,7 @@ * each time this method is called. */ public byte[] getSalt() { - return (byte[])this.salt.clone(); + return this.salt.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/PSource.java --- a/jdk/src/share/classes/javax/crypto/spec/PSource.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/PSource.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -25,9 +25,6 @@ package javax.crypto.spec; -import java.math.BigInteger; -import java.security.spec.AlgorithmParameterSpec; - /** * This class specifies the source for encoding input P in OAEP Padding, * as defined in the @@ -97,7 +94,7 @@ */ public PSpecified(byte[] p) { super("PSpecified"); - this.p = (byte[]) p.clone(); + this.p = p.clone(); } /** * Returns the value of encoding input P. @@ -105,7 +102,7 @@ * returned each time this method is called. */ public byte[] getValue() { - return (p.length==0? p: (byte[])p.clone()); + return (p.length==0? p: p.clone()); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java --- a/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/RC2ParameterSpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -117,7 +117,7 @@ * Returns a new array each time this method is called. */ public byte[] getIV() { - return (iv == null? null:(byte[])iv.clone()); + return (iv == null? null:iv.clone()); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java --- a/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/RC5ParameterSpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -157,7 +157,7 @@ * Returns a new array each time this method is called. */ public byte[] getIV() { - return (iv == null? null:(byte[])iv.clone()); + return (iv == null? null:iv.clone()); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java --- a/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -25,8 +25,6 @@ package javax.crypto.spec; -import java.io.UnsupportedEncodingException; -import java.security.Key; import java.security.spec.KeySpec; import javax.crypto.SecretKey; @@ -95,7 +93,7 @@ if (key.length == 0) { throw new IllegalArgumentException("Empty key"); } - this.key = (byte[])key.clone(); + this.key = key.clone(); this.algorithm = algorithm; } @@ -181,7 +179,7 @@ * each time this method is called. */ public byte[] getEncoded() { - return (byte[])this.key.clone(); + return this.key.clone(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/CompositeName.java --- a/jdk/src/share/classes/javax/naming/CompositeName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/CompositeName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -394,7 +394,7 @@ * If posn is outside the specified range. */ public Name getPrefix(int posn) { - Enumeration comps = impl.getPrefix(posn); + Enumeration comps = impl.getPrefix(posn); return (new CompositeName(comps)); } @@ -412,7 +412,7 @@ * If posn is outside the specified range. */ public Name getSuffix(int posn) { - Enumeration comps = impl.getSuffix(posn); + Enumeration comps = impl.getSuffix(posn); return (new CompositeName(comps)); } @@ -563,7 +563,7 @@ private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { s.writeInt(size()); - Enumeration comps = getAll(); + Enumeration comps = getAll(); while (comps.hasMoreElements()) { s.writeObject(comps.nextElement()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/CompoundName.java --- a/jdk/src/share/classes/javax/naming/CompoundName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/CompoundName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -376,7 +376,7 @@ * If posn is outside the specified range. */ public Name getPrefix(int posn) { - Enumeration comps = impl.getPrefix(posn); + Enumeration comps = impl.getPrefix(posn); return (new CompoundName(comps, mySyntax)); } @@ -396,7 +396,7 @@ * If posn is outside the specified range. */ public Name getSuffix(int posn) { - Enumeration comps = impl.getSuffix(posn); + Enumeration comps = impl.getSuffix(posn); return (new CompoundName(comps, mySyntax)); } @@ -557,7 +557,7 @@ throws java.io.IOException { s.writeObject(mySyntax); s.writeInt(size()); - Enumeration comps = getAll(); + Enumeration comps = getAll(); while (comps.hasMoreElements()) { s.writeObject(comps.nextElement()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/InitialContext.java --- a/jdk/src/share/classes/javax/naming/InitialContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/InitialContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -232,10 +232,12 @@ * @see #InitialContext(boolean) * @since 1.3 */ + @SuppressWarnings("unchecked") protected void init(Hashtable environment) throws NamingException { - myProps = ResourceManager.getInitialEnvironment(environment); + myProps = (Hashtable) + ResourceManager.getInitialEnvironment(environment); if (myProps.get(Context.INITIAL_CONTEXT_FACTORY) != null) { // user has specified initial context factory; try to get it @@ -265,6 +267,7 @@ * @see #lookup(Name) * @since 1.6 */ + @SuppressWarnings("unchecked") public static T doLookup(Name name) throws NamingException { return (T) (new InitialContext()).lookup(name); @@ -279,6 +282,7 @@ * @throws NamingException if a naming exception is encountered * @since 1.6 */ + @SuppressWarnings("unchecked") public static T doLookup(String name) throws NamingException { return (T) (new InitialContext()).lookup(name); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/NameImpl.java --- a/jdk/src/share/classes/javax/naming/NameImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/NameImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -25,6 +25,7 @@ package javax.naming; +import java.util.Locale; import java.util.Vector; import java.util.Enumeration; import java.util.Properties; @@ -45,7 +46,7 @@ private static final byte RIGHT_TO_LEFT = 2; private static final byte FLAT = 0; - private Vector components; + private Vector components; private byte syntaxDirection = LEFT_TO_RIGHT; private String syntaxSeparator = "/"; @@ -97,7 +98,7 @@ return (i); } - private final int extractComp(String name, int i, int len, Vector comps) + private final int extractComp(String name, int i, int len, Vector comps) throws InvalidNameException { String beginQuote; String endQuote; @@ -216,7 +217,8 @@ } private static boolean toBoolean(String name) { - return ((name != null) && name.toLowerCase().equals("true")); + return ((name != null) && + name.toLowerCase(Locale.ENGLISH).equals("true")); } private final void recordNamingConvention(Properties p) { @@ -270,7 +272,7 @@ if (syntax != null) { recordNamingConvention(syntax); } - components = new Vector(); + components = new Vector<>(); } NameImpl(Properties syntax, String n) throws InvalidNameException { @@ -284,8 +286,8 @@ i = extractComp(n, i, len, components); String comp = rToL - ? (String)components.firstElement() - : (String)components.lastElement(); + ? components.firstElement() + : components.lastElement(); if (comp.length() >= 1) { compsAllEmpty = false; } @@ -304,7 +306,7 @@ } } - NameImpl(Properties syntax, Enumeration comps) { + NameImpl(Properties syntax, Enumeration comps) { this(syntax); // %% comps could shrink in the middle. @@ -455,9 +457,9 @@ for (int i = 0; i < size; i++) { if (syntaxDirection == RIGHT_TO_LEFT) { comp = - stringifyComp((String) components.elementAt(size - 1 - i)); + stringifyComp(components.elementAt(size - 1 - i)); } else { - comp = stringifyComp((String) components.elementAt(i)); + comp = stringifyComp(components.elementAt(i)); } if ((i != 0) && (syntaxSeparator != null)) answer.append(syntaxSeparator); @@ -474,12 +476,12 @@ if ((obj != null) && (obj instanceof NameImpl)) { NameImpl target = (NameImpl)obj; if (target.size() == this.size()) { - Enumeration mycomps = getAll(); - Enumeration comps = target.getAll(); + Enumeration mycomps = getAll(); + Enumeration comps = target.getAll(); while (mycomps.hasMoreElements()) { // %% comps could shrink in the middle. - String my = (String)mycomps.nextElement(); - String his = (String)comps.nextElement(); + String my = mycomps.nextElement(); + String his = comps.nextElement(); if (syntaxTrimBlanks) { my = my.trim(); his = his.trim(); @@ -526,11 +528,14 @@ comp1 = comp1.trim(); comp2 = comp2.trim(); } + + int local; if (syntaxCaseInsensitive) { - comp1 = comp1.toLowerCase(); - comp2 = comp2.toLowerCase(); + local = comp1.compareToIgnoreCase(comp2); + } else { + local = comp1.compareTo(comp2); } - int local = comp1.compareTo(comp2); + if (local != 0) { return local; } @@ -543,22 +548,22 @@ return (components.size()); } - public Enumeration getAll() { + public Enumeration getAll() { return components.elements(); } public String get(int posn) { - return ((String) components.elementAt(posn)); + return components.elementAt(posn); } - public Enumeration getPrefix(int posn) { + public Enumeration getPrefix(int posn) { if (posn < 0 || posn > size()) { throw new ArrayIndexOutOfBoundsException(posn); } return new NameImplEnumerator(components, 0, posn); } - public Enumeration getSuffix(int posn) { + public Enumeration getSuffix(int posn) { int cnt = size(); if (posn < 0 || posn > cnt) { throw new ArrayIndexOutOfBoundsException(posn); @@ -570,15 +575,15 @@ return (components.isEmpty()); } - public boolean startsWith(int posn, Enumeration prefix) { + public boolean startsWith(int posn, Enumeration prefix) { if (posn < 0 || posn > size()) { return false; } try { - Enumeration mycomps = getPrefix(posn); + Enumeration mycomps = getPrefix(posn); while (mycomps.hasMoreElements()) { - String my = (String)mycomps.nextElement(); - String his = (String)prefix.nextElement(); + String my = mycomps.nextElement(); + String his = prefix.nextElement(); if (syntaxTrimBlanks) { my = my.trim(); his = his.trim(); @@ -597,7 +602,7 @@ return true; } - public boolean endsWith(int posn, Enumeration suffix) { + public boolean endsWith(int posn, Enumeration suffix) { // posn is number of elements in suffix // startIndex is the starting position in this name // at which to start the comparison. It is calculated by @@ -607,10 +612,10 @@ return false; } try { - Enumeration mycomps = getSuffix(startIndex); + Enumeration mycomps = getSuffix(startIndex); while (mycomps.hasMoreElements()) { - String my = (String)mycomps.nextElement(); - String his = (String)suffix.nextElement(); + String my = mycomps.nextElement(); + String his = suffix.nextElement(); if (syntaxTrimBlanks) { my = my.trim(); his = his.trim(); @@ -629,11 +634,11 @@ return true; } - public boolean addAll(Enumeration comps) throws InvalidNameException { + public boolean addAll(Enumeration comps) throws InvalidNameException { boolean added = false; while (comps.hasMoreElements()) { try { - Object comp = comps.nextElement(); + String comp = comps.nextElement(); if (size() > 0 && syntaxDirection == FLAT) { throw new InvalidNameException( "A flat name can only have a single component"); @@ -647,12 +652,12 @@ return added; } - public boolean addAll(int posn, Enumeration comps) + public boolean addAll(int posn, Enumeration comps) throws InvalidNameException { boolean added = false; for (int i = posn; comps.hasMoreElements(); i++) { try { - Object comp = comps.nextElement(); + String comp = comps.nextElement(); if (size() > 0 && syntaxDirection == FLAT) { throw new InvalidNameException( "A flat name can only have a single component"); @@ -690,13 +695,13 @@ public int hashCode() { int hash = 0; - for (Enumeration e = getAll(); e.hasMoreElements();) { - String comp = (String)e.nextElement(); + for (Enumeration e = getAll(); e.hasMoreElements();) { + String comp = e.nextElement(); if (syntaxTrimBlanks) { comp = comp.trim(); } if (syntaxCaseInsensitive) { - comp = comp.toLowerCase(); + comp = comp.toLowerCase(Locale.ENGLISH); } hash += comp.hashCode(); @@ -706,12 +711,12 @@ } final -class NameImplEnumerator implements Enumeration { - Vector vector; +class NameImplEnumerator implements Enumeration { + Vector vector; int count; int limit; - NameImplEnumerator(Vector v, int start, int lim) { + NameImplEnumerator(Vector v, int start, int lim) { vector = v; count = start; limit = lim; @@ -721,7 +726,7 @@ return count < limit; } - public Object nextElement() { + public String nextElement() { if (count < limit) { return vector.elementAt(count++); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/Reference.java --- a/jdk/src/share/classes/javax/naming/Reference.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/Reference.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -120,7 +120,7 @@ */ public Reference(String className) { this.className = className; - addrs = new Vector(); + addrs = new Vector<>(); } /** @@ -134,7 +134,7 @@ */ public Reference(String className, RefAddr addr) { this.className = className; - addrs = new Vector(); + addrs = new Vector<>(); addrs.addElement(addr); } @@ -225,7 +225,7 @@ int len = addrs.size(); RefAddr addr; for (int i = 0; i < len; i++) { - addr = (RefAddr) addrs.elementAt(i); + addr = addrs.elementAt(i); if (addr.getType().compareTo(addrType) == 0) return addr; } @@ -241,7 +241,7 @@ * range. */ public RefAddr get(int posn) { - return ((RefAddr) addrs.elementAt(posn)); + return addrs.elementAt(posn); } /** @@ -331,8 +331,8 @@ // ignore factory information if (target.className.equals(this.className) && target.size() == this.size()) { - Enumeration mycomps = getAll(); - Enumeration comps = target.getAll(); + Enumeration mycomps = getAll(); + Enumeration comps = target.getAll(); while (mycomps.hasMoreElements()) if (!(mycomps.nextElement().equals(comps.nextElement()))) return false; @@ -350,7 +350,7 @@ */ public int hashCode() { int hash = className.hashCode(); - for (Enumeration e = getAll(); e.hasMoreElements();) + for (Enumeration e = getAll(); e.hasMoreElements();) hash += e.nextElement().hashCode(); return hash; } @@ -382,7 +382,7 @@ public Object clone() { Reference r = new Reference(className, classFactory, classFactoryLocation); Enumeration a = getAll(); - r.addrs = new Vector(); + r.addrs = new Vector<>(); while (a.hasMoreElements()) r.addrs.addElement(a.nextElement()); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/directory/BasicAttribute.java --- a/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -91,6 +91,7 @@ */ protected boolean ordered = false; + @SuppressWarnings("unchecked") public Object clone() { BasicAttribute attr; try { @@ -98,7 +99,7 @@ } catch (CloneNotSupportedException e) { attr = new BasicAttribute(attrID, ordered); } - attr.values = (Vector)values.clone(); + attr.values = (Vector)values.clone(); return attr; } @@ -149,7 +150,7 @@ } } else { // order is not relevant; check for existence - Enumeration theirs = target.getAll(); + Enumeration theirs = target.getAll(); while (theirs.hasMoreElements()) { if (find(theirs.nextElement()) < 0) return false; @@ -215,7 +216,7 @@ answer.append("No values"); } else { boolean start = true; - for (Enumeration e = values.elements(); e.hasMoreElements(); ) { + for (Enumeration e = values.elements(); e.hasMoreElements(); ) { if (!start) answer.append(", "); answer.append(e.nextElement()); @@ -254,7 +255,7 @@ */ public BasicAttribute(String id, boolean ordered) { attrID = id; - values = new Vector(); + values = new Vector<>(); this.ordered = ordered; } @@ -327,7 +328,7 @@ // For finding first element that has a null in JDK1.1 Vector. // In the Java 2 platform, can just replace this with Vector.indexOf(target); private int find(Object target) { - Class cl; + Class cl; if (target == null) { int ct = values.size(); for (int i = 0 ; i < ct ; i++) { @@ -514,7 +515,7 @@ throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); // read in the attrID int n = s.readInt(); // number of values - values = new Vector(n); + values = new Vector<>(n); while (--n >= 0) { values.addElement(s.readObject()); } @@ -522,31 +523,31 @@ class ValuesEnumImpl implements NamingEnumeration { - Enumeration list; + Enumeration list; - ValuesEnumImpl() { - list = values.elements(); - } + ValuesEnumImpl() { + list = values.elements(); + } - public boolean hasMoreElements() { - return list.hasMoreElements(); - } + public boolean hasMoreElements() { + return list.hasMoreElements(); + } - public Object nextElement() { - return(list.nextElement()); - } + public Object nextElement() { + return(list.nextElement()); + } - public Object next() throws NamingException { - return list.nextElement(); - } + public Object next() throws NamingException { + return list.nextElement(); + } - public boolean hasMore() throws NamingException { - return list.hasMoreElements(); - } + public boolean hasMore() throws NamingException { + return list.hasMoreElements(); + } - public void close() throws NamingException { - list = null; - } + public void close() throws NamingException { + list = null; + } } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/directory/BasicAttributes.java --- a/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/directory/BasicAttributes.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -28,6 +28,7 @@ import java.util.Hashtable; import java.util.Enumeration; +import java.util.Locale; import javax.naming.NamingException; import javax.naming.NamingEnumeration; @@ -78,7 +79,7 @@ // If ignoreCase is true, key is aways lowercase. // If ignoreCase is false, key is stored as supplied by put(). // %%% Not declared "private" due to bug 4064984. - transient Hashtable attrs = new Hashtable(11); + transient Hashtable attrs = new Hashtable<>(11); /** * Constructs a new instance of Attributes. @@ -138,6 +139,7 @@ this.put(new BasicAttribute(attrID, val)); } + @SuppressWarnings("unchecked") public Object clone() { BasicAttributes attrset; try { @@ -145,7 +147,7 @@ } catch (CloneNotSupportedException e) { attrset = new BasicAttributes(ignoreCase); } - attrset.attrs = (Hashtable)attrs.clone(); + attrset.attrs = (Hashtable)attrs.clone(); return attrset; } @@ -158,8 +160,8 @@ } public Attribute get(String attrID) { - Attribute attr = (Attribute) attrs.get( - ignoreCase ? attrID.toLowerCase() : attrID); + Attribute attr = attrs.get( + ignoreCase ? attrID.toLowerCase(Locale.ENGLISH) : attrID); return (attr); } @@ -178,14 +180,14 @@ public Attribute put(Attribute attr) { String id = attr.getID(); if (ignoreCase) { - id = id.toLowerCase(); + id = id.toLowerCase(Locale.ENGLISH); } - return (Attribute)attrs.put(id, attr); + return attrs.put(id, attr); } public Attribute remove(String attrID) { - String id = (ignoreCase ? attrID.toLowerCase() : attrID); - return (Attribute)attrs.remove(id); + String id = (ignoreCase ? attrID.toLowerCase(Locale.ENGLISH) : attrID); + return attrs.remove(id); } /** @@ -234,7 +236,7 @@ if (size() == target.size()) { Attribute their, mine; try { - NamingEnumeration theirs = target.getAll(); + NamingEnumeration theirs = target.getAll(); while (theirs.hasMore()) { their = (Attribute)theirs.next(); mine = get(their.getID()); @@ -268,7 +270,7 @@ public int hashCode() { int hash = (ignoreCase ? 1 : 0); try { - NamingEnumeration all = getAll(); + NamingEnumeration all = getAll(); while (all.hasMore()) { hash += all.next().hashCode(); } @@ -286,7 +288,7 @@ throws java.io.IOException { s.defaultWriteObject(); // write out the ignoreCase flag s.writeInt(attrs.size()); - Enumeration attrEnum = attrs.elements(); + Enumeration attrEnum = attrs.elements(); while (attrEnum.hasMoreElements()) { s.writeObject(attrEnum.nextElement()); } @@ -300,8 +302,8 @@ s.defaultReadObject(); // read in the ignoreCase flag int n = s.readInt(); // number of attributes attrs = (n >= 1) - ? new Hashtable(n * 2) - : new Hashtable(2); // can't have initial size of 0 (grrr...) + ? new Hashtable(n * 2) + : new Hashtable(2); // can't have initial size of 0 (grrr...) while (--n >= 0) { put((Attribute)s.readObject()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java --- a/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/InitialLdapContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -129,15 +129,16 @@ * @see #reconnect * @see LdapContext#reconnect */ + @SuppressWarnings("unchecked") public InitialLdapContext(Hashtable environment, Control[] connCtls) throws NamingException { super(true); // don't initialize yet // Clone environment since caller owns it. - Hashtable env = (environment == null) - ? new Hashtable(11) - : (Hashtable)environment.clone(); + Hashtable env = (environment == null) + ? new Hashtable<>(11) + : (Hashtable)environment.clone(); // Put connect controls into environment. Copy them first since // caller owns the array. diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/ldap/LdapName.java --- a/jdk/src/share/classes/javax/naming/ldap/LdapName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/LdapName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -104,9 +104,7 @@ public class LdapName implements Name { - // private transient ArrayList rdns; // parsed name components - - private transient ArrayList rdns; // parsed name components + private transient List rdns; // parsed name components private transient String unparsed; // if non-null, the DN in unparsed form private static final long serialVersionUID = -1595520034788997356L; @@ -144,14 +142,14 @@ // "Invalid entries, list entries must be of type Rdn"); // } - this.rdns = new ArrayList(rdns.size()); + this.rdns = new ArrayList<>(rdns.size()); for (int i = 0; i < rdns.size(); i++) { Object obj = rdns.get(i); if (!(obj instanceof Rdn)) { throw new IllegalArgumentException("Entry:" + obj + " not a valid type;list entries must be of type Rdn"); } - this.rdns.add(obj); + this.rdns.add((Rdn)obj); } } @@ -161,14 +159,12 @@ * (if "name" is not null), the unparsed DN. * */ - // private LdapName(String name, List rdns, int beg, int end) { - - private LdapName(String name, ArrayList rdns, int beg, int end) { + private LdapName(String name, List rdns, int beg, int end) { unparsed = name; // this.rdns = rdns.subList(beg, end); - List sList = rdns.subList(beg, end); - this.rdns = new ArrayList(sList); + List sList = rdns.subList(beg, end); + this.rdns = new ArrayList<>(sList); } /** @@ -201,7 +197,7 @@ * Each element of the enumeration is of class String. */ public Enumeration getAll() { - final Iterator iter = rdns.iterator(); + final Iterator iter = rdns.iterator(); return new Enumeration() { public boolean hasMoreElements() { @@ -234,7 +230,7 @@ * specified range. */ public Rdn getRdn(int posn) { - return (Rdn) rdns.get(posn); + return rdns.get(posn); } /** @@ -370,7 +366,7 @@ doesListMatch(len1 - len2, len1, rdns)); } - private boolean doesListMatch(int beg, int end, List rdns) { + private boolean doesListMatch(int beg, int end, List rdns) { for (int i = beg; i < end; i++) { if (!this.rdns.get(i).equals(rdns.get(i - beg))) { return false; @@ -457,10 +453,10 @@ LdapName s = (LdapName) suffix; rdns.addAll(posn, s.rdns); } else { - Enumeration comps = suffix.getAll(); + Enumeration comps = suffix.getAll(); while (comps.hasMoreElements()) { rdns.add(posn++, - (new Rfc2253Parser((String) comps.nextElement()). + (new Rfc2253Parser(comps.nextElement()). parseRdn())); } } @@ -489,7 +485,7 @@ throw new IllegalArgumentException("Entry:" + obj + " not a valid type;suffix list entries must be of type Rdn"); } - rdns.add(i + posn, obj); + rdns.add(i + posn, (Rdn)obj); } return this; } @@ -627,11 +623,11 @@ StringBuilder builder = new StringBuilder(); int size = rdns.size(); if ((size - 1) >= 0) { - builder.append((Rdn) rdns.get(size - 1)); + builder.append(rdns.get(size - 1)); } for (int next = size - 2; next >= 0; next--) { builder.append(','); - builder.append((Rdn) rdns.get(next)); + builder.append(rdns.get(next)); } unparsed = builder.toString(); return unparsed; @@ -672,8 +668,8 @@ // Compare RDNs one by one for equality for (int i = 0; i < rdns.size(); i++) { // Compare a single pair of RDNs. - Rdn rdn1 = (Rdn) rdns.get(i); - Rdn rdn2 = (Rdn) that.rdns.get(i); + Rdn rdn1 = rdns.get(i); + Rdn rdn2 = that.rdns.get(i); if (!rdn1.equals(rdn2)) { return false; } @@ -727,8 +723,8 @@ int minSize = Math.min(rdns.size(), that.rdns.size()); for (int i = 0; i < minSize; i++) { // Compare a single pair of RDNs. - Rdn rdn1 = (Rdn)rdns.get(i); - Rdn rdn2 = (Rdn)that.rdns.get(i); + Rdn rdn1 = rdns.get(i); + Rdn rdn2 = that.rdns.get(i); int diff = rdn1.compareTo(rdn2); if (diff != 0) { @@ -752,7 +748,7 @@ // For each RDN... for (int i = 0; i < rdns.size(); i++) { - Rdn rdn = (Rdn) rdns.get(i); + Rdn rdn = rdns.get(i); hash += rdn.hashCode(); } return hash; @@ -786,6 +782,6 @@ private void parse() throws InvalidNameException { // rdns = (ArrayList) (new RFC2253Parser(unparsed)).getDN(); - rdns = (ArrayList) (new Rfc2253Parser(unparsed)).parseDn(); + rdns = new Rfc2253Parser(unparsed).parseDn(); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/ldap/Rdn.java --- a/jdk/src/share/classes/javax/naming/ldap/Rdn.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/Rdn.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -28,6 +28,7 @@ import java.util.Iterator; import java.util.NoSuchElementException; import java.util.ArrayList; +import java.util.Locale; import java.util.Collections; import javax.naming.InvalidNameException; @@ -104,8 +105,7 @@ public class Rdn implements Serializable, Comparable { - // private transient ArrayList entries; - private transient ArrayList entries; + private transient ArrayList entries; // The common case. private static final int DEFAULT_SIZE = 1; @@ -130,12 +130,12 @@ if (attrSet.size() == 0) { throw new InvalidNameException("Attributes cannot be empty"); } - entries = new ArrayList(attrSet.size()); - NamingEnumeration attrs = attrSet.getAll(); + entries = new ArrayList<>(attrSet.size()); + NamingEnumeration attrs = attrSet.getAll(); try { for (int nEntries = 0; attrs.hasMore(); nEntries++) { RdnEntry entry = new RdnEntry(); - Attribute attr = (Attribute) attrs.next(); + Attribute attr = attrs.next(); entry.type = attr.getID(); entry.value = attr.get(); entries.add(nEntries, entry); @@ -161,7 +161,7 @@ * parsing of the rdnString. */ public Rdn(String rdnString) throws InvalidNameException { - entries = new ArrayList(DEFAULT_SIZE); + entries = new ArrayList<>(DEFAULT_SIZE); (new Rfc2253Parser(rdnString)).parseRdn(this); } @@ -172,7 +172,7 @@ * @param rdn The non-null Rdn to be copied. */ public Rdn(Rdn rdn) { - entries = new ArrayList(rdn.entries.size()); + entries = new ArrayList<>(rdn.entries.size()); entries.addAll(rdn.entries); } @@ -199,7 +199,7 @@ "type or value cannot be empty, type:" + type + " value:" + value); } - entries = new ArrayList(DEFAULT_SIZE); + entries = new ArrayList<>(DEFAULT_SIZE); put(type, value); } @@ -210,7 +210,7 @@ // An empty constructor used by the parser Rdn() { - entries = new ArrayList(DEFAULT_SIZE); + entries = new ArrayList<>(DEFAULT_SIZE); } /* @@ -257,7 +257,7 @@ * @return The non-null attribute value. */ public Object getValue() { - return ((RdnEntry) entries.get(0)).getValue(); + return entries.get(0).getValue(); } /** @@ -275,7 +275,7 @@ * @return The non-null attribute type. */ public String getType() { - return ((RdnEntry) entries.get(0)).getType(); + return entries.get(0).getType(); } /** @@ -329,8 +329,7 @@ for (int i = 0; i < minSize; i++) { // Compare a single pair of type/value pairs. - int diff = ((RdnEntry) entries.get(i)).compareTo( - that.entries.get(i)); + int diff = entries.get(i).compareTo(that.entries.get(i)); if (diff != 0) { return diff; } @@ -408,7 +407,7 @@ public Attributes toAttributes() { Attributes attrs = new BasicAttributes(true); for (int i = 0; i < entries.size(); i++) { - RdnEntry entry = (RdnEntry) entries.get(i); + RdnEntry entry = entries.get(i); Attribute attr = attrs.put(entry.getType(), entry.getValue()); if (attr != null) { attr.add(entry.getValue()); @@ -419,7 +418,7 @@ } - private static class RdnEntry implements Comparable { + private static class RdnEntry implements Comparable { private String type; private Object value; @@ -435,14 +434,8 @@ return value; } - public int compareTo(Object obj) { - - // Any change here affecting equality must be - // reflected in hashCode(). - RdnEntry that = (RdnEntry) obj; - - int diff = type.toUpperCase().compareTo( - that.type.toUpperCase()); + public int compareTo(RdnEntry that) { + int diff = type.compareToIgnoreCase(that.type); if (diff != 0) { return diff; } @@ -469,7 +462,7 @@ } public int hashCode() { - return (type.toUpperCase().hashCode() + + return (type.toUpperCase(Locale.ENGLISH).hashCode() + getValueComparable().hashCode()); } @@ -486,7 +479,7 @@ if (value instanceof byte[]) { comparable = escapeBinaryValue((byte[]) value); } else { - comparable = ((String) value).toUpperCase(); + comparable = ((String) value).toUpperCase(Locale.ENGLISH); } return comparable; } @@ -576,7 +569,6 @@ builder.append(Character.forDigit(0xF & b, 16)); } return builder.toString(); - // return builder.toString().toUpperCase(); } /** @@ -755,7 +747,7 @@ private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); - entries = new ArrayList(DEFAULT_SIZE); + entries = new ArrayList<>(DEFAULT_SIZE); String unparsed = (String) s.readObject(); try { (new Rfc2253Parser(unparsed)).parseRdn(this); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java --- a/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/Rfc2253Parser.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -54,14 +54,14 @@ */ // public List getDN() throws InvalidNameException { - List parseDn() throws InvalidNameException { + List parseDn() throws InvalidNameException { cur = 0; // ArrayList rdns = // new ArrayList(len / 3 + 10); // leave room for growth - ArrayList rdns = - new ArrayList(len / 3 + 10); // leave room for growth + ArrayList rdns = + new ArrayList<>(len / 3 + 10); // leave room for growth if (len == 0) { return rdns; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java --- a/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/StartTlsRequest.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -192,7 +192,7 @@ } try { VersionHelper helper = VersionHelper.getVersionHelper(); - Class clas = helper.loadClass( + Class clas = helper.loadClass( "com.sun.jndi.ldap.ext.StartTlsResponseImpl"); resp = (StartTlsResponse) clas.newInstance(); @@ -226,19 +226,19 @@ * Acquire the class loader associated with this thread. */ private final ClassLoader getContextClassLoader() { - return (ClassLoader) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + return AccessController.doPrivileged( + new PrivilegedAction() { + public ClassLoader run() { return Thread.currentThread().getContextClassLoader(); } } ); } - private final static boolean privilegedHasNext(final Iterator iter) { - Boolean answer = (Boolean) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { + private final static boolean privilegedHasNext(final Iterator iter) { + Boolean answer = AccessController.doPrivileged( + new PrivilegedAction() { + public Boolean run() { return Boolean.valueOf(iter.hasNext()); } }); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/spi/ContinuationContext.java --- a/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/spi/ContinuationContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -38,11 +38,11 @@ class ContinuationContext implements Context, Resolver { protected CannotProceedException cpe; - protected Hashtable env; + protected Hashtable env; protected Context contCtx = null; protected ContinuationContext(CannotProceedException cpe, - Hashtable env) { + Hashtable env) { this.cpe = cpe; this.env = env; } @@ -109,24 +109,24 @@ ctx.rename(name, newName); } - public NamingEnumeration list(Name name) throws NamingException { + public NamingEnumeration list(Name name) throws NamingException { Context ctx = getTargetContext(); return ctx.list(name); } - public NamingEnumeration list(String name) throws NamingException { + public NamingEnumeration list(String name) throws NamingException { Context ctx = getTargetContext(); return ctx.list(name); } - public NamingEnumeration listBindings(Name name) + public NamingEnumeration listBindings(Name name) throws NamingException { Context ctx = getTargetContext(); return ctx.listBindings(name); } - public NamingEnumeration listBindings(String name) throws NamingException { + public NamingEnumeration listBindings(String name) throws NamingException { Context ctx = getTargetContext(); return ctx.listBindings(name); } @@ -193,7 +193,7 @@ return ctx.removeFromEnvironment(propName); } - public Hashtable getEnvironment() throws NamingException { + public Hashtable getEnvironment() throws NamingException { Context ctx = getTargetContext(); return ctx.getEnvironment(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java --- a/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/spi/ContinuationDirContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -38,6 +38,7 @@ import javax.naming.directory.DirContext; import javax.naming.directory.Attributes; import javax.naming.directory.SearchControls; +import javax.naming.directory.SearchResult; import javax.naming.directory.ModificationItem; /** @@ -50,7 +51,7 @@ class ContinuationDirContext extends ContinuationContext implements DirContext { - ContinuationDirContext(CannotProceedException cpe, Hashtable env) { + ContinuationDirContext(CannotProceedException cpe, Hashtable env) { super(cpe, env); } @@ -204,7 +205,7 @@ res.getDirContext().createSubcontext(res.getString(), attrs); } - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException { @@ -213,7 +214,7 @@ attributesToReturn); } - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException { @@ -223,13 +224,13 @@ attributesToReturn); } - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, Attributes matchingAttributes) throws NamingException { DirContextNamePair res = getTargetContext(name); return res.getDirContext().search(res.getName(), matchingAttributes); } - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException { DirContextStringPair res = getTargetContext(name); @@ -237,7 +238,7 @@ matchingAttributes); } - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, String filter, SearchControls cons) throws NamingException { @@ -245,7 +246,7 @@ return res.getDirContext().search(res.getName(), filter, cons); } - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException { @@ -253,7 +254,7 @@ return res.getDirContext().search(res.getString(), filter, cons); } - public NamingEnumeration search(Name name, + public NamingEnumeration search(Name name, String filterExpr, Object[] args, SearchControls cons) @@ -263,7 +264,7 @@ cons); } - public NamingEnumeration search(String name, + public NamingEnumeration search(String name, String filterExpr, Object[] args, SearchControls cons) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/spi/DirectoryManager.java --- a/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/spi/DirectoryManager.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -84,15 +84,16 @@ * * @see NamingManager#getContinuationContext(CannotProceedException) */ + @SuppressWarnings("unchecked") public static DirContext getContinuationDirContext( CannotProceedException cpe) throws NamingException { - Hashtable env = cpe.getEnvironment(); + Hashtable env = (Hashtable)cpe.getEnvironment(); if (env == null) { - env = new Hashtable(7); + env = new Hashtable<>(7); } else { // Make a (shallow) copy of the environment. - env = (Hashtable) env.clone(); + env = (Hashtable) env.clone(); } env.put(CPE, cpe); @@ -217,7 +218,7 @@ } private static Object createObjectFromFactories(Object obj, Name name, - Context nameCtx, Hashtable environment, Attributes attrs) + Context nameCtx, Hashtable environment, Attributes attrs) throws Exception { FactoryEnumeration factories = ResourceManager.getFactories( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/naming/spi/NamingManager.java --- a/jdk/src/share/classes/javax/naming/spi/NamingManager.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/naming/spi/NamingManager.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -139,7 +139,7 @@ throws IllegalAccessException, InstantiationException, MalformedURLException { - Class clas = null; + Class clas = null; // Try to use current class loader try { @@ -172,7 +172,7 @@ * @return factory created; null if cannot create */ private static Object createObjectFromFactories(Object obj, Name name, - Context nameCtx, Hashtable environment) throws Exception { + Context nameCtx, Hashtable environment) throws Exception { FactoryEnumeration factories = ResourceManager.getFactories( Context.OBJECT_FACTORIES, environment, nameCtx); @@ -349,7 +349,7 @@ * invoking a factory. */ static Object processURLAddrs(Reference ref, Name name, Context nameCtx, - Hashtable environment) + Hashtable environment) throws NamingException { for (int i = 0; i < ref.size(); i++) { @@ -368,7 +368,7 @@ } private static Object processURL(Object refInfo, Name name, - Context nameCtx, Hashtable environment) + Context nameCtx, Hashtable environment) throws NamingException { Object answer; @@ -427,7 +427,7 @@ * @see #getObjectInstance */ static Context getContext(Object obj, Name name, Context nameCtx, - Hashtable environment) throws NamingException { + Hashtable environment) throws NamingException { Object answer; if (obj instanceof Context) { @@ -452,7 +452,7 @@ // Used by ContinuationContext static Resolver getResolver(Object obj, Name name, Context nameCtx, - Hashtable environment) throws NamingException { + Hashtable environment) throws NamingException { Object answer; if (obj instanceof Resolver) { @@ -585,7 +585,7 @@ */ private static Object getURLObject(String scheme, Object urlInfo, Name name, Context nameCtx, - Hashtable environment) + Hashtable environment) throws NamingException { // e.g. "ftpURLContextFactory" @@ -771,15 +771,16 @@ * @return A non-null Context object for continuing the operation. * @exception NamingException If a naming exception occurred. */ + @SuppressWarnings("unchecked") public static Context getContinuationContext(CannotProceedException cpe) throws NamingException { - Hashtable env = cpe.getEnvironment(); + Hashtable env = (Hashtable)cpe.getEnvironment(); if (env == null) { - env = new Hashtable(7); + env = new Hashtable<>(7); } else { // Make a (shallow) copy of the environment. - env = (Hashtable) env.clone(); + env = (Hashtable)env.clone(); } env.put(CPE, cpe); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java --- a/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/net/ssl/HttpsURLConnection.java Mon Aug 29 14:29:23 2011 -0700 @@ -144,8 +144,7 @@ throws SSLPeerUnverifiedException { java.security.cert.Certificate[] certs = getServerCertificates(); - return ((X500Principal) - ((X509Certificate)certs[0]).getSubjectX500Principal()); + return ((X509Certificate)certs[0]).getSubjectX500Principal(); } /** @@ -173,8 +172,7 @@ java.security.cert.Certificate[] certs = getLocalCertificates(); if (certs != null) { - return ((X500Principal) - ((X509Certificate)certs[0]).getSubjectX500Principal()); + return ((X509Certificate)certs[0]).getSubjectX500Principal(); } else { return null; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java --- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -382,7 +382,7 @@ */ public java.io.OutputStream setBinaryStream(long pos) throws SerialException, SQLException { - if (this.blob.setBinaryStream(pos) != null) { + if (this.blob != null) { return this.blob.setBinaryStream(pos); } else { throw new SerialException("Unsupported operation. SerialBlob cannot " + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java --- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java Mon Aug 29 14:29:23 2011 -0700 @@ -436,7 +436,7 @@ */ public java.io.OutputStream setAsciiStream(long pos) throws SerialException, SQLException { - if (this.clob.setAsciiStream(pos) != null) { + if (this.clob != null) { return this.clob.setAsciiStream(pos); } else { throw new SerialException("Unsupported operation. SerialClob cannot " + @@ -466,7 +466,7 @@ */ public java.io.Writer setCharacterStream(long pos) throws SerialException, SQLException { - if (this.clob.setCharacterStream(pos) != null) { + if (this.clob != null) { return this.clob.setCharacterStream(pos); } else { throw new SerialException("Unsupported operation. SerialClob cannot " + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/font/FontManagerFactory.java --- a/jdk/src/share/classes/sun/font/FontManagerFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/font/FontManagerFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -78,20 +78,11 @@ ClassLoader cl = ClassLoader.getSystemClassLoader(); Class fmClass = Class.forName(fmClassName, true, cl); instance = (FontManager) fmClass.newInstance(); - } catch (ClassNotFoundException ex) { - InternalError err = new InternalError(); - err.initCause(ex); - throw err; + } catch (ClassNotFoundException | + InstantiationException | + IllegalAccessException ex) { + throw new InternalError(ex); - } catch (InstantiationException ex) { - InternalError err = new InternalError(); - err.initCause(ex); - throw err; - - } catch (IllegalAccessException ex) { - InternalError err = new InternalError(); - err.initCause(ex); - throw err; } return null; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharASCII.java --- a/jdk/src/share/classes/sun/io/ByteToCharASCII.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -/** - * A algorithmic conversion from ASCII to Unicode - * - * @author Limin Shi - */ -public class ByteToCharASCII extends ByteToCharConverter { - - // Return the character set id - public String getCharacterEncoding() - { - return "ASCII"; - } - - public int flush(char[] output, int outStart, int outEnd) { - // This converter will not buffer any data. - byteOff = charOff = 0; - return 0; - } - - /** - * Algorithmic character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws ConversionBufferFullException, UnknownCharacterException - { - byte inputByte; - - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while(byteOff < inEnd) - { - // If we don't have room for the output, throw an exception - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - // Convert the input byte - inputByte = input[byteOff++]; - - if (inputByte >= 0) - output[charOff++] = (char)inputByte; - else { - if (subMode) - output[charOff++] = '\uFFFD'; // Replace Char - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - - // Return the length written to the output buffer - return charOff-outOff; - } - - /* - * Reset after finding bad input - */ - public void reset() { - byteOff = charOff = 0; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharBig5.java --- a/jdk/src/share/classes/sun/io/ByteToCharBig5.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* - * 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 - * 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.DoubleByte; -import sun.nio.cs.ext.Big5; - -/** - * Tables and data to convert Big5 to Unicode - * - */ - -public class ByteToCharBig5 extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new Big5().newDecoder(); - - public String getCharacterEncoding() { - return "Big5"; - } - - public ByteToCharBig5() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java --- a/jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2001, 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.Big5_HKSCS; -import sun.nio.cs.ext.HKSCS; -import static sun.nio.cs.CharsetMapping.*; - -public class ByteToCharBig5_HKSCS extends ByteToCharDBCS_ASCII { - - protected static HKSCS.Decoder dec = - (HKSCS.Decoder)new Big5_HKSCS().newDecoder(); - - - public String getCharacterEncoding() { - return "Big5_HKSCS"; - } - - public ByteToCharBig5_HKSCS() { - super(dec); - } - - protected char decodeDouble(int byte1, int byte2) { - char c = dec.decodeDouble(byte1, byte2); - if (c == UNMAPPABLE_DECODING) - c = dec.decodeBig5(byte1, byte2); - return c; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java --- a/jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2001, 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.DoubleByte; -import sun.nio.cs.ext.Big5_Solaris; - -public class ByteToCharBig5_Solaris extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new Big5_Solaris().newDecoder(); - - public String getCharacterEncoding() { - return "Big5_Solaris"; - } - - public ByteToCharBig5_Solaris() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharConverter.java --- a/jdk/src/share/classes/sun/io/ByteToCharConverter.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,294 +0,0 @@ -/* - * Copyright (c) 1996, 2004, 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 java.io.*; - - -/** - * An abstract base class for subclasses which convert character data - * in an external encoding into Unicode characters. - * - * @author Asmus Freytag - * @author Lloyd Honomichl - * - * @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE - * REMOVED IN J2SE 1.6. - */ -@Deprecated -public abstract class ByteToCharConverter { - - /* - * Substitution mode flag. - */ - protected boolean subMode = true; - - /* - * Characters to use for automatic substitution. - */ - protected char[] subChars = { '\uFFFD' }; - - /* - * Offset of next character to be output - */ - protected int charOff; - - /* - * Offset of next byte to be converted - */ - protected int byteOff; - - /* - * Length of bad input that caused a MalformedInputException. - */ - protected int badInputLength; - - /** - * Create an instance of the default ByteToCharConverter subclass. - */ - public static ByteToCharConverter getDefault() { - Object cvt; - cvt = Converters.newDefaultConverter(Converters.BYTE_TO_CHAR); - return (ByteToCharConverter)cvt; - } - - /** - * Returns appropriate ByteToCharConverter subclass instance. - * @param string represents encoding - */ - public static ByteToCharConverter getConverter(String encoding) - throws UnsupportedEncodingException - { - Object cvt; - cvt = Converters.newConverter(Converters.BYTE_TO_CHAR, encoding); - return (ByteToCharConverter)cvt; - } - - /** - * Returns the character set id for the conversion - */ - public abstract String getCharacterEncoding(); - - /** - * Converts an array of bytes containing characters in an external - * encoding into an array of Unicode characters. This method allows - * a buffer by buffer conversion of a data stream. The state of the - * conversion is saved between calls to convert. Among other things, - * this means multibyte input sequences can be split between calls. - * If a call to convert results in an exception, the conversion may be - * continued by calling convert again with suitably modified parameters. - * All conversions should be finished with a call to the flush method. - * - * @return the number of bytes written to output. - * @param input byte array containing text to be converted. - * @param inStart begin conversion at this offset in input array. - * @param inEnd stop conversion at this offset in input array (exclusive). - * @param output character array to receive conversion result. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @exception MalformedInputException if the input buffer contains any - * sequence of bytes that is illegal for the input character set. - * @exception UnknownCharacterException for any character that - * that cannot be converted to Unicode. Thrown only when converter - * is not in substitution mode. - * @exception ConversionBufferFullException if output array is filled prior - * to converting all the input. - */ - public abstract int convert(byte[] input, int inStart, int inEnd, - char[] output, int outStart, int outEnd) - throws MalformedInputException, - UnknownCharacterException, - ConversionBufferFullException; - - /** - * Converts an array of bytes containing characters in an external - * encoding into an array of Unicode characters. Unlike convert, - * this method does not do incremental conversion. It assumes that - * the given input array contains all the characters to be - * converted. The state of the converter is reset at the beginning - * of this method and is left in the reset state on successful - * termination. The converter is not reset if an exception is - * thrown. This allows the caller to determine where the bad input - * was encountered by calling nextByteIndex. - *

      - * This method uses substitution mode when performing the - * conversion. The method setSubstitutionChars may be used to - * determine what characters are substituted. Even though substitution - * mode is used, the state of the converter's substitution mode is - * not changed at the end of this method. - * - * @return an array of chars containing the converted characters. - * @param input array containing Unicode characters to be converted. - * @exception MalformedInputException if the input buffer contains any - * sequence of chars that is illegal in the input character encoding. - * After this exception is thrown, - * the method nextByteIndex can be called to obtain the index of the - * first invalid input byte and getBadInputLength can be called - * to determine the length of the invalid input. - * - * @see #nextByteIndex - * @see #setSubstitutionMode - * @see sun.io.CharToByteConverter#setSubstitutionBytes(byte[]) - * @see #getBadInputLength - */ - public char[] convertAll( byte input[] ) throws MalformedInputException { - reset(); - boolean savedSubMode = subMode; - subMode = true; - - char[] output = new char[ getMaxCharsPerByte() * input.length ]; - - try { - int outputLength = convert( input, 0, input.length, - output, 0, output.length ); - outputLength += flush( output, outputLength, output.length ); - - char [] returnedOutput = new char[ outputLength ]; - System.arraycopy( output, 0, returnedOutput, 0, outputLength ); - return returnedOutput; - } - catch( ConversionBufferFullException e ) { - //Not supposed to happen. If it does, getMaxCharsPerByte() lied. - throw new - InternalError("this.getMaxCharsBerByte returned bad value"); - } - catch( UnknownCharacterException e ) { - // Not supposed to happen since we're in substitution mode. - throw new InternalError(); - } - finally { - subMode = savedSubMode; - } - } - - /** - * Writes any remaining output to the output buffer and resets the - * converter to its initial state. - * - * @param output char array to receive flushed output. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @exception MalformedInputException if the output to be flushed contained - * a partial or invalid multibyte character sequence. flush will - * write what it can to the output buffer and reset the converter before - * throwing this exception. An additional call to flush is not required. - * @exception ConversionBufferFullException if output array is filled - * before all the output can be flushed. flush will write what it can - * to the output buffer and remember its state. An additional call to - * flush with a new output buffer will conclude the operation. - */ - public abstract int flush( char[] output, int outStart, int outEnd ) - throws MalformedInputException, ConversionBufferFullException; - - /** - * Resets converter to its initial state. - */ - public abstract void reset(); - - /** - * Returns the maximum number of characters needed to convert a byte. Useful - * for calculating the maximum output buffer size needed for a particular - * input buffer. - */ - public int getMaxCharsPerByte() { - // Until UTF-16, this will do for every encoding - return 1; - } - - /** - * Returns the length, in bytes, of the input which caused a - * MalformedInputException. Always refers to the last - * MalformedInputException thrown by the converter. If none have - * ever been thrown, returns 0. - */ - public int getBadInputLength() { - return badInputLength; - } - - /** - * Returns the index of the character just past the last character - * written by the previous call to convert. - */ - public int nextCharIndex() { - return charOff; - } - - /** - * Returns the index of the byte just past the last byte successfully - * converted by the previous call to convert. - */ - public int nextByteIndex() { - return byteOff; - } - - /** - * Sets converter into substitution mode. In substitution mode, - * the converter will replace untranslatable characters in the source - * encoding with the substitution character set by setSubstitionChars. - * When not in substitution mode, the converter will throw an - * UnknownCharacterException when it encounters untranslatable input. - * - * @param doSub if true, enable substitution mode. - * @see #setSubstitutionChars - */ - public void setSubstitutionMode(boolean doSub) { - subMode = doSub; - } - - /** - * Sets the substitution characters to use when the converter is in - * substitution mode. The given chars must not be - * longer than the value returned by getMaxCharsPerByte for this - * converter. - * - * @param newSubBytes the substitution bytes - * @exception IllegalArgumentException if given byte array is longer than - * the value returned by the method getMaxBytesPerChar. - * @see #setSubstitutionMode - * @see #getMaxBytesPerChar - */ - /** - * sets the substitution character to use - * @param c the substitution character - */ - public void setSubstitutionChars(char[] c) - throws IllegalArgumentException - { - if( c.length > getMaxCharsPerByte() ) { - throw new IllegalArgumentException(); - } - - subChars = new char[ c.length ]; - System.arraycopy( c, 0, subChars, 0, c.length ); - } - - /** - * returns a string representation of the character conversion - */ - public String toString() { - return "ByteToCharConverter: " + getCharacterEncoding(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp037.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp037.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM037; - -/** - * A table to convert to Cp037 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp037 extends ByteToCharSingleByte { - - private final static IBM037 nioCoder = new IBM037(); - - public String getCharacterEncoding() { - return "Cp037"; - } - - public ByteToCharCp037() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1006.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1006.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1006; - -/** - * A table to convert to Cp1006 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1006 extends ByteToCharSingleByte { - - private final static IBM1006 nioCoder = new IBM1006(); - - public String getCharacterEncoding() { - return "Cp1006"; - } - - public ByteToCharCp1006() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1025.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1025.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1025; - -/** - * A table to convert to Cp1025 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1025 extends ByteToCharSingleByte { - - private final static IBM1025 nioCoder = new IBM1025(); - - public String getCharacterEncoding() { - return "Cp1025"; - } - - public ByteToCharCp1025() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1026.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1026.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1026; - -/** - * A table to convert to Cp1026 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1026 extends ByteToCharSingleByte { - - private final static IBM1026 nioCoder = new IBM1026(); - - public String getCharacterEncoding() { - return "Cp1026"; - } - - public ByteToCharCp1026() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1046.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1046.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1046; - -/** - * A table to convert to Cp1046 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1046 extends ByteToCharSingleByte { - - private final static IBM1046 nioCoder = new IBM1046(); - - public String getCharacterEncoding() { - return "Cp1046"; - } - - public ByteToCharCp1046() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1047.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1047.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2002, 2003, 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.IBM1047; - -/** - * A table to convert to Cp1047 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1047 extends ByteToCharSingleByte { - - private final static IBM1047 nioCoder = new IBM1047(); - - public String getCharacterEncoding() { - return "Cp1047"; - } - - public ByteToCharCp1047() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1097.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1097.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1097; - -/** - * A table to convert to Cp1097 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1097 extends ByteToCharSingleByte { - - private final static IBM1097 nioCoder = new IBM1097(); - - public String getCharacterEncoding() { - return "Cp1097"; - } - - public ByteToCharCp1097() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1098.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1098.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1098; - -/** - * A table to convert to Cp1098 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1098 extends ByteToCharSingleByte { - - private final static IBM1098 nioCoder = new IBM1098(); - - public String getCharacterEncoding() { - return "Cp1098"; - } - - public ByteToCharCp1098() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1112.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1112.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1112; - -/** - * A table to convert to Cp1112 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1112 extends ByteToCharSingleByte { - - private final static IBM1112 nioCoder = new IBM1112(); - - public String getCharacterEncoding() { - return "Cp1112"; - } - - public ByteToCharCp1112() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1122.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1122.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1122; - -/** - * A table to convert to Cp1122 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1122 extends ByteToCharSingleByte { - - private final static IBM1122 nioCoder = new IBM1122(); - - public String getCharacterEncoding() { - return "Cp1122"; - } - - public ByteToCharCp1122() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1123.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1123.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1123; - -/** - * A table to convert to Cp1123 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1123 extends ByteToCharSingleByte { - - private final static IBM1123 nioCoder = new IBM1123(); - - public String getCharacterEncoding() { - return "Cp1123"; - } - - public ByteToCharCp1123() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1124.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1124.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1124; - -/** - * A table to convert to Cp1124 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1124 extends ByteToCharSingleByte { - - private final static IBM1124 nioCoder = new IBM1124(); - - public String getCharacterEncoding() { - return "Cp1124"; - } - - public ByteToCharCp1124() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1140.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1140.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1140 to Unicode. This converter differs from - * Cp037 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1140 extends ByteToCharCp037 { - public ByteToCharCp1140() {} - - public String getCharacterEncoding() { - return "Cp1140"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1141.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1141.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1141 to Unicode. This converter differs from - * Cp273 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1141 extends ByteToCharCp273 { - public ByteToCharCp1141() {} - - public String getCharacterEncoding() { - return "Cp1141"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1142.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1142.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1142 to Unicode. This converter differs from - * Cp277 is one code point, 0x5A, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1142 extends ByteToCharCp277 { - public ByteToCharCp1142() {} - - public String getCharacterEncoding() { - return "Cp1142"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // [Careful -- if the code point in question is >= 0x80, make - // sure you do the comparison like this: (byteIndex == (byte)0x??)] - return (byteIndex == 0x5A) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1143.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1143.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1143 to Unicode. This converter differs from - * Cp278 is one code point, 0x5A, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1143 extends ByteToCharCp278 { - public ByteToCharCp1143() {} - - public String getCharacterEncoding() { - return "Cp1143"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // [Careful -- if the code point in question is >= 0x80, make - // sure you do the comparison like this: (byteIndex == (byte)0x??)] - return (byteIndex == 0x5A) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1144.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1144.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1144 to Unicode. This converter differs from - * Cp280 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1144 extends ByteToCharCp280 { - public ByteToCharCp1144() {} - - public String getCharacterEncoding() { - return "Cp1144"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1145.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1145.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1145 to Unicode. This converter differs from - * Cp284 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1145 extends ByteToCharCp284 { - public ByteToCharCp1145() {} - - public String getCharacterEncoding() { - return "Cp1145"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1146.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1146.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1146 to Unicode. This converter differs from - * Cp285 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1146 extends ByteToCharCp285 { - public ByteToCharCp1146() {} - - public String getCharacterEncoding() { - return "Cp1146"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1147.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1147.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1147 to Unicode. This converter differs from - * Cp297 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1147 extends ByteToCharCp297 { - public ByteToCharCp1147() {} - - public String getCharacterEncoding() { - return "Cp1147"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1148.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1148.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1148 to Unicode. This converter differs from - * Cp500 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1148 extends ByteToCharCp500 { - public ByteToCharCp1148() {} - - public String getCharacterEncoding() { - return "Cp1148"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1149.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1149.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp1149 to Unicode. This converter differs from - * Cp871 is one code point, 0x9F, which changes from \u00A4 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp1149 extends ByteToCharCp871 { - public ByteToCharCp1149() {} - - public String getCharacterEncoding() { - return "Cp1149"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0x9F) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1250.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1250.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1250; - -/** - * A table to convert Cp1250 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1250 extends ByteToCharSingleByte { - - private final static MS1250 nioCoder = new MS1250(); - - public String getCharacterEncoding() { - return "Cp1250"; - } - - public ByteToCharCp1250() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1251.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1251.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1251; - -/** - * A table to convert Cp1251 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1251 extends ByteToCharSingleByte { - - private final static MS1251 nioCoder = new MS1251(); - - public String getCharacterEncoding() { - return "Cp1251"; - } - - public ByteToCharCp1251() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1252.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1252.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1252; - -/** - * A table to convert Cp1252 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1252 extends ByteToCharSingleByte { - - private final static MS1252 nioCoder = new MS1252(); - - public String getCharacterEncoding() { - return "Cp1252"; - } - - public ByteToCharCp1252() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1253.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1253.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1253; - -/** - * A table to convert Cp1253 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1253 extends ByteToCharSingleByte { - - private final static MS1253 nioCoder = new MS1253(); - - public String getCharacterEncoding() { - return "Cp1253"; - } - - public ByteToCharCp1253() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1254.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1254.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1254; - -/** - * A table to convert Cp1254 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1254 extends ByteToCharSingleByte { - - private final static MS1254 nioCoder = new MS1254(); - - public String getCharacterEncoding() { - return "Cp1254"; - } - - public ByteToCharCp1254() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1255.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1255.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1255; - -/** - * A table to convert Cp1255 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1255 extends ByteToCharSingleByte { - - private final static MS1255 nioCoder = new MS1255(); - - public String getCharacterEncoding() { - return "Cp1255"; - } - - public ByteToCharCp1255() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1256.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1256.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1256; - -/** - * A table to convert Cp1256 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1256 extends ByteToCharSingleByte { - - private final static MS1256 nioCoder = new MS1256(); - - public String getCharacterEncoding() { - return "Cp1256"; - } - - public ByteToCharCp1256() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1257.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1257.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1257; - -/** - * A table to convert Cp1257 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1257 extends ByteToCharSingleByte { - - private final static MS1257 nioCoder = new MS1257(); - - public String getCharacterEncoding() { - return "Cp1257"; - } - - public ByteToCharCp1257() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1258.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1258.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1258; - -/** - * A table to convert Cp1258 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp1258 extends ByteToCharSingleByte { - - private final static MS1258 nioCoder = new MS1258(); - - public String getCharacterEncoding() { - return "Cp1258"; - } - - public ByteToCharCp1258() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1381.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1381.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp1381 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp1381"; - } - - public ByteToCharCp1381() { - super((DoubleByte.Decoder)new IBM1381().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp1383.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp1383.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp1383 extends ByteToCharEUC2 { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp1383"; - } - - public ByteToCharCp1383() { - super((DoubleByte.Decoder)new IBM1383().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp273.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp273.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM273; - -/** - * A table to convert to Cp273 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp273 extends ByteToCharSingleByte { - - private final static IBM273 nioCoder = new IBM273(); - - public String getCharacterEncoding() { - return "Cp273"; - } - - public ByteToCharCp273() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp277.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp277.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM277; - -/** - * A table to convert to Cp277 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp277 extends ByteToCharSingleByte { - - private final static IBM277 nioCoder = new IBM277(); - - public String getCharacterEncoding() { - return "Cp277"; - } - - public ByteToCharCp277() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp278.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp278.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM278; - -/** - * A table to convert to Cp278 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp278 extends ByteToCharSingleByte { - - private final static IBM278 nioCoder = new IBM278(); - - public String getCharacterEncoding() { - return "Cp278"; - } - - public ByteToCharCp278() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp280.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp280.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM280; - -/** - * A table to convert to Cp280 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp280 extends ByteToCharSingleByte { - - private final static IBM280 nioCoder = new IBM280(); - - public String getCharacterEncoding() { - return "Cp280"; - } - - public ByteToCharCp280() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp284.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp284.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM284; - -/** - * A table to convert to Cp284 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp284 extends ByteToCharSingleByte { - - private final static IBM284 nioCoder = new IBM284(); - - public String getCharacterEncoding() { - return "Cp284"; - } - - public ByteToCharCp284() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp285.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp285.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM285; - -/** - * A table to convert to Cp285 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp285 extends ByteToCharSingleByte { - - private final static IBM285 nioCoder = new IBM285(); - - public String getCharacterEncoding() { - return "Cp285"; - } - - public ByteToCharCp285() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp297.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp297.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM297; - -/** - * A table to convert to Cp297 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp297 extends ByteToCharSingleByte { - - private final static IBM297 nioCoder = new IBM297(); - - public String getCharacterEncoding() { - return "Cp297"; - } - - public ByteToCharCp297() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp33722.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp33722.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM33722; - -/** -* @author Malcolm Ayres -*/ -public class ByteToCharCp33722 extends ByteToCharConverter -{ - private final int G0 = 0; - private final int G1 = 1; - private final int G2 = 2; - private final int G3 = 3; - private final int G4 = 4; - private final int SS2 = 0x8E; - private final int SS3 = 0x8F; - - private int firstByte, state; - private String byteToCharTable; - private String mappingTableG1; - private String mappingTableG2; - private String mappingTableG3; - - private final static IBM33722 nioCoder = new IBM33722(); - - public ByteToCharCp33722() { - super(); - state = G0; - byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - mappingTableG1 = nioCoder.getDecoderMappingTableG1(); - mappingTableG2 = nioCoder.getDecoderMappingTableG2(); - mappingTableG3 = nioCoder.getDecoderMappingTableG3(); - } - - /** - * Return the character set id - */ - public String getCharacterEncoding() - { - return "Cp33722"; - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (state != G0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Resets the converter. - */ - public void reset() { - state = G0; - charOff = byteOff = 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - - int byte1; - char outputChar = '\uFFFD'; - - byteOff = inOff; - charOff = outOff; - - while (byteOff < inEnd) { - - byte1 = input[byteOff]; - if (byte1 < 0) - byte1 += 256; - - switch (state) { - case G0: - if (byte1 == SS2) // drop into G2 set - state = G2; - else if (byte1 == SS3) // drop into G3 set - state = G3; - else if ( byte1 <= 0x9f ) // valid single byte - outputChar = byteToCharTable.charAt(byte1); - else if (byte1 < 0xa1 || byte1 > 0xfe) { // valid G1 set 1st byte - badInputLength = 1; - throw new MalformedInputException(); - } else { - firstByte = byte1; // save the 1st byte - state = G1; - } - break; - - case G1: - state = G0; - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid second byte for G1 - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = mappingTableG1.charAt(((firstByte - 0xa1) * 94) + byte1 - 0xa1); - break; - - case G2: - state = G0; // valid first byte for G2 - if ( byte1 < 0xa1 || byte1 > 0xfe) { - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = mappingTableG2.charAt(byte1 - 0xa1); - break; - - case G3: - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid first byte for G3 - state = G0; - badInputLength = 1; - throw new MalformedInputException(); - } - firstByte = byte1; - state = G4; - break; - - case G4: - state = G0; // valid second byte for G3 - if ( byte1 < 0xa1 || byte1 > 0xfe) { - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = mappingTableG3.charAt(((firstByte - 0xa1) * 94) + byte1 - 0xa1); - break; - - } - - if (state == G0) { - if (outputChar == '\uFFFD') { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - } - - byteOff++; - - } - - return charOff - outOff; - - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp420.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp420.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM420; - -/** - * A table to convert to Cp420 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp420 extends ByteToCharSingleByte { - - private final static IBM420 nioCoder = new IBM420(); - - public String getCharacterEncoding() { - return "Cp420"; - } - - public ByteToCharCp420() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp424.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp424.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM424; - -/** - * A table to convert to Cp424 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp424 extends ByteToCharSingleByte { - - private final static IBM424 nioCoder = new IBM424(); - - public String getCharacterEncoding() { - return "Cp424"; - } - - public ByteToCharCp424() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp437.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp437.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM437; - -/** - * A table to convert to Cp437 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp437 extends ByteToCharSingleByte { - - private final static IBM437 nioCoder = new IBM437(); - - public String getCharacterEncoding() { - return "Cp437"; - } - - public ByteToCharCp437() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp500.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp500.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM500; - -/** - * A table to convert to Cp500 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp500 extends ByteToCharSingleByte { - - private final static IBM500 nioCoder = new IBM500(); - - public String getCharacterEncoding() { - return "Cp500"; - } - - public ByteToCharCp500() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp737.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp737.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM737; - -/** - * A table to convert to Cp737 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp737 extends ByteToCharSingleByte { - - private final static IBM737 nioCoder = new IBM737(); - - public String getCharacterEncoding() { - return "Cp737"; - } - - public ByteToCharCp737() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp775.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp775.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM775; - -/** - * A table to convert to Cp775 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp775 extends ByteToCharSingleByte { - - private final static IBM775 nioCoder = new IBM775(); - - public String getCharacterEncoding() { - return "Cp775"; - } - - public ByteToCharCp775() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp833.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp833.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * 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(); - } -} - diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp834.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp834.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2006, 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.*; - -public class ByteToCharCp834 extends ByteToCharDBCS_ASCII { - - public String getCharacterEncoding() { - return "Cp834"; - } - - public ByteToCharCp834() { - super((DoubleByte.Decoder)new IBM834().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp838.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp838.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM838; - -/** - * A table to convert to Cp838 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp838 extends ByteToCharSingleByte { - - private final static IBM838 nioCoder = new IBM838(); - - public String getCharacterEncoding() { - return "Cp838"; - } - - public ByteToCharCp838() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp850.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp850.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* - * Copyright (c) 1996, 2002, 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.IBM850; - -/** - * A table to convert to Cp850 to Unicode - * - * @author ConverterGenerator tool - * @version >= JDK1.1.6 - */ - -public class ByteToCharCp850 extends ByteToCharSingleByte { - - public String getCharacterEncoding() { - return "Cp850"; - } - - public ByteToCharCp850() { - super.byteToCharTable = new IBM850().getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp852.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp852.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM852; - -/** - * A table to convert to Cp852 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp852 extends ByteToCharSingleByte { - - private final static IBM852 nioCoder = new IBM852(); - - public String getCharacterEncoding() { - return "Cp852"; - } - - public ByteToCharCp852() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp855.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp855.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM855; - -/** - * A table to convert to Cp855 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp855 extends ByteToCharSingleByte { - - private final static IBM855 nioCoder = new IBM855(); - - public String getCharacterEncoding() { - return "Cp855"; - } - - public ByteToCharCp855() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp856.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp856.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM856; - -/** - * A table to convert to Cp856 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp856 extends ByteToCharSingleByte { - - private final static IBM856 nioCoder = new IBM856(); - - public String getCharacterEncoding() { - return "Cp856"; - } - - public ByteToCharCp856() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp857.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp857.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM857; - -/** - * A table to convert to Cp857 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp857 extends ByteToCharSingleByte { - - private final static IBM857 nioCoder = new IBM857(); - - public String getCharacterEncoding() { - return "Cp857"; - } - - public ByteToCharCp857() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp858.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp858.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1998, 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; - -/** - * A table to convert Cp858 to Unicode. This converter differs from - * Cp850 is one code point, 0xD5, which changes from \u0131 to \u20AC. - * @author Alan Liu - */ -public class ByteToCharCp858 extends ByteToCharCp850 { - public ByteToCharCp858() {} - - public String getCharacterEncoding() { - return "Cp858"; - } - - protected char getUnicode(int byteIndex) { - // Change single code point with respect to parent. - // Cast to byte to get sign extension to match byteIndex. - return (byteIndex == (byte)0xD5) ? '\u20AC' : super.getUnicode(byteIndex); - } -} - -//eof diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp860.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp860.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM860; - -/** - * A table to convert to Cp860 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp860 extends ByteToCharSingleByte { - - private final static IBM860 nioCoder = new IBM860(); - - public String getCharacterEncoding() { - return "Cp860"; - } - - public ByteToCharCp860() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp861.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp861.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM861; - -/** - * A table to convert to Cp861 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp861 extends ByteToCharSingleByte { - - private final static IBM861 nioCoder = new IBM861(); - - public String getCharacterEncoding() { - return "Cp861"; - } - - public ByteToCharCp861() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp862.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp862.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM862; - -/** - * A table to convert to Cp862 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp862 extends ByteToCharSingleByte { - - private final static IBM862 nioCoder = new IBM862(); - - public String getCharacterEncoding() { - return "Cp862"; - } - - public ByteToCharCp862() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp863.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp863.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM863; - -/** - * A table to convert to Cp863 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp863 extends ByteToCharSingleByte { - - private final static IBM863 nioCoder = new IBM863(); - - public String getCharacterEncoding() { - return "Cp863"; - } - - public ByteToCharCp863() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp864.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp864.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM864; - -/** - * A table to convert to Cp864 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp864 extends ByteToCharSingleByte { - - private final static IBM864 nioCoder = new IBM864(); - - public String getCharacterEncoding() { - return "Cp864"; - } - - public ByteToCharCp864() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp865.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp865.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM865; - -/** - * A table to convert to Cp865 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp865 extends ByteToCharSingleByte { - - private final static IBM865 nioCoder = new IBM865(); - - public String getCharacterEncoding() { - return "Cp865"; - } - - public ByteToCharCp865() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp866.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp866.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM866; - -/** - * A table to convert to Cp866 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp866 extends ByteToCharSingleByte { - - private final static IBM866 nioCoder = new IBM866(); - - public String getCharacterEncoding() { - return "Cp866"; - } - - public ByteToCharCp866() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp868.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp868.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM868; - -/** - * A table to convert to Cp868 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp868 extends ByteToCharSingleByte { - - private final static IBM868 nioCoder = new IBM868(); - - public String getCharacterEncoding() { - return "Cp868"; - } - - public ByteToCharCp868() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp869.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp869.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM869; - -/** - * A table to convert to Cp869 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp869 extends ByteToCharSingleByte { - - private final static IBM869 nioCoder = new IBM869(); - - public String getCharacterEncoding() { - return "Cp869"; - } - - public ByteToCharCp869() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp870.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp870.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM870; - -/** - * A table to convert to Cp870 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp870 extends ByteToCharSingleByte { - - private final static IBM870 nioCoder = new IBM870(); - - public String getCharacterEncoding() { - return "Cp870"; - } - - public ByteToCharCp870() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp871.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp871.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM871; - -/** - * A table to convert to Cp871 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp871 extends ByteToCharSingleByte { - - private final static IBM871 nioCoder = new IBM871(); - - public String getCharacterEncoding() { - return "Cp871"; - } - - public ByteToCharCp871() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp874.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp874.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM874; - -/** - * A table to convert to Cp874 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp874 extends ByteToCharSingleByte { - - private final static IBM874 nioCoder = new IBM874(); - - public String getCharacterEncoding() { - return "Cp874"; - } - - public ByteToCharCp874() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp875.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp875.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM875; - -/** - * A table to convert to Cp875 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp875 extends ByteToCharSingleByte { - - private final static IBM875 nioCoder = new IBM875(); - - public String getCharacterEncoding() { - return "Cp875"; - } - - public ByteToCharCp875() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp918.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp918.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM918; - -/** - * A table to convert to Cp918 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp918 extends ByteToCharSingleByte { - - private final static IBM918 nioCoder = new IBM918(); - - public String getCharacterEncoding() { - return "Cp918"; - } - - public ByteToCharCp918() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp921.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp921.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM921; - -/** - * A table to convert to Cp921 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp921 extends ByteToCharSingleByte { - - private final static IBM921 nioCoder = new IBM921(); - - public String getCharacterEncoding() { - return "Cp921"; - } - - public ByteToCharCp921() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp922.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp922.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM922; - -/** - * A table to convert to Cp922 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharCp922 extends ByteToCharSingleByte { - - private final static IBM922 nioCoder = new IBM922(); - - public String getCharacterEncoding() { - return "Cp922"; - } - - public ByteToCharCp922() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp930.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp930.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp930 extends ByteToCharDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp930"; - } - - public ByteToCharCp930() { - super((DoubleByte.Decoder)new IBM930().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp933.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp933.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp933 extends ByteToCharDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp933"; - } - - public ByteToCharCp933() { - super((DoubleByte.Decoder)new IBM933().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp935.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp935.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp935 extends ByteToCharDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp935"; - } - - public ByteToCharCp935() { - super((DoubleByte.Decoder)new IBM935().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp937.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp937.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp937 extends ByteToCharDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp937"; - } - - public ByteToCharCp937() { - super((DoubleByte.Decoder)new IBM937().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp939.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp939.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp939 extends ByteToCharDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp939"; - } - - public ByteToCharCp939() { - super((DoubleByte.Decoder)new IBM939().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp942.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp942.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp942 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp942"; - } - - public ByteToCharCp942() { - super((DoubleByte.Decoder)new IBM942().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp942C.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp942C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class ByteToCharCp942C extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp942C"; - } - - public ByteToCharCp942C() { - super((DoubleByte.Decoder)new IBM942C().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp943.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp943.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp943 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp943"; - } - - public ByteToCharCp943() { - super((DoubleByte.Decoder)new IBM943().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp943C.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp943C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class ByteToCharCp943C extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp943C"; - } - - public ByteToCharCp943C() { - super((DoubleByte.Decoder)new IBM943C().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp948.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp948.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp948 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp948"; - } - - public ByteToCharCp948() { - super((DoubleByte.Decoder)new IBM948().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp949.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp949.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp949 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp949"; - } - - public ByteToCharCp949() { - super((DoubleByte.Decoder)new IBM949().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp949C.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp949C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class ByteToCharCp949C extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp949C"; - } - - public ByteToCharCp949C() { - super((DoubleByte.Decoder)new IBM949C().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp950.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp950.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp950 extends ByteToCharDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp950"; - } - - public ByteToCharCp950() { - super((DoubleByte.Decoder)new IBM950().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp964.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp964.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM964; - -/** -* @author Malcolm Ayres -*/ -public class ByteToCharCp964 extends ByteToCharConverter -{ - private final static IBM964 nioCoder = new IBM964(); - - private final int G0 = 0; - private final int G1 = 1; - private final int G2 = 2; - private final int G3 = 3; - private final int G4 = 4; - private final int SS2 = 0x8E; - private final int SS3 = 0x8F; - - private int firstByte, state; - - private String byteToCharTable; - private String mappingTableG1; - private String mappingTableG2; - private String mappingTableG2a2; - private String mappingTableG2ac; - private String mappingTableG2ad; - - - public ByteToCharCp964() { - super(); - state = G0; - byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - mappingTableG1 = nioCoder.getDecoderMappingTableG1(); - mappingTableG2a2 = nioCoder.getDecoderMappingTableG2a2(); - mappingTableG2ac = nioCoder.getDecoderMappingTableG2ac(); - mappingTableG2ad = nioCoder.getDecoderMappingTableG2ad(); - } - - /** - * Return the character set id - */ - public String getCharacterEncoding() - { - return "Cp964"; - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (state != G0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Resets the converter. - */ - public void reset() { - state = G0; - charOff = byteOff = 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - - int byte1; - char outputChar = '\uFFFD'; - - byteOff = inOff; - charOff = outOff; - - while (byteOff < inEnd) { - - byte1 = input[byteOff]; - if (byte1 < 0) - byte1 += 256; - - switch (state) { - case G0: - if (byte1 == SS2) - state = G2; - else if (byte1 == SS3) { - badInputLength = 1; - throw new MalformedInputException(); - } - else if ( byte1 <= 0x9f ) // valid single byte - outputChar = byteToCharTable.charAt(byte1); - else if (byte1 < 0xa1 || byte1 > 0xfe) { - badInputLength = 1; - throw new MalformedInputException(); - } else { // valid 1st byte for G1 - firstByte = byte1; - state = G1; - } - break; - - case G1: - state = G0; - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid second byte for G1 - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = mappingTableG1.charAt(((firstByte - 0xa1) * 94) + byte1 - 0xa1); - break; - - case G2: - // set the correct mapping table for supported G2 sets - if ( byte1 == 0xa2) - mappingTableG2 = mappingTableG2a2; - else - if ( byte1 == 0xac) - mappingTableG2 = mappingTableG2ac; - else - if ( byte1 == 0xad) - mappingTableG2 = mappingTableG2ad; - else { - state = G0; - badInputLength = 1; - throw new MalformedInputException(); - } - state = G3; - break; - - case G3: - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid 1st byte for G2 set - state = G0; - badInputLength = 1; - throw new MalformedInputException(); - } - firstByte = byte1; - state = G4; - break; - - case G4: - state = G0; - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid 2nd byte for G2 set - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = mappingTableG2.charAt(((firstByte - 0xa1) * 94) + byte1 - 0xa1); - break; - - } - - if (state == G0) { - if (outputChar == '\uFFFD') { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - } - - byteOff++; - - } - - return charOff - outOff; - - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharCp970.java --- a/jdk/src/share/classes/sun/io/ByteToCharCp970.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharCp970 extends ByteToCharEUC2 { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp970"; - } - - public ByteToCharCp970() { - super((DoubleByte.Decoder)new IBM970().newDecoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharDBCS_ASCII.java --- a/jdk/src/share/classes/sun/io/ByteToCharDBCS_ASCII.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* - * Copyright (c) 1997, 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.DoubleByte; -import static sun.nio.cs.CharsetMapping.*; - -public abstract class ByteToCharDBCS_ASCII extends ByteToCharConverter -{ - private boolean savedBytePresent; - private int savedByte; - - private DoubleByte.Decoder dec; - - public ByteToCharDBCS_ASCII(DoubleByte.Decoder dec) { - super(); - savedBytePresent = false; - this.dec = dec; - } - - char decodeSingle(int b) { - return dec.decodeSingle(b); - } - - char decodeDouble(int b1, int b2) { - return dec.decodeDouble(b1, b2); - } - - public int flush(char [] output, int outStart, int outEnd) - throws MalformedInputException - { - - if (savedBytePresent) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int inputSize; - char outputChar = UNMAPPABLE_DECODING; - - charOff = outOff; - byteOff = inOff; - - while(byteOff < inEnd) - { - int byte1; - - if (!savedBytePresent) { - byte1 = input[byteOff] & 0xff; - inputSize = 1; - } else { - byte1 = savedByte; - savedBytePresent = false; - inputSize = 0; - } - - outputChar = decodeSingle(byte1); - if (outputChar == UNMAPPABLE_DECODING) { - - if (byteOff + inputSize >= inEnd) { - savedByte = byte1; - savedBytePresent = true; - byteOff += inputSize; - break; - } - - outputChar = decodeDouble(byte1, input[byteOff+inputSize] & 0xff); - inputSize++; - } - - if (outputChar == UNMAPPABLE_DECODING) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - - } - - return charOff - outOff; - } - - /** - * Resets the converter. - */ - public void reset() { - charOff = byteOff = 0; - savedBytePresent = false; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java --- a/jdk/src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* - * Copyright (c) 1997, 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.DoubleByte; -import static sun.nio.cs.CharsetMapping.*; - -public abstract class ByteToCharDBCS_EBCDIC extends ByteToCharConverter -{ - - private static final int SBCS = 0; - private static final int DBCS = 1; - - private static final int SO = 0x0e; - private static final int SI = 0x0f; - - private int currentState; - private boolean savedBytePresent; - private int savedByte; - - private DoubleByte.Decoder dec; - - public ByteToCharDBCS_EBCDIC(DoubleByte.Decoder dec) { - super(); - currentState = SBCS; - savedBytePresent = false; - this.dec = dec; - } - - char decodeSingle(int b) { - return dec.decodeSingle(b); - } - - char decodeDouble(int b1, int b2) { - return dec.decodeDouble(b1, b2); - } - - public int flush(char [] output, int outStart, int outEnd) - throws MalformedInputException - { - - if (savedBytePresent) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int inputSize; - char outputChar = UNMAPPABLE_DECODING; - - charOff = outOff; - byteOff = inOff; - - while(byteOff < inEnd) { - int byte1, byte2; - - if (!savedBytePresent) { - byte1 = input[byteOff] & 0xff; - inputSize = 1; - } else { - byte1 = savedByte; - savedBytePresent = false; - inputSize = 0; - } - - if (byte1 == SO) { - - // For SO characters - simply validate the state and if OK - // update the state and go to the next byte - - if (currentState != SBCS) { - badInputLength = 1; - throw new MalformedInputException(); - } else { - currentState = DBCS; - byteOff += inputSize; - } - } - - else - if (byte1 == SI) { - // For SI characters - simply validate the state and if OK - // update the state and go to the next byte - - if (currentState != DBCS) { - badInputLength = 1; - throw new MalformedInputException(); - } else { - currentState = SBCS; - byteOff+= inputSize; - } - } else { - - // Process the real data characters - - if (currentState == SBCS) { - outputChar = decodeSingle(byte1); - } else { - - // for a DBCS character - architecture dictates the - // valid range of 1st bytes - - if (byte1 < 0x40 || byte1 > 0xfe) { - badInputLength = 1; - throw new MalformedInputException(); - } - - if (byteOff + inputSize >= inEnd) { - // We have been split in the middle if a character - // save the first byte for next time around - - savedByte = byte1; - savedBytePresent = true; - byteOff += inputSize; - break; - } - - byte2 = input[byteOff+inputSize] & 0xff; - inputSize++; - - // validate the pair of bytes meet the architecture - - if ((byte1 != 0x40 || byte2 != 0x40) && - (byte2 < 0x41 || byte2 > 0xfe)) { - badInputLength = 2; - throw new MalformedInputException(); - } - - outputChar = decodeDouble(byte1, byte2); - } - - if (outputChar == UNMAPPABLE_DECODING) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - } - - } - - return charOff - outOff; - } - - - /** - * Resets the converter. - */ - public void reset() { - charOff = byteOff = 0; - currentState = SBCS; - savedBytePresent = false; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharDoubleByte.java --- a/jdk/src/share/classes/sun/io/ByteToCharDoubleByte.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* - * Copyright (c) 1997, 2002, 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; - -/** - * @author Limin Shi - * Sean Jiang - */ - -public abstract class ByteToCharDoubleByte extends ByteToCharConverter { - protected byte savedByte; - - /* - * 1st level index, provided by subclass - */ - protected short index1[]; - - /* - * 2nd level index, provided by subclass - * every string has 0x10*(end-start+1) characters. - */ - protected String index2[]; - - protected int start; - protected int end; - - /* - * Size of bad input that caused conversion to stop - */ - protected int badInputLength; - - public ByteToCharDoubleByte() { - super(); - savedByte = 0; - } - - - public short[] getIndex1() { - return(index1); - } - - public String[] getIndex2() { - return(index2); - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedByte != 0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - reset(); - return 0; - } - - /** - * Converts sequences of bytes to characters. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input byte array containing text in Double/single Byte - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output character array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any bytes - * that cannot be converted to the external character set. - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - char outputChar = REPLACE_CHAR; - int inputSize = 0; // Size of input - - // Record beginning offsets - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - int byte1, byte2; - - if (savedByte == 0) { - byte1 = input[byteOff]; - inputSize = 1; - } else { - byte1 = savedByte; - savedByte = 0; - inputSize = 0; - } - - outputChar = convSingleByte(byte1); - - if (outputChar == REPLACE_CHAR) { // DoubleByte char - if (byteOff + inputSize >= inEnd) { - // split in the middle of a character - // save the first byte for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - break; - } - - byte1 &= 0xff; - byte2 = input[byteOff + inputSize] & 0xff; - - inputSize++; - outputChar = getUnicode(byte1, byte2); - } - - if (outputChar == REPLACE_CHAR) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - } - - return charOff - outOff; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - byteOff = charOff = 0; - savedByte = 0; - } - - - /* - * Can be changed by subclass - */ - protected char convSingleByte(int b) { - if (b >= 0) - return (char) b; - return REPLACE_CHAR; - } - - /* - * Can be changed by subclass - */ - protected char getUnicode(int byte1, int byte2) { - // Fix for bug 4117820 - similar fix for bug 4121358 put - // into ByteToCharEUC_JP.getUnicode() - if (((byte1 < 0) || (byte1 > index1.length)) - || ((byte2 < start) || (byte2 > end))) - return REPLACE_CHAR; - - int n = (index1[byte1] & 0xf) * (end - start + 1) + (byte2 - start); - return index2[index1[byte1] >> 4].charAt(n); - } - - protected final static char REPLACE_CHAR = '\uFFFD'; -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -/** -* @author Malcolm Ayres -*/ -public abstract class ByteToCharEUC extends ByteToCharConverter -{ - private final int G0 = 0; - private final int G1 = 1; - private final int SS2 = 0x8E; - private final int SS3 = 0x8F; - - private int firstByte, state; - - protected String mappingTableG1; - protected String byteToCharTable; - - - public ByteToCharEUC() { - super(); - state = G0; - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (state != G0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Resets the converter. - */ - public void reset() { - state = G0; - charOff = byteOff = 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - - int byte1; - char outputChar = '\uFFFD'; - - byteOff = inOff; - charOff = outOff; - - while (byteOff < inEnd) { - - byte1 = input[byteOff]; - if (byte1 < 0) - byte1 += 256; - - switch (state) { - case G0: - if (byte1 == SS2 || // no general support - byte1 == SS3 ) { // for g2 or g3 - badInputLength = 1; - throw new MalformedInputException(); - } - - if ( byte1 <= 0x9f ) // < 0x9f has its own table - outputChar = byteToCharTable.charAt(byte1); - else - if (byte1 < 0xa1 || byte1 > 0xfe) { // byte within range? - badInputLength = 1; - throw new MalformedInputException(); - } else { // G1 set first byte - firstByte = byte1; - state = G1; - } - break; - - case G1: - - state = G0; - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid G1 set second byte - badInputLength = 1; - throw new MalformedInputException(); - } - - outputChar = mappingTableG1.charAt(((firstByte - 0xa1) * 94) + byte1 - 0xa1); - break; - - } - - if (state == G0) { - if (outputChar == '\uFFFD') { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - } - - byteOff++; - - } - - return charOff - outOff; - - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC2.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC2.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* - * Copyright (c) 1997, 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.DoubleByte; -import static sun.nio.cs.CharsetMapping.*; - -public abstract class ByteToCharEUC2 extends ByteToCharConverter -{ - private final int G0 = 0; - private final int G1 = 1; - private final int SS2 = 0x8E; - private final int SS3 = 0x8F; - - private int firstByte, state; - - private DoubleByte.Decoder dec; - - public ByteToCharEUC2(DoubleByte.Decoder dec) { - super(); - state = G0; - this.dec = dec; - } - - char decodeSingle(int b) { - return dec.decodeSingle(b); - } - - char decodeDouble(int b1, int b2) { - return dec.decodeDouble(b1, b2); - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (state != G0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Resets the converter. - */ - public void reset() { - state = G0; - charOff = byteOff = 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int byte1; - char outputChar = UNMAPPABLE_DECODING; - byteOff = inOff; - charOff = outOff; - - while (byteOff < inEnd) { - byte1 = input[byteOff] & 0xff; - switch (state) { - case G0: - if (byte1 == SS2 || // no general support - byte1 == SS3 ) { // for g2 or g3 - badInputLength = 1; - throw new MalformedInputException(); - } - if ( byte1 <= 0x9f ) // < 0x9f has its own table - outputChar = decodeSingle(byte1); - else - if (byte1 < 0xa1 || byte1 > 0xfe) { // byte within range? - badInputLength = 1; - throw new MalformedInputException(); - } else { // G1 set first byte - firstByte = byte1; - state = G1; - } - break; - case G1: - state = G0; - if ( byte1 < 0xa1 || byte1 > 0xfe) { // valid G1 set second byte - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = decodeDouble(firstByte, byte1); - break; - } - if (state == G0) { - if (outputChar == UNMAPPABLE_DECODING) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - output[charOff++] = outputChar; - } - byteOff++; - } - return charOff - outOff; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_CN.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_CN.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.*; - -public class ByteToCharEUC_CN extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new EUC_CN().newDecoder(); - - public String getCharacterEncoding() { - return "EUC_CN"; - } - - public ByteToCharEUC_CN() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_JP.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_JP.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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; - -/** - * @author Limin Shi - */ - -public class ByteToCharEUC_JP extends ByteToCharJIS0208 { - private byte savedSecond = 0; - - ByteToCharJIS0201 bcJIS0201 = new ByteToCharJIS0201(); - ByteToCharJIS0212 bcJIS0212 = new ByteToCharJIS0212(); - - public ByteToCharEUC_JP() { - super(); - start = 0xA1; - end = 0xFE; - savedSecond = 0; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSecond != 0) { - reset(); - throw new MalformedInputException(); - } - reset(); - return 0; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - super.reset(); - savedSecond = 0; - } - - public String getCharacterEncoding() { - return "EUC_JP"; - } - - protected char convSingleByte(int b) { - if (b < 0 || b > 0x7F) - return REPLACE_CHAR; - return bcJIS0201.getUnicode(b); - } - - protected char getUnicode(int byte1, int byte2) { - if (byte1 == 0x8E) { - return bcJIS0201.getUnicode(byte2 - 256); - } - // Fix for bug 4121358 - similar fix for bug 4117820 put - // into ByteToCharDoubleByte.getUnicode() - if (((byte1 < 0) || (byte1 > index1.length)) - || ((byte2 < start) || (byte2 > end))) - return REPLACE_CHAR; - - int n = (index1[byte1 - 0x80] & 0xf) * (end - start + 1) - + (byte2 - start); - return index2[index1[byte1 - 0x80] >> 4].charAt(n); - } - - protected char decode0212(int byte1, int byte2) { - return bcJIS0212.getUnicode(byte1, byte2); - } - - /** - * Converts sequences of bytes to characters. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input byte array containing text in Double/single Byte - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output character array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any bytes - * that cannot be converted to the external character set. - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, - ConversionBufferFullException - { - char outputChar = REPLACE_CHAR; - int inputSize = 0; // Size of input - - // Record beginning offsets - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - int byte1, byte2; - - if (savedByte == 0) { - byte1 = input[byteOff]; - inputSize = 1; - } else { - byte1 = savedByte; - savedByte = 0; - inputSize = 0; - } - - outputChar = convSingleByte(byte1); - - if (outputChar == REPLACE_CHAR) { // Multibyte char - if ((byte1 & 0xff) == 0x8F) { // JIS0212 - if (byteOff + inputSize + 1 >= inEnd) { - // split in the middle of a character - // save the first 2 bytes for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - if (byteOff < inEnd) { - savedSecond = input[byteOff]; - byteOff++; - } - break; - } - if (savedSecond != 0) { - byte1 = savedSecond & 0xff; - savedSecond = 0; - } else { - byte1 = input[byteOff + inputSize] & 0xff; - inputSize++; - } - byte2 = input[byteOff + inputSize] & 0xff; - inputSize++; - outputChar = decode0212(byte1-0x80, byte2-0x80); - } else { // JIS0208 - if (byteOff + inputSize >= inEnd) { - // split in the middle of a character - // save the first byte for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - break; - } - byte1 &= 0xff; - byte2 = input[byteOff + inputSize] & 0xff; - inputSize++; - outputChar = getUnicode(byte1, byte2); - } - } - - if (outputChar == REPLACE_CHAR) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - } - - return charOff - outOff; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,190 +0,0 @@ -/* - * Copyright (c) 2000, 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; - -/** - * Class for converting bytes to characters for the EUC-JP encoding in - * linux. This converter supports the JIS0201 and the JIS0208 encoding and - * omits support for the JIS212 encoding. - * - * @author Naveen Sanjeeva - */ - -public class ByteToCharEUC_JP_LINUX extends ByteToCharJIS0208 { - private byte savedSecond = 0; - ByteToCharJIS0201 bcJIS0201 = new ByteToCharJIS0201(); - - public ByteToCharEUC_JP_LINUX() { - super(); - start = 0xA1; - end = 0xFE; - savedSecond = 0; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSecond != 0) { - reset(); - throw new MalformedInputException(); - } - reset(); - return 0; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - super.reset(); - savedSecond = 0; - } - - public String getCharacterEncoding() { - return "EUC_JP_LINUX"; - } - - protected char convSingleByte(int b) { - if (b < 0 || b > 0x7F) - return REPLACE_CHAR; - return bcJIS0201.getUnicode(b); - } - - protected char getUnicode(int byte1, int byte2) { - if (byte1 == 0x8E) { - return bcJIS0201.getUnicode(byte2 - 256); - } - // Fix for bug 4121358 - similar fix for bug 4117820 put - // into ByteToCharDoubleByte.getUnicode() - if (((byte1 < 0) || (byte1 > index1.length)) - || ((byte2 < start) || (byte2 > end))) - return REPLACE_CHAR; - - int n = (index1[byte1 - 0x80] & 0xf) * (end - start + 1) - + (byte2 - start); - return index2[index1[byte1 - 0x80] >> 4].charAt(n); - } - - /** - * Converts sequences of bytes to characters. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input byte array containing text in Double/single Byte - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output character array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any bytes - * that cannot be converted to the external character set. - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, - ConversionBufferFullException - { - char outputChar = REPLACE_CHAR; - int inputSize = 0; // Size of input - - // Record beginning offsets - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - int byte1, byte2; - - if (savedByte == 0) { - byte1 = input[byteOff]; - inputSize = 1; - } else { - byte1 = savedByte; - savedByte = 0; - inputSize = 0; - } - - outputChar = convSingleByte(byte1); - - if (outputChar == REPLACE_CHAR) { // Multibyte char - if ((byte1 & 0xff) != 0x8F) { // JIS0208 - if (byteOff + inputSize >= inEnd) { - // split in the middle of a character - // save the first byte for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - break; - } - byte1 &= 0xff; - byte2 = input[byteOff + inputSize] & 0xff; - inputSize++; - outputChar = getUnicode(byte1, byte2); - } else if ((byte1 & 0xff) == 0x8F) { // JIS0212 - // Handling of 3-byte sequences for this converter involves - // just ignoring the relevant bytes and returning a - // suitable substitute char if one exists. - if (byteOff + inputSize + 1 >= inEnd) { - // split in the middle of a character - // save the first 2 bytes for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - if (byteOff < inEnd) { - savedSecond = input[byteOff]; - byteOff++; - } - break; - } - - // Skip over the saved bytes if any - if (savedSecond != 0) { - savedSecond = 0; - } else { - inputSize++; - } - inputSize++; - } - } - - if (outputChar == REPLACE_CHAR) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - } - - return charOff - outOff; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Decoder; -import sun.nio.cs.ext.JIS_X_0212_Solaris_Decoder; -/** - * - * @author Limin Shi - * @author Ian Little - * - * EUC_JP variant converter for Solaris with vendor defined chars - * added (4765370) - */ - - -public class ByteToCharEUC_JP_Solaris extends ByteToCharEUC_JP { - private byte savedSecond = 0; - - ByteToCharJIS0201 bcJIS0201 = new ByteToCharJIS0201(); - ByteToCharJIS0212_Solaris bcJIS0212 = new ByteToCharJIS0212_Solaris(); - - short[] j0208Index1 = JIS_X_0208_Solaris_Decoder.getIndex1(); - String[] j0208Index2 = JIS_X_0208_Solaris_Decoder.getIndex2(); - ByteToCharJIS0212_Solaris j0212Decoder = new ByteToCharJIS0212_Solaris(); - - public ByteToCharEUC_JP_Solaris() { - super(); - start = 0xA1; - end = 0xFE; - savedSecond = 0; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSecond != 0) { - reset(); - throw new MalformedInputException(); - } - reset(); - return 0; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - super.reset(); - savedSecond = 0; - } - - public String getCharacterEncoding() { - return "eucJP-open"; - } - - protected char convSingleByte(int b) { - if (b < 0 || b > 0x7F) - return REPLACE_CHAR; - return bcJIS0201.getUnicode(b); - } - - protected char getUnicode(int byte1, int byte2) { - if (byte1 == 0x8E) { - return bcJIS0201.getUnicode(byte2 - 256); - } - // Fix for bug 4121358 - similar fix for bug 4117820 put - // into ByteToCharDoubleByte.getUnicode() - if (((byte1 < 0) || (byte1 > j0208Index1.length)) - || ((byte2 < start) || (byte2 > end))) - return REPLACE_CHAR; - - char result = super.getUnicode(byte1, byte2); - if (result != '\uFFFD') { - return result; - } else { - int n = (j0208Index1[byte1 - 0x80] & 0xf) * (end - start + 1) - + (byte2 - start); - return j0208Index2[j0208Index1[byte1 - 0x80] >> 4].charAt(n); - } - } - - protected char decode0212(int byte1, int byte2) { - return j0212Decoder.getUnicode(byte1, byte2); - } - - /** - * Converts sequences of bytes to characters. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input byte array containing text in Double/single Byte - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output character array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any bytes - * that cannot be converted to the external character set. - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, - ConversionBufferFullException - { - char outputChar = REPLACE_CHAR; - int inputSize = 0; // Size of input - - // Record beginning offsets - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - int byte1, byte2; - - if (savedByte == 0) { - byte1 = input[byteOff]; - inputSize = 1; - } else { - byte1 = savedByte; - savedByte = 0; - inputSize = 0; - } - - outputChar = convSingleByte(byte1); - - if (outputChar == REPLACE_CHAR) { // Multibyte char - if ((byte1 & 0xff) == 0x8F) { // JIS0212 - if (byteOff + inputSize + 1 >= inEnd) { - // split in the middle of a character - // save the first 2 bytes for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - if (byteOff < inEnd) { - savedSecond = input[byteOff]; - byteOff++; - } - break; - } - if (savedSecond != 0) { - byte1 = savedSecond & 0xff; - savedSecond = 0; - } else { - byte1 = input[byteOff + inputSize] & 0xff; - inputSize++; - } - byte2 = input[byteOff + inputSize] & 0xff; - inputSize++; - outputChar = bcJIS0212.getUnicode(byte1-0x80, byte2-0x80); - } else { // JIS0208 - if (byteOff + inputSize >= inEnd) { - // split in the middle of a character - // save the first byte for next time around - savedByte = (byte) byte1; - byteOff += inputSize; - break; - } - byte1 &= 0xff; - byte2 = input[byteOff + inputSize] & 0xff; - inputSize++; - outputChar = getUnicode(byte1, byte2); - } - } - - if (outputChar == REPLACE_CHAR) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - output[charOff++] = outputChar; - byteOff += inputSize; - } - - return charOff - outOff; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_KR.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_KR.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.*; - -public class ByteToCharEUC_KR extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new EUC_KR().newDecoder(); - - public String getCharacterEncoding() { - return "EUC_KR"; - } - - public ByteToCharEUC_KR() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharEUC_TW.java --- a/jdk/src/share/classes/sun/io/ByteToCharEUC_TW.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/* - * Copyright (c) 1996, 2004, 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.EUC_TW; - -/* - * @author Limin Shi - */ -public class ByteToCharEUC_TW extends ByteToCharConverter -{ - private final byte G0 = 0; - private final byte G1 = 1; - private final byte G2 = 2; - private final byte G3 = 3; - private final byte G4 = 4; - private final byte MSB = (byte) 0x80; - private final byte SS2 = (byte) 0x8E; - - private byte firstByte = 0, state = G0; - private int cnsPlane = 0; - - private EUC_TW.Decoder dec = (EUC_TW.Decoder)(new EUC_TW().newDecoder()); - - public ByteToCharEUC_TW() { - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (state != G0) { - state = G0; - firstByte = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - reset(); - return 0; - } - - public void reset() { - dec.reset(); - state = G0; - firstByte = 0; - byteOff = charOff = 0; - } - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int inputSize = 0; - char[] c1 = new char[1]; - - byteOff = inOff; - charOff = outOff; - - cnsPlane = 3; - while (byteOff < inEnd) { - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - char[] outputChar = null; - switch (state) { - case G0: - if ( (input[byteOff] & MSB) == 0) { // ASCII - outputChar = c1; - outputChar[0] = (char) input[byteOff]; - } else if (input[byteOff] == SS2) { // Codeset 2 - state = G2; - } else { // Codeset 1 - firstByte = input[byteOff]; - state = G1; - } - break; - case G1: - inputSize = 2; - if ( (input[byteOff] & MSB) != 0) { // 2nd byte - cnsPlane = 0; - outputChar = dec.toUnicode(firstByte & 0xff, - input[byteOff] & 0xff, - cnsPlane); - } else { // Error - badInputLength = 1; - throw new MalformedInputException(); - } - firstByte = 0; - state = G0; - break; - case G2: - cnsPlane = (input[byteOff] & (byte)0x0f); - // Adjust String array index for plan 15 - cnsPlane = (cnsPlane == 15)? 8 : cnsPlane; - - if (cnsPlane < 15) { - state = G3; - } else { - badInputLength = 2; - throw new MalformedInputException(); - } - - break; - case G3: - if ( (input[byteOff] & MSB) != 0) { // 1st byte - firstByte = input[byteOff]; - state = G4; - } else { // Error - state = G0; - badInputLength = 2; - throw new MalformedInputException(); - } - break; - case G4: - if ( (input[byteOff] & MSB) != 0) { // 2nd byte - outputChar = dec.toUnicode(firstByte & 0xff, - input[byteOff] & 0xff, - cnsPlane - 1); - } else { // Error - badInputLength = 3; - throw new MalformedInputException(); - } - firstByte = 0; - state = G0; - break; - } - byteOff++; - if (state == G0) { - if (outputChar == null) { - if (subMode) { // substitution enabled - outputChar = c1; - outputChar[0] = subChars[0]; - } else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - output[charOff++] = outputChar[0]; - } - } - return charOff - outOff; - } - - - /** - * Return the character set ID - */ - public String getCharacterEncoding() { - return "EUC_TW"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharGB18030.java --- a/jdk/src/share/classes/sun/io/ByteToCharGB18030.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* - * Copyright (c) 2001, 2003, 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.GB18030; - -public class ByteToCharGB18030 extends ByteToCharGB18030DB { - - private static final int GB18030_SINGLE_BYTE = 1; - private static final int GB18030_DOUBLE_BYTE = 2; - private static final int GB18030_FOUR_BYTE = 3; - private static short[] decoderIndex1; - private static String[] decoderIndex2; - - private int currentState; - private int savedSize; - private byte[] savedBytes; - - public ByteToCharGB18030() { - super(); - GB18030 nioCoder = new GB18030(); - savedBytes = new byte[3]; - currentState = GB18030_DOUBLE_BYTE; - decoderIndex1 = nioCoder.getDecoderIndex1(); - decoderIndex2 = nioCoder.getDecoderIndex2(); - savedSize = 0; - } - - public short[] getOuter() { - return(index1); - } - - public String[] getInner() { - return(index2); - } - - public short[] getDBIndex1() { - return(super.index1); - } - - public String[] getDBIndex2() { - return(super.index2); - } - - public int flush(char [] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSize != 0) { - savedSize = 0; - currentState = GB18030_DOUBLE_BYTE; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int inputSize = 0; - char outputChar = '\uFFFD'; - // readOff keeps the actual buffer's pointer. - // byteOff keeps original buffer's pointer. - int readOff = byteOff = inOff; - - if (savedSize != 0) { - // Filter illegal bytes when they are detected in saved - // partial input from a previous conversion attempt. - if (((savedBytes[0] & 0xFF) < 0x81 || savedBytes[0] > 0xFE) || - (savedSize > 1 && - (savedBytes[1] & 0xFF) < 0x30 ) || - (savedSize > 2 && - ((savedBytes[2] & 0xFF) < 0x81 || - (savedBytes[2] & 0xFF) > 0xFE ))) { - badInputLength = 0; - throw new MalformedInputException(); - } - - byte[] newBuf = new byte[inEnd - inOff + savedSize]; - for (int i = 0; i < savedSize; i++) { - newBuf[i] = savedBytes[i]; - } - System.arraycopy(input, inOff, newBuf, savedSize, inEnd - inOff); - byteOff -= savedSize; - input = newBuf; - inOff = 0; - inEnd = newBuf.length; - savedSize = 0; - } - - charOff = outOff; - readOff = inOff; - - while(readOff < inEnd) { - int byte1 = 0 , byte2 = 0, byte3 = 0, byte4 = 0; - - // Is there room in the output buffer for the result? - if (charOff >= outEnd) { - throw new ConversionBufferFullException(); - } - - // Get the input byte - byte1 = input[readOff++] & 0xFF; - inputSize = 1; - - if ((byte1 & (byte)0x80) == 0){ // US-ASCII range - outputChar = (char)byte1; - currentState = GB18030_SINGLE_BYTE; - } - - else if (byte1 < 0x81 || byte1 > 0xfe) { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - else { - // Either 2 or 4 byte sequence follows - // If an underrun is detected save for later - // replay. - - if (readOff + inputSize > inEnd) { - savedBytes[0]=(byte)byte1; - savedSize = 1; - break; - } - - byte2 = input[readOff++] & 0xFF; - inputSize = 2; - - if (byte2 < 0x30) { - badInputLength = 1; - throw new MalformedInputException(); - } - else if (byte2 >= 0x30 && byte2 <= 0x39) { - currentState = GB18030_FOUR_BYTE; - inputSize = 4; - - if (readOff + 2 > inEnd) { - if (readOff + 1 > inEnd) { - savedBytes[0] = (byte)byte1; - savedBytes[1] = (byte)byte2; - savedSize = 2; - } - else { - savedBytes[0] = (byte)byte1; - savedBytes[1] = (byte)byte2; - savedBytes[2] = input[readOff++]; - savedSize = 3; - } - break; - } - byte3 = input[readOff++] & 0xFF; - if (byte3 < 0x81 || byte3 > 0xfe) { - badInputLength = 3; - throw new MalformedInputException(); - } - - byte4 = input[readOff++] & 0xFF; - - if (byte4 < 0x30 || byte4 > 0x39) { - badInputLength = 4; - throw new MalformedInputException(); - } - } - else if (byte2 == 0x7f || byte2 == 0xff || - (byte2 < 0x40 )) { - badInputLength = 2; - throw new MalformedInputException(); - } - else - currentState = GB18030_DOUBLE_BYTE; - } - - switch (currentState){ - case GB18030_SINGLE_BYTE: - output[charOff++] = (char)(byte1); - break; - case GB18030_DOUBLE_BYTE: - output[charOff++] = super.getUnicode(byte1, byte2); - break; - case GB18030_FOUR_BYTE: - int offset = (((byte1 - 0x81) * 10 + - (byte2 - 0x30)) * 126 + - byte3 - 0x81) * 10 + byte4 - 0x30; - int hiByte = (offset >>8) & 0xFF; - int lowByte = (offset & 0xFF); - - // Mixture of table lookups and algorithmic calculation - // of character values. - - // BMP Ranges - - if (offset <= 0x4A62) - output[charOff++] = getChar(offset); - else if (offset > 0x4A62 && offset <= 0x82BC) - output[charOff++] = (char) (offset + 0x5543); - else if (offset >= 0x82BD && offset <= 0x830D) - output[charOff++] = getChar(offset); - else if (offset >= 0x830D && offset <= 0x93A8) - output[charOff++] = (char) (offset + 0x6557); - else if (offset >= 0x93A9 && offset <= 0x99FB) - output[charOff++] = getChar(offset); - // Supplemental UCS planes handled via surrogates - else if (offset >= 0x2E248 && offset < 0x12E248) { - if (offset >= 0x12E248) { - if (subMode) - return subChars[0]; - else { - badInputLength = 4; - throw new UnknownCharacterException(); - } - } - - if (charOff +2 > outEnd) { - throw new ConversionBufferFullException(); - } - offset -= 0x1e248; - char highSurr = (char) ((offset - 0x10000) / 0x400 + 0xD800); - char lowSurr = (char) ((offset - 0x10000) % 0x400 + 0xDC00); - output[charOff++] = highSurr; - output[charOff++] = lowSurr; - } - else { - badInputLength = 4; - throw new MalformedInputException(); - } - break; - } - byteOff += inputSize; - } - - byteOff += savedSize; - return charOff - outOff; - } - - public void reset() { - byteOff = charOff = 0; - currentState = GB18030_DOUBLE_BYTE; - savedSize = 0; - } - - public String getCharacterEncoding() { - return "GB18030"; - } - - private char getChar(int offset) throws UnknownCharacterException { - int byte1 = (offset >>8) & 0xFF; - int byte2 = (offset & 0xFF); - int start = 0, end = 0xFF; - - if (((byte1 < 0) || (byte1 > getOuter().length)) - || ((byte2 < start) || (byte2 > end))) { - if (subMode) - return subChars[0]; - else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - int n = (decoderIndex1[byte1] & 0xf) * (end - start + 1) + (byte2 - start); - return decoderIndex2[decoderIndex1[byte1] >> 4].charAt(n); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharGB18030DB.java --- a/jdk/src/share/classes/sun/io/ByteToCharGB18030DB.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2001, 2003, 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.GB18030; - - -/** - * Tables and data to convert the two-byte portion of GB18030 to Unicode - * The class is package level accessibility as it is just used for the - * convenience of the main GB18030 converter. - * - * @author ConverterGenerator tool - */ - -abstract class ByteToCharGB18030DB extends ByteToCharDoubleByte { - - public String getCharacterEncoding() { - return "ByteToCharGB18030DB"; - } - - public ByteToCharGB18030DB() { - GB18030 nioCoder = new GB18030(); - super.index1 = nioCoder.getSubDecoderIndex1(); - super.index2 = nioCoder.getSubDecoderIndex2(); - start = 0x40; - end = 0xFE; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharGBK.java --- a/jdk/src/share/classes/sun/io/ByteToCharGBK.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharGBK extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new GBK().newDecoder(); - - public String getCharacterEncoding() { - return "GBK"; - } - - public ByteToCharGBK() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISCII91.java --- a/jdk/src/share/classes/sun/io/ByteToCharISCII91.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* - * Copyright (c) 1999, 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.ISCII91; - -/* - * Copyright (c) 1998 International Business Machines. - * All Rights Reserved. - * - * Author : Sunanda Bera, C. Thirumalesh - * Last Modified : 23,November,1998 - * - * Purpose : Defines class ByteToCharISCII91. - * - * - * Revision History - * ======== ======= - * - * Date By Description - * ---- -- ----------- - * - * - */ - -/** - * Converter class. Converts between Unicode encoding and ISCII91 encoding. - * ISCII91 is the character encoding as defined in Indian Standard document - * IS 13194:1991 ( Indian Script Code for Information Interchange ). - * - * @see sun.io.ByteToCharConverter - */ -public class ByteToCharISCII91 extends ByteToCharConverter { - - private static final char[] directMapTable = ISCII91.getDirectMapTable(); - - private static final char NUKTA_CHAR = '\u093c'; - private static final char HALANT_CHAR = '\u094d'; - private static final char ZWNJ_CHAR = '\u200c'; - private static final char ZWJ_CHAR = '\u200d'; - private static final char INVALID_CHAR = '\uffff'; - - private char contextChar = INVALID_CHAR; - private boolean needFlushing = false; - -/** - * Converts ISCII91 characters to Unicode. - * @see sun.io.ByteToCharConverter#convert - */ - public int convert(byte input[], int inStart, int inEnd, - char output[], int outStart, int outEnd) - throws ConversionBufferFullException, UnknownCharacterException { - /*Rules: - * 1)ATR,EXT,following character to be replaced with '\ufffd' - * 2)Halant + Halant => '\u094d' (Virama) + '\u200c'(ZWNJ) - * 3)Halant + Nukta => '\u094d' (Virama) + '\u200d'(ZWJ) - */ - charOff = outStart; - byteOff = inStart; - while (byteOff < inEnd) { - if (charOff >= outEnd) { - throw new ConversionBufferFullException(); - } - int index = input[byteOff++]; - index = ( index < 0 )? ( index + 255 ):index; - char currentChar = directMapTable[index]; - - // if the contextChar is either ATR || EXT set the output to '\ufffd' - if(contextChar == '\ufffd') { - output[charOff++] = '\ufffd'; - contextChar = INVALID_CHAR; - needFlushing = false; - continue; - } - - switch(currentChar) { - case '\u0901': - case '\u0907': - case '\u0908': - case '\u090b': - case '\u093f': - case '\u0940': - case '\u0943': - case '\u0964': - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - contextChar = currentChar; - needFlushing = true; - continue; - case NUKTA_CHAR: - switch(contextChar) { - case '\u0901': - output[charOff] = '\u0950'; - break; - case '\u0907': - output[charOff] = '\u090c'; - break; - case '\u0908': - output[charOff] = '\u0961'; - break; - case '\u090b': - output[charOff] = '\u0960'; - break; - case '\u093f': - output[charOff] = '\u0962'; - break; - case '\u0940': - output[charOff] = '\u0963'; - break; - case '\u0943': - output[charOff] = '\u0944'; - break; - case '\u0964': - output[charOff] = '\u093d'; - break; - case HALANT_CHAR: - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - output[charOff] = ZWJ_CHAR; - break; - default: - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - output[charOff] = NUKTA_CHAR; - } - break; - case HALANT_CHAR: - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - if(contextChar == HALANT_CHAR) { - output[charOff] = ZWNJ_CHAR; - break; - } - output[charOff] = HALANT_CHAR; - break; - case INVALID_CHAR: - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - if(subMode) { - output[charOff] = subChars[0]; - break; - } else { - contextChar = INVALID_CHAR; - throw new UnknownCharacterException(); - } - default: - if(needFlushing) { - output[charOff++] = contextChar; - contextChar = currentChar; - continue; - } - output[charOff] = currentChar; - break; - }//end switch - - contextChar = currentChar; - needFlushing = false; - charOff++; - }//end while - return charOff - outStart; - } //convert() - -/** - * @see sun.io.ByteToCharConverter#flush - */ - public int flush( char[] output, int outStart, int outEnd ) - throws MalformedInputException, ConversionBufferFullException - { - int charsWritten = 0; - //if the last char was not flushed, flush it! - if(needFlushing) { - output[outStart] = contextChar; - charsWritten = 1; - } - contextChar = INVALID_CHAR; - needFlushing = false; - byteOff = charOff = 0; - return charsWritten; - }//flush() -/** - * Returns the character set id for the conversion. - */ - public String getCharacterEncoding() - { - return "ISCII91"; - }//getCharacterEncoding() -/** - * @see sun.io.ByteToCharConverter#reset - */ - public void reset() - { - byteOff = charOff = 0; - }//reset() - -}//end of class definition diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO2022.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO2022.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,276 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -/** - * An algorithmic conversion from ISO 2022 to Unicode - * - * @author Tom Zhou - */ -public abstract class ByteToCharISO2022 extends ByteToCharConverter -{ - // Value to be filled by subclass - protected String SODesignator[]; - protected String SS2Designator[] = null; - protected String SS3Designator[] = null; - - protected ByteToCharConverter SOConverter[]; - protected ByteToCharConverter SS2Converter[] = null; - protected ByteToCharConverter SS3Converter[] = null; - - private static final byte ISO_ESC = 0x1b; - private static final byte ISO_SI = 0x0f; - private static final byte ISO_SO = 0x0e; - private static final byte ISO_SS2_7 = 0x4e; - private static final byte ISO_SS3_7 = 0x4f; - private static final byte MSB = (byte)0x80; - private static final char REPLACE_CHAR = '\uFFFD'; - private static final byte maximumDesignatorLength = 3; - - private static final byte SOFlag = 0; - private static final byte SS2Flag = 1; - private static final byte SS3Flag = 2; - private static final byte G0 = 0; - private static final byte G1 = 1; - - private ByteToCharConverter tmpConverter[]; - - private int curSODes, curSS2Des, curSS3Des; - private boolean shiftout; - - private byte remainByte[] = new byte[10]; - private int remainIndex = -1; - private byte state, firstByte; - - public void reset() - { - int i = 0; - - shiftout = false; - state = G0; - firstByte = 0; - - curSODes = 0; - curSS2Des = 0; - curSS3Des = 0; - - charOff = byteOff = 0; - remainIndex = -1; - - for(i = 0; i < remainByte.length; i++) - remainByte[i] = 0; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - int i; - if (state != G0) { - badInputLength = 0; - throw new MalformedInputException(); - } - reset(); - return 0; - } - - private byte[] savetyGetSrc(byte[] input, int inOff, int inEnd, int nbytes) - { - int i; - byte tmp[]; - - if(inOff <= (inEnd-nbytes+1)) - tmp = new byte[nbytes]; - else - tmp = new byte[inEnd-inOff]; - - for(i = 0; i < tmp.length; i++) - tmp[i] = input[inOff+i]; - return tmp; - } - - private char getUnicode(byte byte1, byte byte2, byte shiftFlag) - { - byte1 |= MSB; - byte2 |= MSB; - - byte[] tmpByte = {byte1,byte2}; - char[] tmpChar = new char[1]; - int i = 0, - tmpIndex = 0; - - switch(shiftFlag) { - case SOFlag: - tmpIndex = curSODes; - tmpConverter = SOConverter; - break; - case SS2Flag: - tmpIndex = curSS2Des; - tmpConverter = SS2Converter; - break; - case SS3Flag: - tmpIndex = curSS3Des; - tmpConverter = SS3Converter; - break; - } - - for(i = 0; i < tmpConverter.length; i++) { - if(tmpIndex == i) { - try { - tmpConverter[i].convert(tmpByte, 0, 2, tmpChar, 0, 1); - } catch (Exception e) {} - return tmpChar[0]; - } - } - return REPLACE_CHAR; - } - - public final int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws ConversionBufferFullException, - MalformedInputException - { - int i; - int DesignatorLength = 0; - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - // If we don't have room for the output, throw an exception - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - if(remainIndex < 0) { - remainByte[0] = input[byteOff]; - remainIndex = 0; - byteOff++; - } - switch (remainByte[0]) { - case ISO_SO: - shiftout = true; - if(remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - break; - case ISO_SI: - shiftout = false; - if(remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - break; - case ISO_ESC: - byte tmp[] = savetyGetSrc(input, byteOff, inEnd, - (maximumDesignatorLength-remainIndex)); - System.arraycopy(tmp, 0, remainByte, remainIndex+1, tmp.length); - remainIndex += tmp.length; - byteOff += tmp.length; - if(tmp.length<(maximumDesignatorLength-remainIndex)) - break; - String tmpString = new String(remainByte, 1, remainIndex); - for (i = 0; i < SODesignator.length; i++) { - if(tmpString.indexOf(SODesignator[i]) == 0) { - curSODes = i; - DesignatorLength = SODesignator[i].length(); - break; - } - } - - if (DesignatorLength == 0 ) { // Designator not recognized - badInputLength = tmp.length; - throw new MalformedInputException(); - } - - if (i == SODesignator.length) { - for (i = 0; i < SS2Designator.length; i++) { - if(tmpString.indexOf(SS2Designator[i]) == 0) { - curSS2Des = i; - DesignatorLength = SS2Designator[i].length(); - break; - } - } - if(i == SS2Designator.length) { - for(i = 0; i < SS3Designator.length; i++) { - if (tmpString.indexOf(SS3Designator[i]) == 0) { - curSS3Des = i; - DesignatorLength = SS3Designator[i].length(); - break; - } - } - if (i == SS3Designator.length) { - switch(remainByte[1]) { - case ISO_SS2_7: - output[charOff] = getUnicode(remainByte[2], - remainByte[3], - SS2Flag); - charOff++; - DesignatorLength = 3; - break; - case ISO_SS3_7: - output[charOff] = getUnicode(remainByte[2], - remainByte[3], - SS3Flag); - charOff++; - DesignatorLength = 3; - break; - default: - DesignatorLength = 0; - } - } - } - } - if (remainIndex > DesignatorLength) { - for(i = 0; i < remainIndex-DesignatorLength; i++) - remainByte[i] = remainByte[DesignatorLength+1+i]; - remainIndex = i-1; - } else { - remainIndex = -1; - } - break; - default: - if (!shiftout) { - output[charOff] = (char)remainByte[0]; - charOff++; - } else { - switch (state) { - case G0: - firstByte = remainByte[0]; - state = G1; - break; - case G1: - output[charOff] = getUnicode(firstByte, remainByte[0], - SOFlag); - charOff++; - state = G0; - break; - } - } - if (remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - } - } - return charOff - outOff; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO2022CN.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO2022CN.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* - * Copyright (c) 1997, 2001, 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; - -/** - * @author Tom Zhou - */ -public class ByteToCharISO2022CN extends ByteToCharConverter -{ - private String SODesignator[]; - private String SS2Designator[] = null; - private String SS3Designator[] = null; - private ByteToCharConverter SOConverter[]; - private ByteToCharConverter SS2Converter[] = null; - private ByteToCharConverter SS3Converter[] = null; - - private static final byte ISO_ESC = 0x1b; - private static final byte ISO_SI = 0x0f; - private static final byte ISO_SO = 0x0e; - private static final byte ISO_SS2_7 = 0x4e; - private static final byte ISO_SS3_7 = 0x4f; - private static final byte MSB = (byte)0x80; - private static final char REPLACE_CHAR = '\uFFFD'; - private static final byte maximumDesignatorLength = 3; - - private static final byte SOFlag = 0; - private static final byte SS2Flag = 1; - private static final byte SS3Flag = 2; - private static final byte G0 = 0; - private static final byte G1 = 1; - - private ByteToCharConverter tmpConverter[]; - - private int curSODes, curSS2Des, curSS3Des; - private boolean shiftout; - - private byte remainByte[] = new byte[10]; - private int remainIndex = -1; - private byte state, firstByte; - - public void reset() - { - int i = 0; - - shiftout = false; - state = G0; - firstByte = 0; - - curSODes = 0; - curSS2Des = 0; - curSS3Des = 0; - - charOff = byteOff = 0; - remainIndex = -1; - - for(i = 0; i < remainByte.length; i++) - remainByte[i] = 0; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - int i; - if (state != G0) { - badInputLength = 0; - throw new MalformedInputException(); - } - reset(); - return 0; - } - - private byte[] savetyGetSrc(byte[] input, int inOff, int inEnd, int nbytes) - { - int i; - byte tmp[]; - - if(inOff <= (inEnd-nbytes+1)) - tmp = new byte[nbytes]; - else - tmp = new byte[inEnd-inOff]; - - for(i = 0; i < tmp.length; i++) - tmp[i] = input[inOff+i]; - return tmp; - } - - private char getUnicode(byte byte1, byte byte2, byte shiftFlag) - { - byte1 |= MSB; - byte2 |= MSB; - char[] tmpChar = new char[1]; - - switch(shiftFlag) { - case SOFlag: - try { - byte[] tmpByte = {byte1,byte2}; - SOConverter[curSODes].convert(tmpByte, 0, 2, tmpChar, 0, 1); - } - catch (Exception e) {} - break; - case SS2Flag: - try { - byte[] tmpByte = {(byte)0x8e, (byte)0xa2, byte1, byte2}; - SS2Converter[curSS2Des].convert(tmpByte, 0, 4, tmpChar, 0, 1); - } - catch (Exception e){} - break; - case SS3Flag: - try { - byte[] tmpByte = {(byte)0x8e, (byte)0xa3, byte1,byte2}; - SS3Converter[curSS3Des].convert(tmpByte, 0, 4, tmpChar, 0, 1); - } - catch (Exception e){} - break; - default: - tmpChar[0] = REPLACE_CHAR; - } - return tmpChar[0]; - } - - public final int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws ConversionBufferFullException, - MalformedInputException - { - int i; - int DesignatorLength = 0; - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while (byteOff < inEnd) { - // If we don't have room for the output, throw an exception - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - if(remainIndex < 0) { - remainByte[0] = input[byteOff]; - remainIndex = 0; - byteOff++; - } - switch (remainByte[0]) { - case ISO_SO: - shiftout = true; - if(remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - break; - case ISO_SI: - shiftout = false; - if(remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - break; - case ISO_ESC: - byte tmp[] = savetyGetSrc(input, byteOff, inEnd, - (maximumDesignatorLength-remainIndex)); - System.arraycopy(tmp, 0, remainByte, remainIndex+1, tmp.length); - - remainIndex += tmp.length; - byteOff += tmp.length; - if(tmp.length<(maximumDesignatorLength-remainIndex)) - break; - String tmpString = new String(remainByte, 1, remainIndex); - for (i = 0; i < SODesignator.length; i++) { - if(tmpString.indexOf(SODesignator[i]) == 0) { - curSODes = i; - DesignatorLength = SODesignator[i].length(); - break; - } - } - - if (DesignatorLength == 0) { // designator not recognized - badInputLength = tmp.length; - throw new MalformedInputException(); - } - - if (i == SODesignator.length) { - for (i = 0; i < SS2Designator.length; i++) { - if(tmpString.indexOf(SS2Designator[i]) == 0) { - curSS2Des = i; - DesignatorLength = SS2Designator[i].length(); - break; - } - } - if(i == SS2Designator.length) { - for(i = 0; i < SS3Designator.length; i++) { - if (tmpString.indexOf(SS3Designator[i]) == 0) { - curSS3Des = i; - DesignatorLength = SS3Designator[i].length(); - break; - } - } - if (i == SS3Designator.length) { - switch(remainByte[1]) { - case ISO_SS2_7: - output[charOff] = getUnicode(remainByte[2], - remainByte[3], - SS2Flag); - charOff++; - DesignatorLength = 3; - break; - case ISO_SS3_7: - output[charOff] = getUnicode(remainByte[2], - remainByte[3], - SS3Flag); - charOff++; - DesignatorLength = 3; - break; - default: - DesignatorLength = 0; - } - } - } - } - if (remainIndex > DesignatorLength) { - for(i = 0; i < remainIndex-DesignatorLength; i++) - remainByte[i] = remainByte[DesignatorLength+1+i]; - remainIndex = i-1; - } else { - remainIndex = -1; - } - break; - default: - if (!shiftout) { - output[charOff] = (char)remainByte[0]; - charOff++; - } else { - switch (state) { - case G0: - firstByte = remainByte[0]; - state = G1; - break; - case G1: - output[charOff] = getUnicode(firstByte, remainByte[0], - SOFlag); - charOff++; - state = G0; - break; - } - } - if (remainIndex > 0) - System.arraycopy(remainByte, 1, remainByte, 0, remainIndex); - remainIndex--; - } - } - return charOff - outOff; - } - - public ByteToCharISO2022CN() - { - SODesignator = new String[3]; - SODesignator[0] = "$A"; - SODesignator[1] = "$)A"; - SODesignator[2] = "$)G"; - SS2Designator = new String[1]; - SS2Designator[0] = "$*H"; - SS3Designator = new String[1]; - SS3Designator[0] = "$+I"; - - SOConverter = new ByteToCharConverter[3]; - SS2Converter = new ByteToCharConverter[1]; - SS3Converter = new ByteToCharConverter[1]; - - try { - SOConverter[0] = SOConverter[1] - = ByteToCharConverter.getConverter("GB2312"); - SOConverter[2] = SS2Converter[0] = SS3Converter[0] - = ByteToCharConverter.getConverter("CNS11643"); - } catch (Exception e) {}; - } - - // Return the character set id - public String getCharacterEncoding() - { - return "ISO2022CN"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO2022JP.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO2022JP.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,313 +0,0 @@ -/* - * 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 - * 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; - -public class ByteToCharISO2022JP extends ByteToCharJIS0208 { - - private static final int ASCII = 0; // ESC ( B - private static final int JISX0201_1976 = 1; // ESC ( J - private static final int JISX0208_1978 = 2; // ESC $ @ - private static final int JISX0208_1983 = 3; // ESC $ B - private static final int JISX0201_1976_KANA = 4; // ESC ( I - private static final int SHIFTOUT = 5; // SO (0x0e) - - private int currentState; - private int savedSize; - private byte[] savedBytes; - - public ByteToCharISO2022JP() { - super(); - savedBytes = new byte[2]; - currentState = ASCII; - savedSize = 0; - } - - public int flush(char [] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSize != 0) { - savedSize = 0; - currentState = ASCII; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int previousState = ASCII; - int inputSize = 0; - char outputChar = '\uFFFD'; - // readOff keeps the actual buffer's pointer. - // byteOff keeps original buffer's pointer. - int readOff = byteOff = inOff; - - if (savedSize != 0) { - if (savedBytes[0] == 0x1b) { // ESC - if ((savedSize == 2 && - (savedBytes[1] == 0x28 && - input[0] != 'B' && - input[0] != 'J' && - input[0] != 'I') && - (savedBytes[1] == 0x24 && - input[0] != '@' && - input[0] != 'B')) || - ((savedSize == 1) && - (input[0] != 0x28 && - input[0] != 0x24))) { - badInputLength = 0; - throw new MalformedInputException(); - } - if ((inEnd - inOff) == 1 && savedSize == 1 && - savedBytes[0] == 0x1b) { - savedSize = 2; - savedBytes[1] = input[0]; - byteOff++; - return 0; - } - } - byte[] newBuf = new byte[inEnd - inOff + savedSize]; - for (int i = 0; i < savedSize; i++) { - newBuf[i] = savedBytes[i]; - } - System.arraycopy(input, inOff, newBuf, savedSize, inEnd - inOff); - byteOff -= savedSize; - input = newBuf; - inOff = 0; - inEnd = newBuf.length; - savedSize = 0; - } - - charOff = outOff; - readOff = inOff; - - while(readOff < inEnd) { - int byte1, byte2, byte3; - boolean noOutput = false; - - // Is there room in the output buffer for the result? - if (charOff >= outEnd) { - throw new ConversionBufferFullException(); - } - - // Get the input byte - byte1 = input[readOff] & 0xFF; - inputSize = 1; - - if ((byte1 & (byte)0x80) != 0){ - badInputLength = 1; - throw new MalformedInputException(); - } - - // Is this a escape sequence? - while (byte1 == 0x1b || byte1 == 0x0e || byte1 == 0x0f) { - if (byte1 == 0x1b){ // ESC - if (readOff + inputSize + 1 >= inEnd) { - if (readOff + inputSize >= inEnd) { - savedSize = 1; - savedBytes[0] = (byte)byte1; - } else { - savedSize = 2; - savedBytes[0] = (byte)byte1; - savedBytes[1] = input[readOff + inputSize]; - inputSize++; - } - break; - } - byte2 = input[readOff + inputSize] & 0xFF; - inputSize++; - if ((byte2 & (byte)0x80) != 0){ - badInputLength = 2; - throw new MalformedInputException(); - } - if (byte2 == 0x28){ - byte3 = input[readOff + inputSize] & 0xFF; - inputSize++; - if (byte3 == 'B'){ - currentState = ASCII; - } else if (byte3 == 'J'){ - currentState = JISX0201_1976; - } else if (byte3 == 'I'){ - currentState = JISX0201_1976_KANA; - } else { - // illegal ESC sequence - badInputLength = 3; - throw new MalformedInputException(); - } - } else if (byte2 == '$'){ - byte3 = input[readOff + inputSize] & 0xFF; - inputSize++; - if ((byte3 & (byte)0x80) != 0){ - badInputLength = 3; - throw new MalformedInputException(); - } - if (byte3 == '@'){ - currentState = JISX0208_1978; - } else if (byte3 == 'B'){ - currentState = JISX0208_1983; - } else { - // illegal ESC sequence - badInputLength = 3; - throw new MalformedInputException(); - } - } else { - // illegal ESC sequence - badInputLength = 2; - throw new MalformedInputException(); - } - if (readOff + inputSize >= inEnd) { - noOutput = true; - break; - } else { - byte1 = input[readOff + inputSize]; - inputSize++; - } - } else if (byte1 == 0x0e){ // shift out for one byte kana - previousState = currentState; - currentState = SHIFTOUT; - if (readOff + inputSize >= inEnd) { - noOutput = true; - break; - } - byte1 = input[readOff + inputSize]; - inputSize++; - if ((byte1 & (byte)0x80) != 0){ - badInputLength = 1; - throw new MalformedInputException(); - } - } else if (byte1 == 0x0f){ // shift in for previous mode - currentState = previousState; - if (readOff + inputSize >= inEnd) { - noOutput = true; - break; - } - byte1 = input[readOff + inputSize]; - inputSize++; - if ((byte1 & (byte)0x80) != 0){ - badInputLength = 1; - throw new MalformedInputException(); - } - } - } - if (noOutput || savedSize != 0) { - byteOff += inputSize; - break; - } - noOutput = false; - switch (currentState){ - case ASCII: - outputChar = (char)(byte1 & 0xff); - break; - case JISX0201_1976: - switch (byte1) { - case 0x5c: - outputChar = '\u00a5'; - break; - case 0x7e: - outputChar = '\u203e'; - break; - default: - outputChar = (char)byte1; - break; - } - break; - case JISX0208_1978: - case JISX0208_1983: - if (readOff + inputSize >= inEnd) { - savedSize = 1; - savedBytes[0] = (byte)byte1; - break; - } - byte2 = input[readOff + inputSize] & 0xff; - inputSize++; - if ((byte2 & (byte)0x80) != 0){ - badInputLength = 1; - throw new MalformedInputException(); - } - // jisx0208Chars table convert FULLWIDTH_REVERSE_SOLIDUS - // 0x2140 to REVERSE_SOLIDUS (BACKSLASH) 0x5c. - // This behavior causes problem because - // 0x5c is special escape character for java. - if (byte1 == 0x21 && byte2 == 0x40) { - outputChar = '\uFF3C'; - } else { - try { - outputChar = getUnicode(byte1, byte2); - } catch (ArrayIndexOutOfBoundsException e) { - outputChar = '\uFFFD'; - } - } - break; - case JISX0201_1976_KANA: - case SHIFTOUT: - if (byte1 > 0x60) { - badInputLength = 1; - throw new MalformedInputException(); - } - outputChar = (char)(byte1 + 0xff40); - break; - } - - if (savedSize != 0) { - byteOff += inputSize; - break; - } - - if (outputChar == '\uFFFD') { - if (subMode) - outputChar = subChars[0]; - else { - badInputLength = inputSize; - throw new UnknownCharacterException(); - } - } - readOff += inputSize; - byteOff += inputSize; - output[charOff++] = outputChar; - } - - return charOff - outOff; - } - - public void reset() { - byteOff = charOff = 0; - currentState = ASCII; - savedSize = 0; - } - - public String getCharacterEncoding() { - return "ISO2022JP"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO2022KR.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO2022KR.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -public class ByteToCharISO2022KR extends ByteToCharISO2022 -{ - public ByteToCharISO2022KR() - { - SODesignator = new String[1]; - SODesignator[0] = "$)C"; - - SOConverter = new ByteToCharConverter[1]; - - try { - SOConverter[0] = ByteToCharConverter.getConverter("KSC5601"); - } catch (Exception e) {}; - } - - // Return the character set id - public String getCharacterEncoding() - { - return "ISO2022KR"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_1.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_1.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* - * Copyright (c) 1996, 1997, 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; - -/** -* A algorithmic conversion from ISO 8859-1 to Unicode -* -* @author Lloyd Honomichl -* @author Asmus Freytag -*/ -public class ByteToCharISO8859_1 extends ByteToCharConverter { - - // Return the character set id - public String getCharacterEncoding() - { - return "ISO8859_1"; - } - - public int flush(char[] output, int outStart, int outEnd) { - // This converter will not buffer any data. - byteOff = charOff = 0; - return 0; - } - - /** - * Algorithmic character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - - throws ConversionBufferFullException - { - int bound = inOff + (outEnd - outOff); - if (bound >= inEnd) { - bound = inEnd; - } - int bytesWritten = inEnd - inOff; - - - // Loop until we hit the end of the input - try { - while(inOff < bound) { - output[outOff++] = (char) (0xff & input[inOff++]); - } - } finally { - charOff = outOff; - byteOff = inOff; - } - - // If we don't have room for the output, throw an exception - if (bound < inEnd) - throw new ConversionBufferFullException(); - - // Return the length written to the output buffer - return bytesWritten; - } - - /* - Reset after finding bad input - */ - public void reset() { - byteOff = charOff = 0; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_13.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_13.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1999, 2003, 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.ISO_8859_13; - -/** - * A table to convert ISO8859_13 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_13 extends ByteToCharSingleByte { - - private final static ISO_8859_13 nioCoder = new ISO_8859_13(); - - public String getCharacterEncoding() { - return "ISO8859_13"; - } - - public ByteToCharISO8859_13() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_15.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_15.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ISO_8859_15; - -/** - * A table to convert ISO8859_15 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_15 extends ByteToCharSingleByte { - - private final static ISO_8859_15 nioCoder = new ISO_8859_15(); - - public String getCharacterEncoding() { - return "ISO8859_15"; - } - - public ByteToCharISO8859_15() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_2.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_2.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_2; - -/** - * A table to convert ISO8859_2 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_2 extends ByteToCharSingleByte { - - private final static ISO_8859_2 nioCoder = new ISO_8859_2(); - - public String getCharacterEncoding() { - return "ISO8859_2"; - } - - public ByteToCharISO8859_2() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_3.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_3.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_3; - -/** - * A table to convert ISO8859_3 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_3 extends ByteToCharSingleByte { - - private final static ISO_8859_3 nioCoder = new ISO_8859_3(); - - public String getCharacterEncoding() { - return "ISO8859_3"; - } - - public ByteToCharISO8859_3() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_4.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_4.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_4; - -/** - * A table to convert ISO8859_4 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_4 extends ByteToCharSingleByte { - - private final static ISO_8859_4 nioCoder = new ISO_8859_4(); - - public String getCharacterEncoding() { - return "ISO8859_4"; - } - - public ByteToCharISO8859_4() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_5.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_5.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_5; - -/** - * A table to convert ISO8859_5 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_5 extends ByteToCharSingleByte { - - private final static ISO_8859_5 nioCoder = new ISO_8859_5(); - - public String getCharacterEncoding() { - return "ISO8859_5"; - } - - public ByteToCharISO8859_5() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_6.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_6.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_6; - -/** - * A table to convert ISO8859_6 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_6 extends ByteToCharSingleByte { - - private final static ISO_8859_6 nioCoder = new ISO_8859_6(); - - public String getCharacterEncoding() { - return "ISO8859_6"; - } - - public ByteToCharISO8859_6() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_7.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_7.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_7; - - -/** - * A table to convert ISO8859_7 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_7 extends ByteToCharSingleByte { - - private final static ISO_8859_7 nioCoder = new ISO_8859_7(); - - public String getCharacterEncoding() { - return "ISO8859_7"; - } - - public ByteToCharISO8859_7() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_8.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_8.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_8; - -/** - * A table to convert ISO8859_8 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_8 extends ByteToCharSingleByte { - - private final static ISO_8859_8 nioCoder = new ISO_8859_8(); - - public String getCharacterEncoding() { - return "ISO8859_8"; - } - - public ByteToCharISO8859_8() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharISO8859_9.java --- a/jdk/src/share/classes/sun/io/ByteToCharISO8859_9.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_9; - -/** - * A table to convert ISO8859_9 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharISO8859_9 extends ByteToCharSingleByte { - - private final static ISO_8859_9 nioCoder = new ISO_8859_9(); - - public String getCharacterEncoding() { - return "ISO8859_9"; - } - - public ByteToCharISO8859_9() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJIS0201.java --- a/jdk/src/share/classes/sun/io/ByteToCharJIS0201.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 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; - -/** - * A table to convert JIS0201 to Unicode - * - * @author ConverterGenerator tool - */ - -class ByteToCharJIS0201 extends ByteToCharSingleByte { - - public String getCharacterEncoding() { - return "JIS0201"; - } - - public ByteToCharJIS0201() { - super.byteToCharTable = byteToCharTable; - } - - private final static String byteToCharTable = - - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x80 - 0x87 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x88 - 0x8F - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x90 - 0x97 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0x98 - 0x9F - "\uFFFD\uFF61\uFF62\uFF63\uFF64\uFF65\uFF66\uFF67" + // 0xA0 - 0xA7 - "\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F" + // 0xA8 - 0xAF - "\uFF70\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77" + // 0xB0 - 0xB7 - "\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F" + // 0xB8 - 0xBF - "\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87" + // 0xC0 - 0xC7 - "\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F" + // 0xC8 - 0xCF - "\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97" + // 0xD0 - 0xD7 - "\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFF9E\uFF9F" + // 0xD8 - 0xDF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xE0 - 0xE7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xE8 - 0xEF - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF0 - 0xF7 - "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + // 0xF8 - 0xFF - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + // 0x00 - 0x07 - "\b\t\n\u000B\f\r\u000E\u000F" + // 0x08 - 0x0F - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + // 0x10 - 0x17 - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + // 0x18 - 0x1F - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + // 0x20 - 0x27 - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + // 0x28 - 0x2F - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + // 0x30 - 0x37 - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + // 0x38 - 0x3F - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + // 0x40 - 0x47 - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + // 0x48 - 0x4F - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + // 0x50 - 0x57 - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + // 0x58 - 0x5F - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + // 0x60 - 0x67 - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + // 0x68 - 0x6F - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + // 0x70 - 0x77 - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F"; // 0x78 - 0x7F - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJIS0208.java --- a/jdk/src/share/classes/sun/io/ByteToCharJIS0208.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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; - -/** - * Tables and data to convert JIS0208 to Unicode - * - * @author ConverterGenerator tool - */ - -import sun.nio.cs.ext.JIS_X_0208_Decoder; - -public class ByteToCharJIS0208 extends ByteToCharDoubleByte { - - public String getCharacterEncoding() { - return "JIS0208"; - } - - public ByteToCharJIS0208() { - super.index1 = JIS_X_0208_Decoder.getIndex1(); - super.index2 = JIS_X_0208_Decoder.getIndex2(); - start = 0x21; - end = 0x7E; - } - - protected char convSingleByte(int b) { - //Fix bug#4179800 - JIS0208 is 7bit,double-byte encoding - return REPLACE_CHAR; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java --- a/jdk/src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Decoder; - -/** - * Tables and data to convert JIS0208_Solaris to Unicode - * - * Vendor defined chars added for benefit of vendor defined character - * supplemented mappings for EUC-JP-Solaris/PCK Solaris variants of EUC-JP - * and SJIS/Shift_JIS (4765370) - * - * @author ConverterGenerator tool - */ - -public class ByteToCharJIS0208_Solaris extends ByteToCharDoubleByte { - - public String getCharacterEncoding() { - return "JIS0208_Solaris"; - } - - protected char convSingleByte(int b) { - //Fix bug#4179800 - JIS0208 is 7bit,double-byte encoding - return REPLACE_CHAR; - } - - public ByteToCharJIS0208_Solaris() { - super.index1 = JIS_X_0208_Solaris_Decoder.getIndex1(); - super.index2 = JIS_X_0208_Solaris_Decoder.getIndex2(); - start = 0x21; - end = 0x7E; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJIS0212.java --- a/jdk/src/share/classes/sun/io/ByteToCharJIS0212.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.JIS_X_0212_Decoder; - -/** - * Tables and data to convert JIS0212 to Unicode - * - * @author ConverterGenerator tool - */ - - -public class ByteToCharJIS0212 extends ByteToCharDoubleByte { - - public String getCharacterEncoding() { - return "JIS0212"; - } - - protected char convSingleByte(int b) { - //Fix bug#4179800 - JIS0212 is 7bit,double-byte encoding - return REPLACE_CHAR; - } - - public ByteToCharJIS0212() { - super.index1 = JIS_X_0212_Decoder.getIndex1(); - super.index2 = JIS_X_0212_Decoder.getIndex2(); - start = 0x21; - end = 0x7E; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java --- a/jdk/src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0212_Solaris_Decoder; - -/** - * Tables and data to convert JIS0212_Solaris to Unicode - * Solaris ==> vendor defined characters -- NEC row 13 + IBM extended - * selected character set. - * @author ConverterGenerator tool - */ - -public class ByteToCharJIS0212_Solaris extends ByteToCharDoubleByte { - - public String getCharacterEncoding() { - return "JIS0212_Solaris"; - } - - protected char convSingleByte(int b) { - //Fix bug#4179800 - JIS0212 is 7bit,double-byte encoding - return REPLACE_CHAR; - } - - public ByteToCharJIS0212_Solaris() { - super.index1 = JIS_X_0212_Solaris_Decoder.getIndex1(); - super.index2 = JIS_X_0212_Solaris_Decoder.getIndex2(); - start = 0x21; - end = 0x7E; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJISAutoDetect.java --- a/jdk/src/share/classes/sun/io/ByteToCharJISAutoDetect.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* - * Copyright (c) 1997, 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 java.io.UnsupportedEncodingException; -import sun.nio.cs.ext.JISAutoDetect; - -public class ByteToCharJISAutoDetect extends ByteToCharConverter { - - private final static int EUCJP_MASK = 0x01; - private final static int SJIS2B_MASK = 0x02; - private final static int SJIS1B_MASK = 0x04; - private final static int EUCJP_KANA1_MASK = 0x08; - private final static int EUCJP_KANA2_MASK = 0x10; - private final static byte[] maskTable1 = JISAutoDetect.getByteMask1(); - private final static byte[] maskTable2 = JISAutoDetect.getByteMask2(); - - private final static int SS2 = 0x8e; - private final static int SS3 = 0x8f; - - // SJISName is set to either "SJIS" or "MS932" - private String SJISName; - private String EUCJPName; - - private String convName = null; - private ByteToCharConverter detectedConv = null; - private ByteToCharConverter defaultConv = null; - - public ByteToCharJISAutoDetect() { - super(); - SJISName = CharacterEncoding.getSJISName(); - EUCJPName = CharacterEncoding.getEUCJPName(); - defaultConv = new ByteToCharISO8859_1(); - defaultConv.subChars = subChars; - defaultConv.subMode = subMode; - } - - public int flush(char [] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - badInputLength = 0; - if(detectedConv != null) - return detectedConv.flush(output, outStart, outEnd); - else - return defaultConv.flush(output, outStart, outEnd); - } - - - /** - * Character conversion - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int num = 0; - - charOff = outOff; - byteOff = inOff; - - try { - if (detectedConv == null) { - int euckana = 0; - int ss2count = 0; - int firstmask = 0; - int secondmask = 0; - int cnt; - boolean nonAsciiFound = false; - - for (cnt = inOff; cnt < inEnd; cnt++) { - firstmask = 0; - secondmask = 0; - int byte1 = input[cnt]&0xff; - int byte2; - - // TODO: should check valid escape sequences! - if (byte1 == 0x1b) { - convName = "ISO2022JP"; - break; - } - - // Try to convert all leading ASCII characters. - if ((nonAsciiFound == false) && (byte1 < 0x80)) { - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - output[charOff++] = (char) byte1; - byteOff++; - num++; - continue; - } - - // We can no longer convert ASCII. - nonAsciiFound = true; - - firstmask = maskTable1[byte1]; - if (byte1 == SS2) - ss2count++; - - if (firstmask != 0) { - if (cnt+1 < inEnd) { - byte2 = input[++cnt] & 0xff; - secondmask = maskTable2[byte2]; - int mask = firstmask & secondmask; - if (mask == EUCJP_MASK) { - convName = EUCJPName; - break; - } - if ((mask == SJIS2B_MASK) || (mask == SJIS1B_MASK) - || (JISAutoDetect.canBeSJIS1B(firstmask) && secondmask == 0)) { - convName = SJISName; - break; - } - - // If the first byte is a SS3 and the third byte - // is not an EUC byte, it should be SJIS. - // Otherwise, we can't determine it yet, but it's - // very likely SJIS. So we don't take the EUCJP CS3 - // character boundary. If we tried both - // possibilities here, it might be able to be - // determined correctly. - if ((byte1 == SS3) && JISAutoDetect.canBeEUCJP(secondmask)) { - if (cnt+1 < inEnd) { - int nextbyte = input[cnt+1] & 0xff; - if (! JISAutoDetect.canBeEUCJP(maskTable2[nextbyte])) - convName = SJISName; - } else - convName = SJISName; - } - if (JISAutoDetect.canBeEUCKana(firstmask, secondmask)) - euckana++; - } else { - if ((firstmask & SJIS1B_MASK) != 0) { - convName = SJISName; - break; - } - } - } - } - - if (nonAsciiFound && (convName == null)) { - if ((euckana > 1) || (ss2count > 1)) - convName = EUCJPName; - else - convName = SJISName; - } - - if (convName != null) { - try { - detectedConv = ByteToCharConverter.getConverter(convName); - detectedConv.subChars = subChars; - detectedConv.subMode = subMode; - } catch (UnsupportedEncodingException e){ - detectedConv = null; - convName = null; - } - } - } - } catch (ConversionBufferFullException bufferFullException) { - throw bufferFullException; - } catch (Exception e) { - // If we fail to detect the converter needed for any reason, - // use the default converter. - detectedConv = defaultConv; - } - - // If we've converted all ASCII characters, then return. - if (byteOff == inEnd) { - return num; - } - - if(detectedConv != null) { - try { - num += detectedConv.convert(input, inOff + num, inEnd, - output, outOff + num, outEnd); - } finally { - charOff = detectedConv.nextCharIndex(); - byteOff = detectedConv.nextByteIndex(); - badInputLength = detectedConv.badInputLength; - } - } else { - try { - num += defaultConv.convert(input, inOff + num, inEnd, - output, outOff + num, outEnd); - } finally { - charOff = defaultConv.nextCharIndex(); - byteOff = defaultConv.nextByteIndex(); - badInputLength = defaultConv.badInputLength; - } - } - return num; - } - - public void reset() { - if(detectedConv != null) { - detectedConv.reset(); - detectedConv = null; - convName = null; - } else - defaultConv.reset(); - charOff = byteOff = 0; - } - - public String getCharacterEncoding() { - return "JISAutoDetect"; - } - - public String toString() { - String s = getCharacterEncoding(); - if (detectedConv != null) { - s += "[" + detectedConv.getCharacterEncoding() + "]"; - } else { - s += "[unknown]"; - } - return s; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharJohab.java --- a/jdk/src/share/classes/sun/io/ByteToCharJohab.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharJohab extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new Johab().newDecoder(); - - public String getCharacterEncoding() { - return "Johab"; - } - - public ByteToCharJohab() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharKOI8_R.java --- a/jdk/src/share/classes/sun/io/ByteToCharKOI8_R.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.KOI8_R; - -/** - * A table to convert KOI8_R to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharKOI8_R extends ByteToCharSingleByte { - - private final static KOI8_R nioCoder = new KOI8_R(); - - public String getCharacterEncoding() { - return "KOI8_R"; - } - - public ByteToCharKOI8_R() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS874.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS874.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.MS874; - -/** - * A table to convert MS874 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMS874 extends ByteToCharSingleByte { - - private final static MS874 nioCoder = new MS874(); - - public String getCharacterEncoding() { - return "MS874"; - } - - public ByteToCharMS874() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS932.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS932.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 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.*; - -public class ByteToCharMS932 extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new MS932().newDecoder(); - - public String getCharacterEncoding() { - return "MS932"; - } - - public ByteToCharMS932() { - super(dec); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS936.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS936.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharMS936 extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new MS936().newDecoder(); - - public String getCharacterEncoding() { - return "MS936"; - } - - public ByteToCharMS936() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS949.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS949.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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.*; - -public class ByteToCharMS949 extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new MS949().newDecoder(); - - - public String getCharacterEncoding() { - return "MS949"; - } - - public ByteToCharMS949() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS950.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS950.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class ByteToCharMS950 extends ByteToCharDBCS_ASCII { - - private static DoubleByte.Decoder dec = - (DoubleByte.Decoder)new MS950().newDecoder(); - - public String getCharacterEncoding() { - return "MS950"; - } - - public ByteToCharMS950() { - super(dec); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java --- a/jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2002, 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.HKSCS; -import sun.nio.cs.ext.MS950_HKSCS; -import static sun.nio.cs.CharsetMapping.*; - -public class ByteToCharMS950_HKSCS extends ByteToCharDBCS_ASCII { - - private static HKSCS.Decoder dec = - (HKSCS.Decoder)new MS950_HKSCS().newDecoder(); - - public String getCharacterEncoding() { - return "MS950_HKSCS"; - } - - public ByteToCharMS950_HKSCS() { - super(dec); - } - - protected char decodeDouble(int byte1, int byte2) { - char c = dec.decodeDouble(byte1, byte2); - if (c == UNMAPPABLE_DECODING) - c = dec.decodeBig5(byte1, byte2); - return c; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacArabic.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacArabic.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacArabic; - -/** - * A table to convert to MacArabic to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacArabic extends ByteToCharSingleByte { - - private final static MacArabic nioCoder = new MacArabic(); - - public String getCharacterEncoding() { - return "MacArabic"; - } - - public ByteToCharMacArabic() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacCentralEurope.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacCentralEurope.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCentralEurope; - -/** - * A table to convert to MacCentralEurope to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacCentralEurope extends ByteToCharSingleByte { - - private final static MacCentralEurope nioCoder = new MacCentralEurope(); - - public String getCharacterEncoding() { - return "MacCentralEurope"; - } - - public ByteToCharMacCentralEurope() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacCroatian.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacCroatian.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCroatian; - -/** - * A table to convert to MacCroatian to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacCroatian extends ByteToCharSingleByte { - - private final static MacCroatian nioCoder = new MacCroatian(); - - public String getCharacterEncoding() { - return "MacCroatian"; - } - - public ByteToCharMacCroatian() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacCyrillic.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacCyrillic.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCyrillic; - -/** - * A table to convert to MacCyrillic to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacCyrillic extends ByteToCharSingleByte { - - private final static MacCyrillic nioCoder = new MacCyrillic(); - - public String getCharacterEncoding() { - return "MacCyrillic"; - } - - public ByteToCharMacCyrillic() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacDingbat.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacDingbat.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacDingbat; - -/** - * A table to convert to MacDingbat to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacDingbat extends ByteToCharSingleByte { - - private final static MacDingbat nioCoder = new MacDingbat(); - - public String getCharacterEncoding() { - return "MacDingbat"; - } - - public ByteToCharMacDingbat() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacGreek.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacGreek.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacGreek; - -/** - * A table to convert to MacGreek to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacGreek extends ByteToCharSingleByte { - - private final static MacGreek nioCoder = new MacGreek(); - - public String getCharacterEncoding() { - return "MacGreek"; - } - - public ByteToCharMacGreek() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacHebrew.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacHebrew.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacHebrew; - -/** - * A table to convert to MacHebrew to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacHebrew extends ByteToCharSingleByte { - - private final static MacHebrew nioCoder = new MacHebrew(); - - public String getCharacterEncoding() { - return "MacHebrew"; - } - - public ByteToCharMacHebrew() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacIceland.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacIceland.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacIceland; - -/** - * A table to convert to MacIceland to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacIceland extends ByteToCharSingleByte { - - private final static MacIceland nioCoder = new MacIceland(); - - public String getCharacterEncoding() { - return "MacIceland"; - } - - public ByteToCharMacIceland() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacRoman.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacRoman.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacRoman; - -/** - * A table to convert to MacRoman to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacRoman extends ByteToCharSingleByte { - - private final static MacRoman nioCoder = new MacRoman(); - - public String getCharacterEncoding() { - return "MacRoman"; - } - - public ByteToCharMacRoman() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacRomania.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacRomania.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacRomania; - -/** - * A table to convert to MacRomania to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacRomania extends ByteToCharSingleByte { - - private final static MacRomania nioCoder = new MacRomania(); - - public String getCharacterEncoding() { - return "MacRomania"; - } - - public ByteToCharMacRomania() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacSymbol.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacSymbol.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacSymbol; - -/** - * A table to convert to MacSymbol to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacSymbol extends ByteToCharSingleByte { - - private final static MacSymbol nioCoder = new MacSymbol(); - - public String getCharacterEncoding() { - return "MacSymbol"; - } - - public ByteToCharMacSymbol() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacThai.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacThai.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacThai; - -/** - * A table to convert to MacThai to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacThai extends ByteToCharSingleByte { - - private final static MacThai nioCoder = new MacThai(); - - public String getCharacterEncoding() { - return "MacThai"; - } - - public ByteToCharMacThai() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacTurkish.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacTurkish.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacTurkish; - -/** - * A table to convert to MacTurkish to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacTurkish extends ByteToCharSingleByte { - - private final static MacTurkish nioCoder = new MacTurkish(); - - public String getCharacterEncoding() { - return "MacTurkish"; - } - - public ByteToCharMacTurkish() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharMacUkraine.java --- a/jdk/src/share/classes/sun/io/ByteToCharMacUkraine.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacUkraine; - -/** - * A table to convert to MacUkraine to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharMacUkraine extends ByteToCharSingleByte { - - private final static MacUkraine nioCoder = new MacUkraine(); - - public String getCharacterEncoding() { - return "MacUkraine"; - } - - public ByteToCharMacUkraine() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharPCK.java --- a/jdk/src/share/classes/sun/io/ByteToCharPCK.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Decoder; - -/** - * - * @author Limin Shi - * @author Mark Son-Bell - * @author Ian Little - * - * - * PCK Converter for Solaris ja locales - * refer to : Solaris manpage man PCK(5) - * Incorporates mappings from NEC row 13 and IBM select extension chars - * in addition to those defined within JIS X0208:1997 (bugID: 4765370) - * - */ - -public class ByteToCharPCK extends ByteToCharSJIS { - ByteToCharJIS0201 bcJIS0201 = new ByteToCharJIS0201(); - ByteToCharJIS0208_Solaris bcJIS0208 = new ByteToCharJIS0208_Solaris(); - - public String getCharacterEncoding() { - return "PCK"; - } - - protected char convSingleByte(int b) { - // If the high bits are all off, it's ASCII == Unicode - if ((b & 0xFF80) == 0) { - return (char)b; - } - return bcJIS0201.getUnicode(b); - } - - protected char getUnicode(int c1, int c2) { - char outChar; - if ((outChar = super.getUnicode(c1, c2)) != '\uFFFD') { - // Map JIS X 0208:1983 0x213D <--> U+2015 - return ((outChar != '\u2014')? outChar: '\u2015'); - } else { - int adjust = c2 < 0x9F ? 1 : 0; - int rowOffset = c1 < 0xA0 ? 0x70 : 0xB0; - int cellOffset = (adjust == 1) ? (c2 > 0x7F ? 0x20 : 0x1F) : 0x7E; - int b1 = ((c1 - rowOffset) << 1) - adjust; - int b2 = c2 - cellOffset; - outChar = bcJIS0208.getUnicode(b1, b2); - return outChar; - } - } - - String prt(int i) { - return Integer.toString(i,16); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharSJIS.java --- a/jdk/src/share/classes/sun/io/ByteToCharSJIS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* - * Copyright (c) 1996, 1998, 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; - -/** - * The SJIS converters follow the Shift JIS definition in the JIS - * X0208:1997 standard as much as possible. The MS932 converters must - * be used where the Microsoft Code Page 932 character repertoire and - * Unicode mappings are required. - * - * @author Limin Shi - * @author Mark Son-Bell - */ - -public class ByteToCharSJIS extends ByteToCharJIS0208 { - ByteToCharJIS0201 bcJIS0201 = new ByteToCharJIS0201(); - - public String getCharacterEncoding() { - return "SJIS"; - } - - protected char convSingleByte(int b) { - // If the high bits are all off, it's ASCII == Unicode - if ((b & 0xFF80) == 0) { - return (char)b; - } - return bcJIS0201.getUnicode(b); - } - - protected char getUnicode(int c1, int c2) { - int adjust = c2 < 0x9F ? 1 : 0; - int rowOffset = c1 < 0xA0 ? 0x70 : 0xB0; - int cellOffset = (adjust == 1) ? (c2 > 0x7F ? 0x20 : 0x1F) : 0x7E; - int b1 = ((c1 - rowOffset) << 1) - adjust; - int b2 = c2 - cellOffset; - return super.getUnicode(b1, b2); - } - - String prt(int i) { - return Integer.toString(i,16); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharSingleByte.java --- a/jdk/src/share/classes/sun/io/ByteToCharSingleByte.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* - * Copyright (c) 1996, 2002, 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; - -/** - * A table driven conversion from byte to char for single byte character sets. - * The needed data tables will reside in a character set specific subclass. - * - * @author Lloyd Honomichl - * @author Asmus Freytag - */ -public abstract class ByteToCharSingleByte extends ByteToCharConverter { - - /** - * Mapping table. Values supplied by subclass - */ - protected String byteToCharTable; - - public String getByteToCharTable() { - return byteToCharTable; - } - - public int flush(char[] output, int outStart, int outEnd) { - byteOff = charOff = 0; - return 0; - } - - /** - * Converts bytes to characters according to the selected character - * encoding. - * Maintains internal state, so that conversions that result in - * exceptions can be restarted by calling convert again, with - * appropriately modified parameters. - * Call reset before converting input that is not a continuation of - * the previous call. - * @return the number of characters written to output. - * @param input byte array containing text in character set - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output character array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last character to be written to - * @throw MalformedInputException for any sequence of bytes that is - * illegal for the input character set, including any partial multi-byte - * sequence which occurs at the end of an input buffer. - * @throw UnsupportedCharacterException for any sequence of bytes that - * contain a character not supported in the current conversion. - * @throw BufferFullException whenever the output buffer is full - * before the input is exhausted. - * @see #reset - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws UnknownCharacterException, - MalformedInputException, - ConversionBufferFullException - { - char outputChar; - int byteIndex; - - charOff = outOff; - byteOff = inOff; - - // Loop until we hit the end of the input - while(byteOff < inEnd) { - - byteIndex = input[byteOff]; - - /* old source - *outputChar = byteToCharTable[input[byteOff] + 128]; - */ - // Lookup the output character - outputChar = getUnicode(byteIndex); - - // Is the output unmappable? - if (outputChar == '\uFFFD') { - if (subMode) { - outputChar = subChars[0]; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - // If we don't have room for the output, throw an exception - if (charOff >= outEnd) - throw new ConversionBufferFullException(); - - // Put the character in the output buffer - output[charOff]= outputChar; - charOff++; - byteOff++; - } - - // Return the length written to the output buffer - return charOff-outOff; - } - - protected char getUnicode(int byteIndex) { - int n = byteIndex + 128; - if (n >= byteToCharTable.length() || n < 0) - return '\uFFFD'; - return byteToCharTable.charAt(n); - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - byteOff = charOff = 0; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharTIS620.java --- a/jdk/src/share/classes/sun/io/ByteToCharTIS620.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.TIS_620; - -/** - * A table to convert TIS620 to Unicode - * - * @author ConverterGenerator tool - */ - -public class ByteToCharTIS620 extends ByteToCharSingleByte { - - private final static TIS_620 nioCoder = new TIS_620(); - - public String getCharacterEncoding() { - return "TIS620"; - } - - public ByteToCharTIS620() { - super.byteToCharTable = nioCoder.getDecoderSingleByteMappings(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUTF16.java --- a/jdk/src/share/classes/sun/io/ByteToCharUTF16.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1999, 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; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters, assuming an initial byte-order mark. - */ - -public class ByteToCharUTF16 extends ByteToCharUnicode { - - public ByteToCharUTF16() { - super(AUTO, true); - } - - public String getCharacterEncoding() { - return "UTF-16"; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUTF8.java --- a/jdk/src/share/classes/sun/io/ByteToCharUTF8.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* - * 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 - * 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; - - -/** - * UCS Transformation Format 8 (UTF-8) -> UCS2 (UTF16) converter - * - * see CharToByteUTF8.java about UTF-8 format - */ - -public class ByteToCharUTF8 extends ByteToCharConverter { - - private int savedSize; - private byte[] savedBytes; - - public ByteToCharUTF8() { - super(); - savedSize = 0; - savedBytes = new byte[5]; - } - - public int flush(char[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (savedSize != 0) { - savedSize = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - /** - * Character converson - */ - public int convert(byte[] input, int inOff, int inEnd, - char[] output, int outOff, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - int byte1, byte2, byte3, byte4; - char[] outputChar = new char[2]; - int outputSize; - int byteOffAdjustment = 0; - - if (savedSize != 0) { - byte[] newBuf; - newBuf = new byte[inEnd - inOff + savedSize]; - for (int i = 0; i < savedSize; i++) { - newBuf[i] = savedBytes[i]; - } - System.arraycopy(input, inOff, newBuf, savedSize, inEnd - inOff); - input = newBuf; - inOff = 0; - inEnd = newBuf.length; - byteOffAdjustment = -savedSize; - savedSize = 0; - } - - charOff = outOff; - byteOff = inOff; - int startByteOff; - - while(byteOff < inEnd) { - - startByteOff = byteOff; - byte1 = input[byteOff++] & 0xff; - - if ((byte1 & 0x80) == 0){ - outputChar[0] = (char)byte1; - outputSize = 1; - } else if ((byte1 & 0xe0) == 0xc0) { - if (byteOff >= inEnd) { - savedSize = 1; - savedBytes[0] = (byte)byte1; - break; - } - byte2 = input[byteOff++] & 0xff; - if ((byte2 & 0xc0) != 0x80) { - badInputLength = 2; - byteOff += byteOffAdjustment; - throw new MalformedInputException(); - } - outputChar[0] = (char)(((byte1 & 0x1f) << 6) | (byte2 & 0x3f)); - outputSize = 1; - } else if ((byte1 & 0xf0) == 0xe0){ - if (byteOff + 1 >= inEnd) { - savedBytes[0] = (byte)byte1; - if (byteOff >= inEnd) { - savedSize = 1; - } else { - savedSize = 2; - savedBytes[1] = input[byteOff++]; - } - break; - } - byte2 = input[byteOff++] & 0xff; - byte3 = input[byteOff++] & 0xff; - if ((byte2 & 0xc0) != 0x80 || (byte3 & 0xc0) != 0x80) { - badInputLength = 3; - byteOff += byteOffAdjustment; - throw new MalformedInputException(); - } - outputChar[0] = (char)(((byte1 & 0x0f) << 12) - | ((byte2 & 0x3f) << 6) - | (byte3 & 0x3f)); - outputSize = 1; - } else if ((byte1 & 0xf8) == 0xf0) { - if (byteOff + 2 >= inEnd) { - savedBytes[0] = (byte)byte1; - if (byteOff >= inEnd) { - savedSize = 1; - } else if (byteOff + 1 >= inEnd) { - savedSize = 2; - savedBytes[1] = input[byteOff++]; - } else { - savedSize = 3; - savedBytes[1] = input[byteOff++]; - savedBytes[2] = input[byteOff++]; - } - break; - } - byte2 = input[byteOff++] & 0xff; - byte3 = input[byteOff++] & 0xff; - byte4 = input[byteOff++] & 0xff; - if ((byte2 & 0xc0) != 0x80 || - (byte3 & 0xc0) != 0x80 || - (byte4 & 0xc0) != 0x80) { - badInputLength = 4; - byteOff += byteOffAdjustment; - throw new MalformedInputException(); - } - // this byte sequence is UTF16 character - int ucs4 = (0x07 & byte1) << 18 | - (0x3f & byte2) << 12 | - (0x3f & byte3) << 6 | - (0x3f & byte4); - outputChar[0] = (char)((ucs4 - 0x10000) / 0x400 + 0xd800); - outputChar[1] = (char)((ucs4 - 0x10000) % 0x400 + 0xdc00); - outputSize = 2; - } else { - badInputLength = 1; - byteOff += byteOffAdjustment; - throw new MalformedInputException(); - } - - if (charOff + outputSize > outEnd) { - byteOff = startByteOff; - byteOff += byteOffAdjustment; - throw new ConversionBufferFullException(); - } - - for (int i = 0; i < outputSize; i++) { - output[charOff + i] = outputChar[i]; - } - charOff += outputSize; - } - - byteOff += byteOffAdjustment; - return charOff - outOff; - } - - /* - * Return the character set id - */ - public String getCharacterEncoding() { - return "UTF8"; - } - - /* - * Reset after finding bad input - */ - public void reset() { - byteOff = charOff = 0; - savedSize = 0; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUnicode.java --- a/jdk/src/share/classes/sun/io/ByteToCharUnicode.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,220 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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 java.io.*; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters. This class may be used directly, in which case it - * expects the input byte array to begin with a byte-order mark, or it may be - * subclassed in order to preset the byte order and mark behavior. - * - *

      Whether or not a mark is expected, if a mark that does not match the - * established byte order is later discovered then a - * MalformedInputException will be thrown by the convert - * method. If a correct mark is seen later in the input stream, it is passed - * through as a character. - * - * @see ByteToCharUnicodeLittle - * @see ByteToCharUnicodeLittleUnmarked - * @see ByteToCharUnicodeBig - * @see ByteToCharUnicodeBigUnmarked - * - * @author Mark Reinhold - */ - -public class ByteToCharUnicode extends ByteToCharConverter { - - static final char BYTE_ORDER_MARK = (char) 0xfeff; - static final char REVERSED_MARK = (char) 0xfffe; - - static final int AUTO = 0; - static final int BIG = 1; - static final int LITTLE = 2; - - int originalByteOrder; /* Byte order specified at creation */ - int byteOrder; /* Byte order in use */ - boolean usesMark; /* Look for a mark and interpret it */ - - /** - * Creates a Unicode byte-to-char converter that expects the first pair of - * input bytes to be a byte-order mark, which will be interpreted and - * discarded. If the first pair of bytes is not such a mark then a - * MalformedInputException will be thrown by the convert method. - */ - public ByteToCharUnicode() { - originalByteOrder = byteOrder = AUTO; - usesMark = true; - } - - /** - * Creates a Unicode byte-to-char converter that uses the given byte order - * and may or may not insist upon an initial byte-order mark. - */ - protected ByteToCharUnicode(int bo, boolean m) { - originalByteOrder = byteOrder = bo; - usesMark = m; - } - - public String getCharacterEncoding() { - switch (originalByteOrder) { - case BIG: - return usesMark ? "UnicodeBig" : "UnicodeBigUnmarked"; - case LITTLE: - return usesMark ? "UnicodeLittle" : "UnicodeLittleUnmarked"; - default: - return "Unicode"; - } - } - - boolean started = false; - int leftOverByte; - boolean leftOver = false; - - public int convert(byte[] in, int inOff, int inEnd, - char[] out, int outOff, int outEnd) - throws ConversionBufferFullException, MalformedInputException - { - byteOff = inOff; - charOff = outOff; - - if (inOff >= inEnd) - return 0; - - int b1, b2; - int bc = 0; - int inI = inOff, outI = outOff; - - if (leftOver) { - b1 = leftOverByte & 0xff; - leftOver = false; - } - else { - b1 = in[inI++] & 0xff; - } - bc = 1; - - if (usesMark && !started) { /* Read initial byte-order mark */ - if (inI < inEnd) { - b2 = in[inI++] & 0xff; - bc = 2; - - char c = (char) ((b1 << 8) | b2); - int bo = AUTO; - - if (c == BYTE_ORDER_MARK) - bo = BIG; - else if (c == REVERSED_MARK) - bo = LITTLE; - - if (byteOrder == AUTO) { - if (bo == AUTO) { - badInputLength = bc; - throw new - MalformedInputException("Missing byte-order mark"); - } - byteOrder = bo; - if (inI < inEnd) { - b1 = in[inI++] & 0xff; - bc = 1; - } - } - else if (bo == AUTO) { - inI--; - bc = 1; - } - else if (byteOrder == bo) { - if (inI < inEnd) { - b1 = in[inI++] & 0xff; - bc = 1; - } - } - else { - badInputLength = bc; - throw new - MalformedInputException("Incorrect byte-order mark"); - } - - started = true; - } - } - - /* Loop invariant: (b1 contains the next input byte) && (bc == 1) */ - while (inI < inEnd) { - b2 = in[inI++] & 0xff; - bc = 2; - - char c; - if (byteOrder == BIG) - c = (char) ((b1 << 8) | b2); - else - c = (char) ((b2 << 8) | b1); - - if (c == REVERSED_MARK) - throw new - MalformedInputException("Reversed byte-order mark"); - - if (outI >= outEnd) - throw new ConversionBufferFullException(); - out[outI++] = c; - byteOff = inI; - charOff = outI; - - if (inI < inEnd) { - b1 = in[inI++] & 0xff; - bc = 1; - } - } - - if (bc == 1) { - leftOverByte = b1; - byteOff = inI; - leftOver = true; - } - - return outI - outOff; - } - - public void reset() { - leftOver = false; - byteOff = charOff = 0; - started = false; - byteOrder = originalByteOrder; - } - - public int flush(char buf[], int off, int len) - throws MalformedInputException - { - if (leftOver) { - reset(); - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUnicodeBig.java --- a/jdk/src/share/classes/sun/io/ByteToCharUnicodeBig.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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 java.io.*; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters, assuming a big-endian byte order. - * - * @author Mark Reinhold - */ - -public class ByteToCharUnicodeBig extends ByteToCharUnicode { - - public ByteToCharUnicodeBig() { - super(BIG, true); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java --- a/jdk/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1999, 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 java.io.*; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters, assuming a big-endian byte order and requiring no - * byte-order mark. - * - * @author Mark Reinhold - */ - -public class ByteToCharUnicodeBigUnmarked extends ByteToCharUnicode { - - public ByteToCharUnicodeBigUnmarked() { - super(BIG, false); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUnicodeLittle.java --- a/jdk/src/share/classes/sun/io/ByteToCharUnicodeLittle.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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 java.io.*; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters, assuming a little-endian byte order. - * - * @author Mark Reinhold - */ - -public class ByteToCharUnicodeLittle extends ByteToCharUnicode { - - public ByteToCharUnicodeLittle() { - super(LITTLE, true); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java --- a/jdk/src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1999, 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 java.io.*; - - -/** - * Convert byte arrays containing Unicode characters into arrays of actual - * Unicode characters, assuming a little-endian byte order and requiring no - * byte-order mark. - * - * @author Mark Reinhold - */ - -public class ByteToCharUnicodeLittleUnmarked extends ByteToCharUnicode { - - public ByteToCharUnicodeLittleUnmarked() { - super(LITTLE, false); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteASCII.java --- a/jdk/src/share/classes/sun/io/CharToByteASCII.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -public class CharToByteASCII extends CharToByteConverter { - - // Return the character set ID - public String getCharacterEncoding() - { - return "ASCII"; - } - - private char highHalfZoneCode; - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - throw new MalformedInputException - ("String ends with of UTF16"); - } - byteOff = charOff = 0; - return 0; - } - - /* - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, - UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - byte[] tmpArray = new byte[1]; - int inputSize; // Size of input - int outputSize; // Size of output - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException - ("Previous converted string ends with " + - " of UTF16 " + - ", but this string is not begin with "); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - outputByte = tmpArray; - - // Get the input character - inputChar = input[charOff]; - - // default outputSize - outputSize = 1; - - // Assume this is a simple character - inputSize = 1; - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character in the input? - if (charOff + 1 == inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't map - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } - // Not part of a surrogate, so try to convert - else { - // Is this character mappable? - if (inputChar <= '\u007F') { - outputByte[0] = (byte)inputChar; - } else { - // Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - - // Return the length written to the output buffer - return byteOff-outOff; - } - - // Determine if a character is mappable or not - public boolean canConvert(char ch) - { - return (ch <= '\u007F'); - } - - // Reset the converter - public void reset() - { - byteOff = charOff = 0; - highHalfZoneCode = 0; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() - { - return 1; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteBig5.java --- a/jdk/src/share/classes/sun/io/CharToByteBig5.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* - * 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 - * 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.DoubleByte; -import sun.nio.cs.ext.Big5; - -/** - * Tables and data to convert Unicode to Big5 - * - */ - -public class CharToByteBig5 extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new Big5().newEncoder(); - - public String getCharacterEncoding() { - return "Big5"; - } - - public CharToByteBig5() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java --- a/jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2001, 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.DoubleByte; -import sun.nio.cs.ext.Big5_HKSCS; - -public class CharToByteBig5_HKSCS extends CharToByteDBCS_ASCII { - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new Big5_HKSCS().newEncoder(); - - public String getCharacterEncoding() { - return "Big5_HKSCS"; - } - - public CharToByteBig5_HKSCS() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java --- a/jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2001, 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.DoubleByte; -import sun.nio.cs.ext.Big5_Solaris; - -public class CharToByteBig5_Solaris extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new Big5_Solaris().newEncoder(); - - public String getCharacterEncoding() { - return "Big5_Solaris"; - } - - public CharToByteBig5_Solaris() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteConverter.java --- a/jdk/src/share/classes/sun/io/CharToByteConverter.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,419 +0,0 @@ -/* - * Copyright (c) 1996, 2004, 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 java.io.*; - - -/** - * An abstract base class for subclasses which convert Unicode - * characters into an external encoding. - * - * @author Asmus Freytag - * @author Lloyd Honomichl, Novell, Inc. - * - * @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE - * REMOVED IN J2SE 1.6. - */ -@Deprecated -public abstract class CharToByteConverter { - - /** - * Substitution mode flag. - */ - protected boolean subMode = true; - - /** - * Bytes to substitute for unmappable input. - */ - protected byte[] subBytes = { (byte)'?' }; - - /** - * Offset of next character to be converted. - */ - protected int charOff; - - /** - * Offset of next byte to be output. - */ - protected int byteOff; - - /** - * Length of bad input that caused conversion to stop. - */ - protected int badInputLength; - - /** - * Create an instance of the default CharToByteConverter subclass. - */ - public static CharToByteConverter getDefault() { - Object cvt; - cvt = Converters.newDefaultConverter(Converters.CHAR_TO_BYTE); - return (CharToByteConverter)cvt; - } - - /** - * Returns appropriate CharToByteConverter subclass instance. - * @param string represets encoding - */ - public static CharToByteConverter getConverter(String encoding) - throws UnsupportedEncodingException - { - Object cvt; - cvt = Converters.newConverter(Converters.CHAR_TO_BYTE, encoding); - return (CharToByteConverter)cvt; - } - - /** - * Returns the character set id for the conversion. - */ - public abstract String getCharacterEncoding(); - - /** - * Converts an array of Unicode characters into an array of bytes - * in the target character encoding. This method allows a buffer by - * buffer conversion of a data stream. The state of the conversion is - * saved between calls to convert. If a call to convert results in - * an exception, the conversion may be continued by calling convert again - * with suitably modified parameters. All conversions should be finished - * with a call to the flush method. - * - * @return the number of bytes written to output. - * @param input array containing Unicode characters to be converted. - * @param inStart begin conversion at this offset in input array. - * @param inEnd stop conversion at this offset in input array (exclusive). - * @param output byte array to receive conversion result. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @exception MalformedInputException if the input buffer contains any - * sequence of chars that is illegal in Unicode (principally unpaired - * surrogates and \uFFFF or \uFFFE). After this exception is thrown, - * the method nextCharIndex can be called to obtain the index of the - * first invalid input character. The MalformedInputException can - * be queried for the length of the invalid input. - * @exception UnknownCharacterException for any character that - * that cannot be converted to the external character encoding. Thrown - * only when converter is not in substitution mode. - * @exception ConversionBufferFullException if output array is filled prior - * to converting all the input. - */ - public abstract int convert(char[] input, int inStart, int inEnd, - byte[] output, int outStart, int outEnd) - throws MalformedInputException, - UnknownCharacterException, - ConversionBufferFullException; - - /* - * Converts any array of characters, including malformed surrogate - * pairs, into an array of bytes in the target character encoding. - * A precondition is that substitution mode is turned on. This method - * allows a buffer by buffer conversion of a data stream. - * The state of the conversion is saved between calls to convert. - * All conversions should be finished with a call to the flushAny method. - * - * @return the number of bytes written to output. - * @param input array containing Unicode characters to be converted. - * @param inStart begin conversion at this offset in input array. - * @param inEnd stop conversion at this offset in input array (exclusive). - * @param output byte array to receive conversion result. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @exception ConversionBufferFullException if output array is filled prior - * to converting all the input. - */ - public int convertAny(char[] input, int inStart, int inEnd, - byte[] output, int outStart, int outEnd) - throws ConversionBufferFullException - { - if (!subMode) { /* Precondition: subMode == true */ - throw new IllegalStateException("Substitution mode is not on"); - } - /* Rely on the untested precondition that the indices are meaningful */ - /* For safety, use the public interface to charOff and byteOff, but - badInputLength is directly modified.*/ - int localInOff = inStart; - int localOutOff = outStart; - while(localInOff < inEnd) { - try { - int discard = convert(input, localInOff, inEnd, - output, localOutOff, outEnd); - return (nextByteIndex() - outStart); - } catch (MalformedInputException e) { - byte[] s = subBytes; - int subSize = s.length; - localOutOff = nextByteIndex(); - if ((localOutOff + subSize) > outEnd) - throw new ConversionBufferFullException(); - for (int i = 0; i < subSize; i++) - output[localOutOff++] = s[i]; - localInOff = nextCharIndex(); - localInOff += badInputLength; - badInputLength = 0; - if (localInOff >= inEnd){ - byteOff = localOutOff; - return (byteOff - outStart); - } - continue; - }catch (UnknownCharacterException e) { - /* Should never occur, since subMode == true */ - throw new Error("UnknownCharacterException thrown " - + "in substititution mode", - e); - } - } - return (nextByteIndex() - outStart); - } - - - - /** - * Converts an array of Unicode characters into an array of bytes - * in the target character encoding. Unlike convert, this method - * does not do incremental conversion. It assumes that the given - * input array contains all the characters to be converted. The - * state of the converter is reset at the beginning of this method - * and is left in the reset state on successful termination. - * The converter is not reset if an exception is thrown. - * This allows the caller to determine where the bad input - * was encountered by calling nextCharIndex. - *

      - * This method uses substitution mode when performing the conversion. - * The method setSubstitutionBytes may be used to determine what - * bytes are substituted. Even though substitution mode is used, - * the state of the converter's substitution mode is not changed - * at the end of this method. - * - * @return an array of bytes containing the converted characters. - * @param input array containing Unicode characters to be converted. - * @exception MalformedInputException if the input buffer contains any - * sequence of chars that is illegal in Unicode (principally unpaired - * surrogates and \uFFFF or \uFFFE). After this exception is thrown, - * the method nextCharIndex can be called to obtain the index of the - * first invalid input character and getBadInputLength can be called - * to determine the length of the invalid input. - * - * @see #nextCharIndex - * @see #setSubstitutionMode - * @see #setSubstitutionBytes - * @see #getBadInputLength - */ - public byte[] convertAll( char input[] ) throws MalformedInputException { - reset(); - boolean savedSubMode = subMode; - subMode = true; - - byte[] output = new byte[ getMaxBytesPerChar() * input.length ]; - - try { - int outputLength = convert( input, 0, input.length, - output, 0, output.length ); - outputLength += flush( output, nextByteIndex(), output.length ); - - byte [] returnedOutput = new byte[ outputLength ]; - System.arraycopy( output, 0, returnedOutput, 0, outputLength ); - return returnedOutput; - } - catch( ConversionBufferFullException e ) { - //Not supposed to happen. If it does, getMaxBytesPerChar() lied. - throw new - InternalError("this.getMaxBytesPerChar returned bad value"); - } - catch( UnknownCharacterException e ) { - // Not supposed to happen since we're in substitution mode. - throw new InternalError(); - } - finally { - subMode = savedSubMode; - } - } - - /** - * Writes any remaining output to the output buffer and resets the - * converter to its initial state. - * - * @param output byte array to receive flushed output. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @exception MalformedInputException if the output to be flushed contained - * a partial or invalid multibyte character sequence. Will occur if the - * input buffer on the last call to convert ended with the first character - * of a surrogate pair. flush will write what it can to the output buffer - * and reset the converter before throwing this exception. An additional - * call to flush is not required. - * @exception ConversionBufferFullException if output array is filled - * before all the output can be flushed. flush will write what it can - * to the output buffer and remember its state. An additional call to - * flush with a new output buffer will conclude the operation. - */ - public abstract int flush( byte[] output, int outStart, int outEnd ) - throws MalformedInputException, ConversionBufferFullException; - - /** - * Writes any remaining output to the output buffer and resets the - * converter to its initial state. May only be called when substitution - * mode is turned on, and never complains about malformed input (always - * substitutes). - * - * @param output byte array to receive flushed output. - * @param outStart start writing to output array at this offset. - * @param outEnd stop writing to output array at this offset (exclusive). - * @return number of bytes writter into output. - * @exception ConversionBufferFullException if output array is filled - * before all the output can be flushed. flush will write what it can - * to the output buffer and remember its state. An additional call to - * flush with a new output buffer will conclude the operation. - */ - public int flushAny( byte[] output, int outStart, int outEnd ) - throws ConversionBufferFullException - { - if (!subMode) { /* Precondition: subMode == true */ - throw new IllegalStateException("Substitution mode is not on"); - } - try { - return flush(output, outStart, outEnd); - } catch (MalformedInputException e) { - /* Assume that if a malformed input exception has occurred, - no useful data has been placed in the output buffer. - i.e. there is no mixture of left over good + some bad data. - Usually occurs with a trailing high surrogate pair element. - Special cases occur in Cp970, 949c and 933 that seem - to be covered, but may require further investigation */ - int subSize = subBytes.length; - byte[] s = subBytes; - int outIndex = outStart; - if ((outStart + subSize) > outEnd) - throw new ConversionBufferFullException(); - for (int i = 0; i < subSize; i++) - output[outIndex++] = s[i]; - byteOff = charOff = 0; // Reset the internal state. - badInputLength = 0; - return subSize; - } - } - - /** - * Resets converter to its initial state. - */ - public abstract void reset(); - - /** - * Returns true if the given character can be converted to the - * target character encoding. - * @return true if given character is translatable, false otherwise. - * @param c character to test - */ - public boolean canConvert(char c) { - try { - //FIXME output buffer size should use getMaxBytesPerChar value. - char[] input = new char[1]; - byte[] output = new byte[3]; - input[0] = c; - convert(input, 0, 1, output, 0, 3); - return true; - } catch(CharConversionException e){ - return false; - } - } - - /** - * Returns the maximum number of bytes needed to convert a char. Useful - * for calculating the maximum output buffer size needed for a particular - * input buffer. - */ - public abstract int getMaxBytesPerChar(); - - /** - * Returns the length, in chars, of the input which caused a - * MalformedInputException. Always refers to the last - * MalformedInputException thrown by the converter. If none have - * ever been thrown, returns 0. - */ - public int getBadInputLength() { - return badInputLength; - } - - /** - * Returns the index of the character just past - * the last character successfully converted by the previous call - * to convert. - */ - public int nextCharIndex() { - return charOff; - } - - /** - * Returns the index of the byte just past the last byte written by - * the previous call to convert. - */ - public int nextByteIndex() { - return byteOff; - } - - /** - * Sets converter into substitution mode. In substitution mode, - * the converter will replace untranslatable characters in the source - * encoding with the substitution character set by setSubstitutionBytes. - * When not in substitution mode, the converter will throw an - * UnknownCharacterException when it encounters untranslatable input. - * - * @param doSub if true, enable substitution mode. - * @see #setSubstitutionBytes - */ - public void setSubstitutionMode(boolean doSub) { - subMode = doSub; - } - - /** - * Sets the substitution bytes to use when the converter is in - * substitution mode. The given bytes should represent a valid - * character in the target character encoding and must not be - * longer than the value returned by getMaxBytesPerChar for this - * converter. - * - * @param newSubBytes the substitution bytes - * @exception IllegalArgumentException if given byte array is longer than - * the value returned by the method getMaxBytesPerChar. - * @see #setSubstitutionMode - * @see #getMaxBytesPerChar - */ - public void setSubstitutionBytes( byte[] newSubBytes ) - throws IllegalArgumentException - { - if( newSubBytes.length > getMaxBytesPerChar() ) { - throw new IllegalArgumentException(); - } - - subBytes = new byte[ newSubBytes.length ]; - System.arraycopy( newSubBytes, 0, subBytes, 0, newSubBytes.length ); - } - - /** - * Returns a string representation of the class. - */ - public String toString() { - return "CharToByteConverter: " + getCharacterEncoding(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp037.java --- a/jdk/src/share/classes/sun/io/CharToByteCp037.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM037; - -/** - * Tables and data to convert Unicode to Cp037 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp037 extends CharToByteSingleByte { - - private final static IBM037 nioCoder = new IBM037(); - - public String getCharacterEncoding() { - return "Cp037"; - } - - public CharToByteCp037() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1006.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1006.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1006; - -/** - * Tables and data to convert Unicode to Cp1006 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1006 extends CharToByteSingleByte { - - private final static IBM1006 nioCoder = new IBM1006(); - - public String getCharacterEncoding() { - return "Cp1006"; - } - - public CharToByteCp1006() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1025.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1025.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1025; - -/** - * Tables and data to convert Unicode to Cp1025 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1025 extends CharToByteSingleByte { - - private final static IBM1025 nioCoder = new IBM1025(); - - public String getCharacterEncoding() { - return "Cp1025"; - } - - public CharToByteCp1025() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1026.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1026.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1026; - -/** - * Tables and data to convert Unicode to Cp1026 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1026 extends CharToByteSingleByte { - - private final static IBM1026 nioCoder = new IBM1026(); - - public String getCharacterEncoding() { - return "Cp1026"; - } - - public CharToByteCp1026() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1046.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1046.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1046; - -/** - * Tables and data to convert Unicode to Cp1046 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1046 extends CharToByteSingleByte { - - private final static IBM1046 nioCoder = new IBM1046(); - - public String getCharacterEncoding() { - return "Cp1046"; - } - - public CharToByteCp1046() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1047.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1047.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2002, 2003, 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.IBM1047; - -/** - * Tables and data to convert Unicode to Cp1047 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1047 extends CharToByteSingleByte { - - private final static IBM1047 nioCoder = new IBM1047(); - - public String getCharacterEncoding() { - return "Cp1047"; - } - - public CharToByteCp1047() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1097.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1097.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1097; - -/** - * Tables and data to convert Unicode to Cp1097 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1097 extends CharToByteSingleByte { - - private final static IBM1097 nioCoder = new IBM1097(); - - public String getCharacterEncoding() { - return "Cp1097"; - } - - public CharToByteCp1097() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1098.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1098.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1098; - -/** - * Tables and data to convert Unicode to Cp1098 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1098 extends CharToByteSingleByte { - - private final static IBM1098 nioCoder = new IBM1098(); - - public String getCharacterEncoding() { - return "Cp1098"; - } - - public CharToByteCp1098() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1112.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1112.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1112; - -/** - * Tables and data to convert Unicode to Cp1112 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1112 extends CharToByteSingleByte { - - private final static IBM1112 nioCoder = new IBM1112(); - - public String getCharacterEncoding() { - return "Cp1112"; - } - - public CharToByteCp1112() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1122.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1122.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1122; - -/** - * Tables and data to convert Unicode to Cp1122 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1122 extends CharToByteSingleByte { - - private final static IBM1122 nioCoder = new IBM1122(); - - public String getCharacterEncoding() { - return "Cp1122"; - } - - public CharToByteCp1122() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1123.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1123.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1123; - -/** - * Tables and data to convert Unicode to Cp1123 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1123 extends CharToByteSingleByte { - - private final static IBM1123 nioCoder = new IBM1123(); - - public String getCharacterEncoding() { - return "Cp1123"; - } - - public CharToByteCp1123() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1124.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1124.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM1124; - -/** - * Tables and data to convert Unicode to Cp1124 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1124 extends CharToByteSingleByte { - - private final static IBM1124 nioCoder = new IBM1124(); - - public String getCharacterEncoding() { - return "Cp1124"; - } - - public CharToByteCp1124() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1140.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1140.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1140; - -/** - * Tables and data to convert Unicode to Cp1140 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1140 extends CharToByteSingleByte { - - private final static IBM1140 nioCoder = new IBM1140(); - - public String getCharacterEncoding() { - return "Cp1140"; - } - - public CharToByteCp1140() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1141.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1141.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1141; - -/** - * Tables and data to convert Unicode to Cp1141 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1141 extends CharToByteSingleByte { - - private final static IBM1141 nioCoder = new IBM1141(); - - public String getCharacterEncoding() { - return "Cp1141"; - } - - public CharToByteCp1141() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1142.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1142.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1142; - -/** - * Tables and data to convert Unicode to Cp1142 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1142 extends CharToByteSingleByte { - - private final static IBM1142 nioCoder = new IBM1142(); - - public String getCharacterEncoding() { - return "Cp1142"; - } - - public CharToByteCp1142() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1143.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1143.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1143; - -/** - * Tables and data to convert Unicode to Cp1143 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1143 extends CharToByteSingleByte { - - private final static IBM1143 nioCoder = new IBM1143(); - - public String getCharacterEncoding() { - return "Cp1143"; - } - - public CharToByteCp1143() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1144.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1144.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1144; - -/** - * Tables and data to convert Unicode to Cp1144 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1144 extends CharToByteSingleByte { - - private final static IBM1144 nioCoder = new IBM1144(); - - public String getCharacterEncoding() { - return "Cp1144"; - } - - public CharToByteCp1144() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1145.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1145.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1145; - -/** - * Tables and data to convert Unicode to Cp1145 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1145 extends CharToByteSingleByte { - - private final static IBM1145 nioCoder = new IBM1145(); - - public String getCharacterEncoding() { - return "Cp1145"; - } - - public CharToByteCp1145() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1146.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1146.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1146; - -/** - * Tables and data to convert Unicode to Cp1146 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1146 extends CharToByteSingleByte { - - private final static IBM1146 nioCoder = new IBM1146(); - - public String getCharacterEncoding() { - return "Cp1146"; - } - - public CharToByteCp1146() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1147.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1147.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1147; - -/** - * Tables and data to convert Unicode to Cp1147 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1147 extends CharToByteSingleByte { - - private final static IBM1147 nioCoder = new IBM1147(); - - public String getCharacterEncoding() { - return "Cp1147"; - } - - public CharToByteCp1147() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1148.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1148.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1148; - -/** - * Tables and data to convert Unicode to Cp1148 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1148 extends CharToByteSingleByte { - - private final static IBM1148 nioCoder = new IBM1148(); - - public String getCharacterEncoding() { - return "Cp1148"; - } - - public CharToByteCp1148() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1149.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1149.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ext.IBM1149; - -/** - * Tables and data to convert Unicode to Cp1149 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1149 extends CharToByteSingleByte { - - private final static IBM1149 nioCoder = new IBM1149(); - - public String getCharacterEncoding() { - return "Cp1149"; - } - - public CharToByteCp1149() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1250.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1250.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1250; - -/** - * Tables and data to convert Unicode to Cp1250 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1250 extends CharToByteSingleByte { - - private final static MS1250 nioCoder = new MS1250(); - - public String getCharacterEncoding() { - return "Cp1250"; - } - - public CharToByteCp1250() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1251.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1251.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1251; - -/** - * Tables and data to convert Unicode to Cp1251 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1251 extends CharToByteSingleByte { - - private final static MS1251 nioCoder = new MS1251(); - - public String getCharacterEncoding() { - return "Cp1251"; - } - - public CharToByteCp1251() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1252.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1252.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1252; - -/** - * Tables and data to convert Unicode to Cp1252 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1252 extends CharToByteSingleByte { - - private final static MS1252 nioCoder = new MS1252(); - - public String getCharacterEncoding() { - return "Cp1252"; - } - - public CharToByteCp1252() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1253.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1253.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1253; - -/** - * Tables and data to convert Unicode to Cp1253 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1253 extends CharToByteSingleByte { - - private final static MS1253 nioCoder = new MS1253(); - - public String getCharacterEncoding() { - return "Cp1253"; - } - - public CharToByteCp1253() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1254.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1254.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1254; - -/** - * Tables and data to convert Unicode to Cp1254 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1254 extends CharToByteSingleByte { - - private final static MS1254 nioCoder = new MS1254(); - - public String getCharacterEncoding() { - return "Cp1254"; - } - - public CharToByteCp1254() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1255.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1255.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1255; - -/** - * Tables and data to convert Unicode to Cp1255 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1255 extends CharToByteSingleByte { - - private final static MS1255 nioCoder = new MS1255(); - - public String getCharacterEncoding() { - return "Cp1255"; - } - - public CharToByteCp1255() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1256.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1256.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1256; - -/** - * Tables and data to convert Unicode to Cp1256 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1256 extends CharToByteSingleByte { - - private final static MS1256 nioCoder = new MS1256(); - - public String getCharacterEncoding() { - return "Cp1256"; - } - - public CharToByteCp1256() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1257.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1257.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1257; - -/** - * Tables and data to convert Unicode to Cp1257 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1257 extends CharToByteSingleByte { - - private final static MS1257 nioCoder = new MS1257(); - - public String getCharacterEncoding() { - return "Cp1257"; - } - - public CharToByteCp1257() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1258.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1258.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MS1258; - -/** - * Tables and data to convert Unicode to Cp1258 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp1258 extends CharToByteSingleByte { - - private final static MS1258 nioCoder = new MS1258(); - - public String getCharacterEncoding() { - return "Cp1258"; - } - - public CharToByteCp1258() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1381.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1381.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp1381 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp1381"; - } - - public CharToByteCp1381() { - super((DoubleByte.Encoder)new IBM1381().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp1383.java --- a/jdk/src/share/classes/sun/io/CharToByteCp1383.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp1383 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp1383"; - } - - public CharToByteCp1383() { - super((DoubleByte.Encoder)new IBM1383().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp273.java --- a/jdk/src/share/classes/sun/io/CharToByteCp273.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM273; - -/** - * Tables and data to convert Unicode to Cp273 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp273 extends CharToByteSingleByte { - - private final static IBM273 nioCoder = new IBM273(); - - public String getCharacterEncoding() { - return "Cp273"; - } - - public CharToByteCp273() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp277.java --- a/jdk/src/share/classes/sun/io/CharToByteCp277.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM277; - -/** - * Tables and data to convert Unicode to Cp277 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp277 extends CharToByteSingleByte { - - private final static IBM277 nioCoder = new IBM277(); - - public String getCharacterEncoding() { - return "Cp277"; - } - - public CharToByteCp277() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp278.java --- a/jdk/src/share/classes/sun/io/CharToByteCp278.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM278; - -/** - * Tables and data to convert Unicode to Cp278 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp278 extends CharToByteSingleByte { - - private final static IBM278 nioCoder = new IBM278(); - - public String getCharacterEncoding() { - return "Cp278"; - } - - public CharToByteCp278() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp280.java --- a/jdk/src/share/classes/sun/io/CharToByteCp280.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM280; - -/** - * Tables and data to convert Unicode to Cp280 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp280 extends CharToByteSingleByte { - - private final static IBM280 nioCoder = new IBM280(); - - public String getCharacterEncoding() { - return "Cp280"; - } - - public CharToByteCp280() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp284.java --- a/jdk/src/share/classes/sun/io/CharToByteCp284.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM284; - -/** - * Tables and data to convert Unicode to Cp284 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp284 extends CharToByteSingleByte { - - private final static IBM284 nioCoder = new IBM284(); - - public String getCharacterEncoding() { - return "Cp284"; - } - - public CharToByteCp284() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp285.java --- a/jdk/src/share/classes/sun/io/CharToByteCp285.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM285; - -/** - * Tables and data to convert Unicode to Cp285 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp285 extends CharToByteSingleByte { - - private final static IBM285 nioCoder = new IBM285(); - - public String getCharacterEncoding() { - return "Cp285"; - } - - public CharToByteCp285() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp297.java --- a/jdk/src/share/classes/sun/io/CharToByteCp297.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM297; - -/** - * Tables and data to convert Unicode to Cp297 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp297 extends CharToByteSingleByte { - - private final static IBM297 nioCoder = new IBM297(); - - public String getCharacterEncoding() { - return "Cp297"; - } - - public CharToByteCp297() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp33722.java --- a/jdk/src/share/classes/sun/io/CharToByteCp33722.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM33722; - -/** -* Tables and data to convert Unicode to Cp33722 -* -* @author Malcolm Ayres, assisted by UniMap program -*/ -public class CharToByteCp33722 - extends CharToByteEUC - -{ - private final static IBM33722 nioCoder = new IBM33722(); - - // Return the character set id - public String getCharacterEncoding() - { - return "Cp33722"; - } - - public int getMaxBytesPerChar() { - return 3; - } - - public CharToByteCp33722() - { - super(); - super.mask1 = 0xFFE0; - super.mask2 = 0x001F; - super.shift = 5; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - super.index2a = nioCoder.getEncoderIndex2a(); - super.index2b = nioCoder.getEncoderIndex2b(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp420.java --- a/jdk/src/share/classes/sun/io/CharToByteCp420.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM420; - -/** - * Tables and data to convert Unicode to Cp420 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp420 extends CharToByteSingleByte { - - private final static IBM420 nioCoder = new IBM420(); - - public String getCharacterEncoding() { - return "Cp420"; - } - - public CharToByteCp420() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp424.java --- a/jdk/src/share/classes/sun/io/CharToByteCp424.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM424; - -/** - * Tables and data to convert Unicode to Cp424 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp424 extends CharToByteSingleByte { - - private final static IBM424 nioCoder = new IBM424(); - - public String getCharacterEncoding() { - return "Cp424"; - } - - public CharToByteCp424() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp437.java --- a/jdk/src/share/classes/sun/io/CharToByteCp437.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM437; - -/** - * Tables and data to convert Unicode to Cp437 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp437 extends CharToByteSingleByte { - - private final static IBM437 nioCoder = new IBM437(); - - public String getCharacterEncoding() { - return "Cp437"; - } - - public CharToByteCp437() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp500.java --- a/jdk/src/share/classes/sun/io/CharToByteCp500.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM500; - -/** - * Tables and data to convert Unicode to Cp500 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp500 extends CharToByteSingleByte { - - private final static IBM500 nioCoder = new IBM500(); - - public String getCharacterEncoding() { - return "Cp500"; - } - - public CharToByteCp500() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp737.java --- a/jdk/src/share/classes/sun/io/CharToByteCp737.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM737; - -/** - * Tables and data to convert Unicode to Cp737 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp737 extends CharToByteSingleByte { - - private final static IBM737 nioCoder = new IBM737(); - - public String getCharacterEncoding() { - return "Cp737"; - } - - public CharToByteCp737() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp775.java --- a/jdk/src/share/classes/sun/io/CharToByteCp775.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM775; - -/** - * Tables and data to convert Unicode to Cp775 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp775 extends CharToByteSingleByte { - - private final static IBM775 nioCoder = new IBM775(); - - public String getCharacterEncoding() { - return "Cp775"; - } - - public CharToByteCp775() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp833.java --- a/jdk/src/share/classes/sun/io/CharToByteCp833.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* - * 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(); - } -} - diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp834.java --- a/jdk/src/share/classes/sun/io/CharToByteCp834.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2006, 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.*; - -//EBIDIC DBCSONLY Korean - -public class CharToByteCp834 extends CharToByteDBCS_ASCII { - - public CharToByteCp834() { - super((DoubleByte.Encoder)new IBM834().newEncoder()); - subBytes = new byte[] {(byte)0xfe, (byte)0xfe}; - } - - public int getMaxBytesPerChar() { - return 2; - } - - public String getCharacterEncoding() { - return "Cp834"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp838.java --- a/jdk/src/share/classes/sun/io/CharToByteCp838.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM838; - -/** - * Tables and data to convert Unicode to Cp838 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp838 extends CharToByteSingleByte { - - private final static IBM838 nioCoder = new IBM838(); - - public String getCharacterEncoding() { - return "Cp838"; - } - - public CharToByteCp838() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp850.java --- a/jdk/src/share/classes/sun/io/CharToByteCp850.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM850; - -/** - * Tables and data to convert Unicode to Cp850 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp850 extends CharToByteSingleByte { - - private final static IBM850 nioCoder = new IBM850(); - - public String getCharacterEncoding() { - return "Cp850"; - } - - public CharToByteCp850() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp852.java --- a/jdk/src/share/classes/sun/io/CharToByteCp852.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM852; - -/** - * Tables and data to convert Unicode to Cp852 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp852 extends CharToByteSingleByte { - - private final static IBM852 nioCoder = new IBM852(); - - public String getCharacterEncoding() { - return "Cp852"; - } - - public CharToByteCp852() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp855.java --- a/jdk/src/share/classes/sun/io/CharToByteCp855.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM855; - -/** - * Tables and data to convert Unicode to Cp855 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp855 extends CharToByteSingleByte { - - private final static IBM855 nioCoder = new IBM855(); - - public String getCharacterEncoding() { - return "Cp855"; - } - - public CharToByteCp855() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp856.java --- a/jdk/src/share/classes/sun/io/CharToByteCp856.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM856; - -/** - * Tables and data to convert Unicode to Cp856 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp856 extends CharToByteSingleByte { - - private final static IBM856 nioCoder = new IBM856(); - - public String getCharacterEncoding() { - return "Cp856"; - } - - public CharToByteCp856() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp857.java --- a/jdk/src/share/classes/sun/io/CharToByteCp857.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM857; - -/** - * Tables and data to convert Unicode to Cp857 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp857 extends CharToByteSingleByte { - - private final static IBM857 nioCoder = new IBM857(); - - public String getCharacterEncoding() { - return "Cp857"; - } - - public CharToByteCp857() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp858.java --- a/jdk/src/share/classes/sun/io/CharToByteCp858.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2005, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.IBM858; - -/** - * Tables and data to convert Unicode to Cp858 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp858 extends CharToByteSingleByte { - - public String getCharacterEncoding() { - return "Cp858"; - } - - private final static IBM858 nioCoder = new IBM858(); - - public CharToByteCp858() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp860.java --- a/jdk/src/share/classes/sun/io/CharToByteCp860.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM860; - -/** - * Tables and data to convert Unicode to Cp860 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp860 extends CharToByteSingleByte { - - private final static IBM860 nioCoder = new IBM860(); - - public String getCharacterEncoding() { - return "Cp860"; - } - - public CharToByteCp860() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp861.java --- a/jdk/src/share/classes/sun/io/CharToByteCp861.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM861; - -/** - * Tables and data to convert Unicode to Cp861 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp861 extends CharToByteSingleByte { - - private final static IBM861 nioCoder = new IBM861(); - - public String getCharacterEncoding() { - return "Cp861"; - } - - public CharToByteCp861() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp862.java --- a/jdk/src/share/classes/sun/io/CharToByteCp862.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM862; - -/** - * Tables and data to convert Unicode to Cp862 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp862 extends CharToByteSingleByte { - - private final static IBM862 nioCoder = new IBM862(); - - public String getCharacterEncoding() { - return "Cp862"; - } - - public CharToByteCp862() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp863.java --- a/jdk/src/share/classes/sun/io/CharToByteCp863.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM863; - -/** - * Tables and data to convert Unicode to Cp863 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp863 extends CharToByteSingleByte { - - private final static IBM863 nioCoder = new IBM863(); - - public String getCharacterEncoding() { - return "Cp863"; - } - - public CharToByteCp863() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp864.java --- a/jdk/src/share/classes/sun/io/CharToByteCp864.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM864; - -/** - * Tables and data to convert Unicode to Cp864 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp864 extends CharToByteSingleByte { - - private final static IBM864 nioCoder = new IBM864(); - - public String getCharacterEncoding() { - return "Cp864"; - } - - public CharToByteCp864() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp865.java --- a/jdk/src/share/classes/sun/io/CharToByteCp865.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM865; - -/** - * Tables and data to convert Unicode to Cp865 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp865 extends CharToByteSingleByte { - - private final static IBM865 nioCoder = new IBM865(); - - public String getCharacterEncoding() { - return "Cp865"; - } - - public CharToByteCp865() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp866.java --- a/jdk/src/share/classes/sun/io/CharToByteCp866.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM866; - -/** - * Tables and data to convert Unicode to Cp866 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp866 extends CharToByteSingleByte { - - private final static IBM866 nioCoder = new IBM866(); - - public String getCharacterEncoding() { - return "Cp866"; - } - - public CharToByteCp866() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp868.java --- a/jdk/src/share/classes/sun/io/CharToByteCp868.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM868; - -/** - * Tables and data to convert Unicode to Cp868 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp868 extends CharToByteSingleByte { - - private final static IBM868 nioCoder = new IBM868(); - - public String getCharacterEncoding() { - return "Cp868"; - } - - public CharToByteCp868() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp869.java --- a/jdk/src/share/classes/sun/io/CharToByteCp869.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM869; - -/** - * Tables and data to convert Unicode to Cp869 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp869 extends CharToByteSingleByte { - - private final static IBM869 nioCoder = new IBM869(); - - public String getCharacterEncoding() { - return "Cp869"; - } - - public CharToByteCp869() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp870.java --- a/jdk/src/share/classes/sun/io/CharToByteCp870.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM870; - -/** - * Tables and data to convert Unicode to Cp870 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp870 extends CharToByteSingleByte { - - private final static IBM870 nioCoder = new IBM870(); - - public String getCharacterEncoding() { - return "Cp870"; - } - - public CharToByteCp870() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp871.java --- a/jdk/src/share/classes/sun/io/CharToByteCp871.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM871; - -/** - * Tables and data to convert Unicode to Cp871 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp871 extends CharToByteSingleByte { - - private final static IBM871 nioCoder = new IBM871(); - - public String getCharacterEncoding() { - return "Cp871"; - } - - public CharToByteCp871() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp874.java --- a/jdk/src/share/classes/sun/io/CharToByteCp874.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2005, 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.IBM874; - -/** - * Tables and data to convert Unicode to Cp874 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp874 extends CharToByteSingleByte { - - private final static IBM874 nioCoder = new IBM874(); - - public String getCharacterEncoding() { - return "Cp874"; - } - - public CharToByteCp874() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp875.java --- a/jdk/src/share/classes/sun/io/CharToByteCp875.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM875; - -/** - * Tables and data to convert Unicode to Cp875 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp875 extends CharToByteSingleByte { - - private final static IBM875 nioCoder = new IBM875(); - - public String getCharacterEncoding() { - return "Cp875"; - } - - public CharToByteCp875() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp918.java --- a/jdk/src/share/classes/sun/io/CharToByteCp918.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM918; - -/** - * Tables and data to convert Unicode to Cp918 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp918 extends CharToByteSingleByte { - - private final static IBM918 nioCoder = new IBM918(); - - public String getCharacterEncoding() { - return "Cp918"; - } - - public CharToByteCp918() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp921.java --- a/jdk/src/share/classes/sun/io/CharToByteCp921.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM921; - -/** - * Tables and data to convert Unicode to Cp921 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp921 extends CharToByteSingleByte { - - private final static IBM921 nioCoder = new IBM921(); - - public String getCharacterEncoding() { - return "Cp921"; - } - - public CharToByteCp921() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp922.java --- a/jdk/src/share/classes/sun/io/CharToByteCp922.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.IBM922; - -/** - * Tables and data to convert Unicode to Cp922 - * - * @author ConverterGenerator tool - */ - -public class CharToByteCp922 extends CharToByteSingleByte { - - private final static IBM922 nioCoder = new IBM922(); - - public String getCharacterEncoding() { - return "Cp922"; - } - - public CharToByteCp922() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp930.java --- a/jdk/src/share/classes/sun/io/CharToByteCp930.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp930 extends CharToByteDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp930"; - } - - public CharToByteCp930() { - super((DoubleByte.Encoder)new IBM930().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp933.java --- a/jdk/src/share/classes/sun/io/CharToByteCp933.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp933 extends CharToByteDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp933"; - } - - public CharToByteCp933() { - super((DoubleByte.Encoder)new IBM933().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp935.java --- a/jdk/src/share/classes/sun/io/CharToByteCp935.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp935 extends CharToByteDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp935"; - } - - public CharToByteCp935() { - super((DoubleByte.Encoder)new IBM935().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp937.java --- a/jdk/src/share/classes/sun/io/CharToByteCp937.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp937 extends CharToByteDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp937"; - } - - public CharToByteCp937() { - super((DoubleByte.Encoder)new IBM937().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp939.java --- a/jdk/src/share/classes/sun/io/CharToByteCp939.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp939 extends CharToByteDBCS_EBCDIC { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp939"; - } - - public CharToByteCp939() { - super((DoubleByte.Encoder)new IBM939().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp942.java --- a/jdk/src/share/classes/sun/io/CharToByteCp942.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp942 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp942"; - } - - public CharToByteCp942() { - super((DoubleByte.Encoder)new IBM942().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp942C.java --- a/jdk/src/share/classes/sun/io/CharToByteCp942C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class CharToByteCp942C extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp942C"; - } - - public CharToByteCp942C() { - super((DoubleByte.Encoder)new IBM942C().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp943.java --- a/jdk/src/share/classes/sun/io/CharToByteCp943.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp943 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp943"; - } - - public CharToByteCp943() { - super((DoubleByte.Encoder)new IBM943().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp943C.java --- a/jdk/src/share/classes/sun/io/CharToByteCp943C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class CharToByteCp943C extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp943C"; - } - - public CharToByteCp943C() { - super((DoubleByte.Encoder)new IBM943C().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp948.java --- a/jdk/src/share/classes/sun/io/CharToByteCp948.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp948 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp948"; - } - - public CharToByteCp948() { - super((DoubleByte.Encoder)new IBM948().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp949.java --- a/jdk/src/share/classes/sun/io/CharToByteCp949.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp949 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp949"; - } - - public CharToByteCp949() { - super((DoubleByte.Encoder)new IBM949().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp949C.java --- a/jdk/src/share/classes/sun/io/CharToByteCp949C.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 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.*; - -public class CharToByteCp949C extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp949C"; - } - - public CharToByteCp949C() { - super((DoubleByte.Encoder)new IBM949C().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp950.java --- a/jdk/src/share/classes/sun/io/CharToByteCp950.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteCp950 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp950"; - } - - public CharToByteCp950() { - super((DoubleByte.Encoder)new IBM950().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp964.java --- a/jdk/src/share/classes/sun/io/CharToByteCp964.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.IBM964; - -/** -* Tables and data to convert Unicode to Cp964 -* -* @author Malcolm Ayres, assisted by UniMap program -*/ -public class CharToByteCp964 - extends CharToByteEUC - -{ - private final static IBM964 nioCoder = new IBM964(); - - // Return the character set id - public String getCharacterEncoding() - { - return "Cp964"; - } - - public int getMaxBytesPerChar() { - return 4; - } - - public CharToByteCp964() - { - super(); - super.mask1 = 0xFFC0; - super.mask2 = 0x003F; - super.shift = 6; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - super.index2a = nioCoder.getEncoderIndex2a(); - super.index2b = nioCoder.getEncoderIndex2b(); - super.index2c = nioCoder.getEncoderIndex2c(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteCp970.java --- a/jdk/src/share/classes/sun/io/CharToByteCp970.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -// EUC_Simple is the same as DBCS_ASCII -public class CharToByteCp970 extends CharToByteDBCS_ASCII { - - // Return the character set id - public String getCharacterEncoding() { - return "Cp970"; - } - - public CharToByteCp970() { - super((DoubleByte.Encoder)new IBM970().newEncoder()); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteDBCS_ASCII.java --- a/jdk/src/share/classes/sun/io/CharToByteDBCS_ASCII.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* - * Copyright (c) 1997, 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.DoubleByte; -import static sun.nio.cs.CharsetMapping.*; - -public abstract class CharToByteDBCS_ASCII extends CharToByteConverter -{ - - private char highHalfZoneCode; - private byte[] outputByte = new byte[2]; - - private DoubleByte.Encoder enc; - - public CharToByteDBCS_ASCII(DoubleByte.Encoder enc) { - super(); - this.enc = enc; - } - - int encodeChar(char c) { - return enc.encodeChar(c); - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(byte [] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - - if (highHalfZoneCode != 0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - char inputChar; - int inputSize; - - byteOff = outOff; - charOff = inOff; - - while(charOff < inEnd) { - int index; - int theBytes; - int spaceNeeded; - - if (highHalfZoneCode == 0) { - inputChar = input[charOff]; - inputSize = 1; - } else { - inputChar = highHalfZoneCode; - inputSize = 0; - highHalfZoneCode = 0; - } - - // Is this a high surrogate? - if (Character.isHighSurrogate(inputChar)) { - // Is this the last character of the input? - if (charOff + inputSize >= inEnd) { - highHalfZoneCode = inputChar; - charOff += inputSize; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + inputSize]; - if (Character.isLowSurrogate(inputChar)) { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - if (subBytes.length == 1) { - outputByte[0] = 0x00; - outputByte[1] = subBytes[0]; - } - else { - outputByte[0] = subBytes[0]; - outputByte[1] = subBytes[1]; - } - inputSize++; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (Character.isLowSurrogate(inputChar)) { - badInputLength = 1; - throw new MalformedInputException(); - } else { - - // We have a valid character, get the bytes for it - theBytes = encodeChar(inputChar); - if (theBytes == UNMAPPABLE_ENCODING) { - // if there was no mapping - look for substitution characters - if (subMode) { - if (subBytes.length == 1) { - outputByte[0] = 0x00; - outputByte[1] = subBytes[0]; - } else { - outputByte[0] = subBytes[0]; - outputByte[1] = subBytes[1]; - } - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } else { - outputByte[0] = (byte)(theBytes >>8); - outputByte[1] = (byte)theBytes; - } - } - if (outputByte[0] == 0x00) - spaceNeeded = 1; - else - spaceNeeded = 2; - - if (byteOff + spaceNeeded > outEnd) - throw new ConversionBufferFullException(); - - if (spaceNeeded == 1) - output[byteOff++] = outputByte[1]; - else { - output[byteOff++] = outputByte[0]; - output[byteOff++] = outputByte[1]; - } - - charOff += inputSize; - } - return byteOff - outOff; - } - - /** - * Resets converter to its initial state. - */ - public void reset() { - charOff = byteOff = 0; - highHalfZoneCode = 0; - } - - /** - * Returns the maximum number of bytes needed to convert a char. - */ - public int getMaxBytesPerChar() { - return 2; - } - - /** - * Returns true if the given character can be converted to the - * target character encoding. - */ - public boolean canConvert(char c) { - return encodeChar(c) != UNMAPPABLE_ENCODING; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java --- a/jdk/src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/* - * Copyright (c) 1997, 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.DoubleByte; -import static sun.nio.cs.CharsetMapping.*; - -public abstract class CharToByteDBCS_EBCDIC extends CharToByteConverter -{ - private static final int SBCS = 0; - private static final int DBCS = 1; - - private static final byte SO = 0x0e; - private static final byte SI = 0x0f; - - private int currentState; - private char highHalfZoneCode; - private byte[] outputByte = new byte[2]; - - private DoubleByte.Encoder enc; - - public CharToByteDBCS_EBCDIC(DoubleByte.Encoder enc) { - super(); - highHalfZoneCode = 0; - currentState = SBCS; - this.enc = enc; - } - - int encodeChar(char c) { - return enc.encodeChar(c); - } - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(byte [] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - int bytesOut = 0; - - if (highHalfZoneCode != 0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - if (currentState == DBCS) { - if (outStart >= outEnd) - throw new ConversionBufferFullException(); - output[outStart] = SI; - bytesOut++; - } - - reset(); - return bytesOut; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - char inputChar; - int inputSize; - - byteOff = outOff; - charOff = inOff; - - while(charOff < inEnd) { - - int index; - int theBytes; - int spaceNeeded; - - if (highHalfZoneCode == 0) { - inputChar = input[charOff]; - inputSize = 1; - } else { - inputChar = highHalfZoneCode; - inputSize = 0; - highHalfZoneCode = 0; - } - - // Is this a high surrogate? - if (Character.isHighSurrogate(inputChar)) { - // Is this the last character of the input? - if (charOff + inputSize >= inEnd) { - highHalfZoneCode = inputChar; - charOff += inputSize; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + inputSize]; - if (Character.isLowSurrogate(inputChar)) { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - if (subBytes.length == 1) { - outputByte[0] = 0x00; - outputByte[1] = subBytes[0]; - } - else { - outputByte[0] = subBytes[0]; - outputByte[1] = subBytes[1]; - } - inputSize++; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (Character.isLowSurrogate(inputChar)) { - badInputLength = 1; - throw new MalformedInputException(); - } else { - - // We have a valid character, get the bytes for it - theBytes = encodeChar(inputChar); - if (theBytes == UNMAPPABLE_ENCODING) { - // if there was no mapping - look for substitution characters - if (subMode) { - if (subBytes.length == 1) { - outputByte[0] = 0x00; - outputByte[1] = subBytes[0]; - } else { - outputByte[0] = subBytes[0]; - outputByte[1] = subBytes[1]; - } - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } else { - outputByte[0] = (byte)((theBytes & 0x0000ff00)>>8); - outputByte[1] = (byte)(theBytes & 0x000000ff); - } - } - - //Set the output buffer into the correct state - - if (currentState == DBCS && outputByte[0] == 0x00) { - if (byteOff >= outEnd) - throw new ConversionBufferFullException(); - currentState = SBCS; - output[byteOff++] = SI; - } else - if (currentState == SBCS && outputByte[0] != 0x00) { - if (byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } - currentState = DBCS; - output[byteOff++] = SO; - } - - if (currentState == DBCS) - spaceNeeded = 2; - else - spaceNeeded = 1; - - if (byteOff + spaceNeeded > outEnd) { - throw new ConversionBufferFullException(); - } - - if (currentState == SBCS) - output[byteOff++] = outputByte[1]; - else { - output[byteOff++] = outputByte[0]; - output[byteOff++] = outputByte[1]; - } - - charOff += inputSize; - } - return byteOff - outOff; - } - - - - /** - * Resets converter to its initial state. - */ - public void reset() { - charOff = byteOff = 0; - highHalfZoneCode = 0; - currentState = SBCS; - } - - - /** - * Returns the maximum number of bytes needed to convert a char. - */ - public int getMaxBytesPerChar() { - return 4; //Fixed with bug 4199599 so tests would pass. - } - - - /** - * Sets the substitution bytes to use when the converter is in - * substitution mode. The given bytes should represent a valid - * character in the target character encoding. - */ - - public void setSubstitutionBytes( byte[] newSubBytes ) - throws IllegalArgumentException - { - if( newSubBytes.length > 2 || newSubBytes.length == 0) { - throw new IllegalArgumentException(); - } - - subBytes = new byte[ newSubBytes.length ]; - System.arraycopy( newSubBytes, 0, subBytes, 0, newSubBytes.length ); - - } - - /** - * Returns true if the given character can be converted to the - * target character encoding. - */ - public boolean canConvert(char c) { - return encodeChar(c) != UNMAPPABLE_ENCODING; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteDoubleByte.java --- a/jdk/src/share/classes/sun/io/CharToByteDoubleByte.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +0,0 @@ -/* - * Copyright (c) 1997, 2002, 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; - -/** - * @author Limin Shi - */ - -public abstract class CharToByteDoubleByte extends CharToByteConverter { - - /* - * 1st level index, provided by subclass - */ - protected short index1[]; - - /* - * 2nd level index, provided by subclass - */ - protected String index2[]; - - protected char highHalfZoneCode; - - public short[] getIndex1() { - return index1; - } - - public String[] getIndex2() { - return index2; - } - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - /** - * Converts characters to sequences of bytes. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input char array containing text in Unicode - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output byte array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any character - * that cannot be converted to the external character set. - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - int inputSize = 0; // Size of input - int outputSize = 0; // Size of output - byte[] tmpbuf = new byte[2]; - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - inputSize = 1; - outputByte = tmpbuf; - inputChar = input[charOff]; // Get the input character - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - outputSize = convSingleByte(inputChar, outputByte); - if (outputSize == 0) { // DoubleByte - int ncode = getNative(inputChar); - if (ncode != 0 ) { - outputByte[0] = (byte) ((ncode & 0xff00) >> 8); - outputByte[1] = (byte) (ncode & 0xff); - outputSize = 2; - } else { - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - // Return the length written to the output buffer - return byteOff - outOff; - } - - - /** - * the maximum number of bytes needed to hold a converted char - * @returns the maximum number of bytes needed for a converted char - */ - public int getMaxBytesPerChar() { - return 2; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - byteOff = charOff = 0; - highHalfZoneCode = 0; - } - - /** - * Return whether a character is mappable or not - * @return true if a character is mappable - */ - public boolean canConvert(char ch) { - byte[] outByte = new byte[2]; - - if ((ch == (char) 0) || (convSingleByte(ch, outByte) != 0)) - return true; - if (this.getNative(ch) != 0) - return true; - return false; - } - - - /* - * Can be changed by subclass - */ - protected int convSingleByte(char inputChar, byte[] outputByte) { - if (inputChar < 0x80) { - outputByte[0] = (byte)(inputChar & 0x7f); - return 1; - } - return 0; - } - - /* - * Can be changed by subclass - */ - protected int getNative(char ch) { - int offset = index1[((ch & 0xff00) >> 8 )] << 8; - return index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -public abstract class CharToByteEUC extends CharToByteConverter -{ - - private char highHalfZoneCode; - private byte[] outputByte; - - protected short index1[]; - protected String index2; - protected String index2a; - protected String index2b; - protected String index2c; - protected int mask1; - protected int mask2; - protected int shift; - - private byte[] workByte = new byte[4]; - - /** - * flush out any residual data and reset the buffer state - */ - public int flush(byte [] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - - if (highHalfZoneCode != 0) { - reset(); - badInputLength = 0; - throw new MalformedInputException(); - } - - reset(); - return 0; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - char inputChar; - int inputSize; - - byteOff = outOff; - charOff = inOff; - - while(charOff < inEnd) { - - outputByte = workByte; - - int index; - int theBytes; - int spaceNeeded; - boolean allZeroes = true; - int i; - - - if (highHalfZoneCode == 0) { - inputChar = input[charOff]; - inputSize = 1; - } else { - inputChar = highHalfZoneCode; - inputSize = 0; - highHalfZoneCode = 0; - } - - - // Is this a high surrogate? - if(inputChar >= '\ud800' && inputChar <= '\udbff') { - // Is this the last character of the input? - if (charOff + inputSize >= inEnd) { - highHalfZoneCode = inputChar; - charOff += inputSize; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + inputSize]; - if (inputChar >= '\udc00' && inputChar <= '\udfff') { - - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - inputSize++; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - - // Is this an unaccompanied low surrogate? - else - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - - String theChars; - char aChar; - - // We have a valid character, get the bytes for it - index = index1[((inputChar & mask1) >> shift)] + (inputChar & mask2); - - if (index < 7500) - theChars = index2; - else - if (index < 15000) { - index = index - 7500; - theChars = index2a; - } - else - if (index < 22500){ - index = index - 15000; - theChars = index2b; - } - else { - index = index - 22500; - theChars = index2c; - } - - aChar = theChars.charAt(2*index); - outputByte[0] = (byte)((aChar & 0xff00)>>8); - outputByte[1] = (byte)(aChar & 0x00ff); - aChar = theChars.charAt(2*index + 1); - outputByte[2] = (byte)((aChar & 0xff00)>>8); - outputByte[3] = (byte)(aChar & 0x00ff); - } - - // if there was no mapping - look for substitution characters - - for (i = 0; i < outputByte.length; i++) { - if (outputByte[i] != 0x00) { - allZeroes = false; - break; - } - } - - if (allZeroes && inputChar != '\u0000') - { - if (subMode) { - outputByte = subBytes; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - int oindex = 0; - for (spaceNeeded = outputByte.length; spaceNeeded > 1; spaceNeeded--){ - if (outputByte[oindex++] != 0x00 ) - break; - } - - if (byteOff + spaceNeeded > outEnd) - throw new ConversionBufferFullException(); - - - for (i = outputByte.length - spaceNeeded; i < outputByte.length; i++) { - output[byteOff++] = outputByte[i]; - } - - charOff += inputSize; - } - - return byteOff - outOff; - } - - /** - * Resets converter to its initial state. - */ - public void reset() { - charOff = byteOff = 0; - highHalfZoneCode = 0; - } - - /** - * Returns the maximum number of bytes needed to convert a char. - */ - public int getMaxBytesPerChar() { - return 2; - } - - - /** - * Returns true if the given character can be converted to the - * target character encoding. - */ - public boolean canConvert(char ch) { - int index; - String theChars; - - index = index1[((ch & mask1) >> shift)] + (ch & mask2); - - if (index < 7500) - theChars = index2; - else - if (index < 15000) { - index = index - 7500; - theChars = index2a; - } - else - if (index < 22500){ - index = index - 15000; - theChars = index2b; - } - else { - index = index - 22500; - theChars = index2c; - } - - if (theChars.charAt(2*index) != '\u0000' || - theChars.charAt(2*index + 1) != '\u0000') - return (true); - - // only return true if input char was unicode null - all others are - // undefined - return( ch == '\u0000'); - - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_CN.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_CN.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.*; - -public class CharToByteEUC_CN extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new EUC_CN().newEncoder(); - - public String getCharacterEncoding() { - return "EUC_CN"; - } - - public CharToByteEUC_CN() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_JP.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_JP.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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; - -/** - * @author Limin Shi - */ - -public class CharToByteEUC_JP extends CharToByteJIS0208 { - CharToByteJIS0201 cbJIS0201 = new CharToByteJIS0201(); - CharToByteJIS0212 cbJIS0212 = new CharToByteJIS0212(); - - public String getCharacterEncoding() { - return "EUC_JP"; - } - - protected int convSingleByte(char inputChar, byte[] outputByte) { - byte b; - - if (inputChar == 0) { - outputByte[0] = (byte)0; - return 1; - } - - if ((b = cbJIS0201.getNative(inputChar)) == 0) - return 0; - - if (b > 0 && b < 128) { - outputByte[0] = b; - return 1; - } - outputByte[0] = (byte)0x8E; - outputByte[1] = b; - return 2; - } - - protected int getNative(char ch) { - int offset = index1[((ch & 0xff00) >> 8 )] << 8; - int r = index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - if (r != 0) - return r + 0x8080; - r = cbJIS0212.getNative(ch); - if (r == 0) - return r; - return r + 0x8F8080; - } - - - /** - * Converts characters to sequences of bytes. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input char array containing text in Unicode - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output byte array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any character - * that cannot be converted to the external character set. - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - int inputSize = 0; // Size of input - int outputSize = 0; // Size of output - byte[] tmpbuf = new byte[4]; - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - inputSize = 1; - outputByte = tmpbuf; - inputChar = input[charOff]; // Get the input character - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - outputSize = convSingleByte(inputChar, outputByte); - if (outputSize == 0) { // DoubleByte - int ncode = getNative(inputChar); - if (ncode != 0 ) { - if ((ncode & 0xFF0000) == 0) { - outputByte[0] = (byte) ((ncode & 0xff00) >> 8); - outputByte[1] = (byte) (ncode & 0xff); - outputSize = 2; - } else { - outputByte[0] = (byte) 0x8F; - outputByte[1] = (byte) ((ncode & 0xff00) >> 8); - outputByte[2] = (byte) (ncode & 0xff); - outputSize = 3; - } - } else { - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - // Return the length written to the output buffer - return byteOff - outOff; - } - - - /** - * the maximum number of bytes needed to hold a converted char - * @returns the maximum number of bytes needed for a converted char - */ - public int getMaxBytesPerChar() { - return 3; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2000, 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; - -/** - * Class for converting characters to bytes for the EUC-JP encoding in - * linux. This converter supports the JIS0201 and the JIS0208 encoding and - * omits support for the JIS212 encoding. - * - * @author Naveen Sanjeeva - */ - -public class CharToByteEUC_JP_LINUX extends CharToByteJIS0208 { - CharToByteJIS0201 cbJIS0201 = new CharToByteJIS0201(); - - public String getCharacterEncoding() { - return "EUC_JP_LINUX"; - } - - protected int convSingleByte(char inputChar, byte[] outputByte) { - byte b; - - if (inputChar == 0) { - outputByte[0] = (byte)0; - return 1; - } - - if ((b = cbJIS0201.getNative(inputChar)) == 0) - return 0; - - if (b > 0 && b < 128) { - outputByte[0] = b; - return 1; - } - outputByte[0] = (byte)0x8E; - outputByte[1] = b; - return 2; - } - - protected int getNative(char ch) { - int offset = index1[((ch & 0xff00) >> 8 )] << 8; - int r = index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - if (r != 0) - return r + 0x8080; - return r; - } - - /** - * Converts characters to sequences of bytes. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input char array containing text in Unicode - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output byte array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any character - * that cannot be converted to the external character set. - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - int inputSize = 0; // Size of input - int outputSize = 0; // Size of output - byte[] tmpbuf = new byte[4]; - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - inputSize = 1; - outputByte = tmpbuf; - inputChar = input[charOff]; // Get the input character - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - outputSize = convSingleByte(inputChar, outputByte); - if (outputSize == 0) { // DoubleByte - int ncode = getNative(inputChar); - if (ncode != 0 && ((ncode & 0xFF0000) == 0)) { - outputByte[0] = (byte) ((ncode & 0xff00) >> 8); - outputByte[1] = (byte) (ncode & 0xff); - outputSize = 2; - } else { - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - // Return the length written to the output buffer - return byteOff - outOff; - } - - - /** - * the maximum number of bytes needed to hold a converted char - * @returns the maximum number of bytes needed for a converted char - */ - public int getMaxBytesPerChar() { - return 2; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Encoder; -import sun.nio.cs.ext.JIS_X_0212_Solaris_Encoder; - -/** - * @author Limin Shi - * @author Ian Little - * - * EUC_JP variant converter for Solaris with vendor defined chars - * added (4765370) - */ - -public class CharToByteEUC_JP_Solaris extends CharToByteEUC_JP { - CharToByteJIS0201 cbJIS0201 = new CharToByteJIS0201(); - CharToByteJIS0212_Solaris cbJIS0212 = new CharToByteJIS0212_Solaris(); - - short[] j0208Index1 = JIS_X_0208_Solaris_Encoder.getIndex1(); - String[] j0208Index2 = JIS_X_0208_Solaris_Encoder.getIndex2(); - - public String getCharacterEncoding() { - return "eucJP-open"; - } - - protected int convSingleByte(char inputChar, byte[] outputByte) { - byte b; - - if (inputChar == 0) { - outputByte[0] = (byte)0; - return 1; - } - - if ((b = cbJIS0201.getNative(inputChar)) == 0) - return 0; - - if (b > 0 && b < 128) { - outputByte[0] = b; - return 1; - } - outputByte[0] = (byte)0x8E; - outputByte[1] = b; - return 2; - } - - protected int getNative(char ch) { - int r = super.getNative(ch); - if (r != 0) { - return r; - } else { - int offset = j0208Index1[((ch & 0xff00) >> 8 )] << 8; - r = j0208Index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - if (r > 0x7500) - return 0x8f8080 + cbJIS0212.getNative(ch); - } - return (r == 0)? r : r + 0x8080; - } - - - /** - * Converts characters to sequences of bytes. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input char array containing text in Unicode - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output byte array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw UnsupportedCharacterException for any character - * that cannot be converted to the external character set. - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - int inputSize = 0; // Size of input - int outputSize = 0; // Size of output - byte[] tmpbuf = new byte[4]; - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - inputSize = 1; - outputByte = tmpbuf; - inputChar = input[charOff]; // Get the input character - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - outputSize = convSingleByte(inputChar, outputByte); - if (outputSize == 0) { // DoubleByte - int ncode = getNative(inputChar); - if (ncode != 0 ) { - if ((ncode & 0xFF0000) == 0) { - outputByte[0] = (byte) ((ncode & 0xff00) >> 8); - outputByte[1] = (byte) (ncode & 0xff); - outputSize = 2; - } else { - outputByte[0] = (byte) 0x8F; - outputByte[1] = (byte) ((ncode & 0xff00) >> 8); - outputByte[2] = (byte) (ncode & 0xff); - outputSize = 3; - } - } else { - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - // Return the length written to the output buffer - return byteOff - outOff; - } - - - /** - * the maximum number of bytes needed to hold a converted char - * @returns the maximum number of bytes needed for a converted char - */ - public int getMaxBytesPerChar() { - return 3; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_KR.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_KR.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.*; - -public class CharToByteEUC_KR extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new EUC_KR().newEncoder(); - - public String getCharacterEncoding() { - return "EUC_KR"; - } - - public CharToByteEUC_KR() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteEUC_TW.java --- a/jdk/src/share/classes/sun/io/CharToByteEUC_TW.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.EUC_TW; - -/* - * @author Limin Shi - */ - -public class CharToByteEUC_TW extends CharToByteConverter -{ - private final EUC_TW.Encoder enc = (EUC_TW.Encoder)(new EUC_TW().newEncoder()); - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - reset(); - return 0; - } - - public void reset() { - byteOff = charOff = 0; - } - - public boolean canConvert(char ch){ - return enc.canEncode(ch); - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int outputSize; - byte [] tmpbuf = new byte[4];; - byte [] outputByte; - byteOff = outOff; - - //Fixed 4122961 by bringing the charOff++ out to this - // loop where it belongs, changing the loop from - // while(){} to for(){}. - for (charOff = inOff; charOff < inEnd; charOff++) { - outputByte = tmpbuf; - if ( input[charOff] < 0x80) { // ASCII - outputSize = 1; - outputByte[0] = (byte)(input[charOff] & 0x7f); - } else { - outputSize = enc.toEUC(input[charOff], outputByte); - } - - if (outputSize == -1) { - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - if (outEnd - byteOff < outputSize) - throw new ConversionBufferFullException(); - - for (int i = 0; i < outputSize; i++) - output[byteOff++] = outputByte[i]; - } - - return byteOff - outOff; - - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() { - return 4; - } - - /** - * Return the character set ID - */ - public String getCharacterEncoding() { - return "EUC_TW"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteGB18030.java --- a/jdk/src/share/classes/sun/io/CharToByteGB18030.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,261 +0,0 @@ -/* - * Copyright (c) 2001, 2003, 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.GB18030; - -public class CharToByteGB18030 extends CharToByteConverter -{ - - private char highHalfZoneCode; - boolean flushed = true; - - private final static int GB18030_SINGLE_BYTE = 1; - private final static int GB18030_DOUBLE_BYTE = 2; - private final static int GB18030_FOUR_BYTE = 3; - private static short[] index1; - private static String[] index2; - private int currentState; - - public CharToByteGB18030() { - GB18030 nioCoder = new GB18030(); - currentState = GB18030_DOUBLE_BYTE; - subBytes = new byte[1]; - subBytes[0] = (byte)'?'; - index1 = nioCoder.getEncoderIndex1(); - index2 = nioCoder.getEncoderIndex2(); - } - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - reset(); - flushed = true; - return 0; - } - - public void reset() { - byteOff = charOff = 0; - currentState = GB18030_DOUBLE_BYTE; - } - - public boolean canConvert(char c) { - // converts all but unpaired surrogates - // and illegal chars, U+FFFE & U+FFFF - - if ((c >= 0xd800 && c <=0xdfff) || (c >= 0xfffe)) - return false; - else - return true; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int linearDiffValue = 0; - int hiByte = 0 , loByte = 0; // low and high order bytes - char inputChar; // Input character to be converted - charOff = inOff; - byteOff = outOff; - int inputSize; // Size of the input - int outputSize; // Size of the output - - flushed = false; - - if (highHalfZoneCode != 0) { - if (input[inOff] >= 0xDC00 && input[inOff] <= 0xDFFF) { - - // This is legal UTF16 sequence, so shunt in the high - // surrogate for conversion by convert() loop. - - char[] newBuf = new char[inEnd - inOff + 1]; - newBuf[0] = highHalfZoneCode; - System.arraycopy(input, inOff, newBuf, 1, inEnd - inOff); - charOff -= 1; - input = newBuf; - inOff = 0; - inEnd = newBuf.length; - highHalfZoneCode = 0; - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Main encode loop - - while (charOff < inEnd) { - inputChar = input[charOff++]; - - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 > inEnd) { - highHalfZoneCode = inputChar; - break; - } - - char previousChar = inputChar; - inputChar = input[charOff]; - - // Is there a low surrogate following? - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - inputSize = 2; - charOff++; - linearDiffValue = ( previousChar - 0xD800) * 0x400 + - ( inputChar - 0xDC00) + 0x2E248; - - currentState = GB18030_FOUR_BYTE; - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } - - // Not part of a surrogate - else if (inputChar >= 0x0000 && inputChar <= 0x007F) { - if (byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } - currentState = GB18030_SINGLE_BYTE; - output[byteOff++] = (byte) inputChar; - } - else if (inputChar <= 0xA4C6 || inputChar >= 0xE000) { - int outByteVal = getGB18030(index1, index2, inputChar); - - if (outByteVal == 0xFFFD ) { - if (subMode) { - if (byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } else { - output[byteOff++] = subBytes[0]; - continue; - } - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - hiByte = (outByteVal & 0xFF00) >> 8; - loByte = (outByteVal & 0xFF); - - linearDiffValue = (hiByte - 0x20) * 256 + loByte; - - if (inputChar >= 0xE000 && inputChar < 0xF900) - linearDiffValue += 0x82BD; - else if (inputChar >= 0xF900) - linearDiffValue += 0x93A9; - - if (hiByte > 0x80) - currentState = GB18030_DOUBLE_BYTE; - else - currentState = GB18030_FOUR_BYTE; - } - else if (inputChar >= 0xA4C7 && inputChar <= 0xD7FF) { - linearDiffValue = inputChar - 0x5543; - currentState = GB18030_FOUR_BYTE; - } - else { - badInputLength = 1; - throw new MalformedInputException(); - } - - if (currentState == GB18030_SINGLE_BYTE) - continue; - - if (currentState == GB18030_DOUBLE_BYTE) { - if (byteOff + 2 > outEnd) { - throw new ConversionBufferFullException(); - } - output[byteOff++] = (byte)hiByte; - output[byteOff++] = (byte)loByte; - } - else { // Four Byte encoding - if (byteOff + 4 > outEnd) { - throw new ConversionBufferFullException(); - } - - byte b1, b2, b3, b4; - - b4 = (byte)((linearDiffValue % 10) + 0x30); - linearDiffValue /= 10; - b3 = (byte)((linearDiffValue % 126) + 0x81); - linearDiffValue /= 126; - b2 = (byte)((linearDiffValue % 10) + 0x30); - b1 = (byte)((linearDiffValue / 10) + 0x81); - output[byteOff++] = b1; - output[byteOff++] = b2; - output[byteOff++] = b3; - output[byteOff++] = b4; - } - } - // Return number of bytes written to the output buffer. - return byteOff - outOff; - } - - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() { - return 4; - } - - - /** - * Return the character set ID - */ - public String getCharacterEncoding() { - return "GB18030"; - } - - private int getGB18030(short[] outerIndex, String[] innerIndex, char ch) { - int offset = outerIndex[((ch & 0xff00) >> 8 )] << 8; - - return innerIndex[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteGBK.java --- a/jdk/src/share/classes/sun/io/CharToByteGBK.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteGBK extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new GBK().newEncoder(); - - public String getCharacterEncoding() { - return "GBK"; - } - - public CharToByteGBK() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISCII91.java --- a/jdk/src/share/classes/sun/io/CharToByteISCII91.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* - * Copyright (c) 1999, 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.ISCII91; - -/* - * Copyright (c) 1998 International Business Machines. - * All Rights Reserved. - * - * Author : Sunanda Bera, C. Thirumalesh - * Last Modified : 11,December,1998 - * - * Purpose : Defines class CharToByteISCII91. - * - * - * Revision History - * ======== ======= - * - * Date By Description - * ---- -- ----------- - * March 29, 1999 John Raley Removed MalformedInputException; modified substitution logic - * - */ - -/** - * Converter class. Converts between ISCII91 encoding and Unicode encoding. - * ISCII91 is the character encoding as defined in Indian Standard document - * IS 13194:1991 ( Indian Script Code for Information Interchange ). - * - * @see sun.io.CharToByteConverter - */ - -/* - * {jbr} I am not sure this class adheres to code converter conventions. - * Need to investigate. - * Might should recode as a subclass of CharToByteSingleByte. - */ - -public class CharToByteISCII91 extends CharToByteConverter { - - private static final byte NO_CHAR = (byte)255; - - //private final static ISCII91 nioCoder = new ISCII91(); - private final static byte[] directMapTable = ISCII91.getEncoderMappingTable(); - - private static final char NUKTA_CHAR = '\u093c'; - private static final char HALANT_CHAR = '\u094d'; - - -/** - * @return true for Devanagari and ASCII range and for the special characters - * Zero Width Joiner and Zero Width Non-Joiner - * @see sun.io.CharToByteConverter#canConvert - * - */ - public boolean canConvert(char ch) { - //check for Devanagari range,ZWJ,ZWNJ and ASCII range. - return ((ch >= 0x0900 && ch <= 0x097f) || (ch == 0x200d || ch == 0x200c) - || (ch >= 0x0000 && ch <= 0x007f) ); - } //canConvert() -/** - * Converts both Devanagari and ASCII range of characters. - * @see sun.io.CharToByteConverter#convert - */ - public int convert(char[] input, int inStart, int inEnd, byte[] output, int outStart, int outEnd) throws MalformedInputException, UnknownCharacterException, ConversionBufferFullException { - - charOff = inStart; - byteOff = outStart; - - for (;charOff < inEnd; charOff++) { - - char inputChar = input[charOff]; - int index = Integer.MIN_VALUE; - boolean isSurrogatePair = false; - - //check if input is in ASCII RANGE - if (inputChar >= 0x0000 && inputChar <= 0x007f) { - if (byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } - output[byteOff++] = (byte) inputChar; - continue; - } - - // if inputChar == ZWJ replace it with halant - // if inputChar == ZWNJ replace it with Nukta - if (inputChar == 0x200c) { - inputChar = HALANT_CHAR; - } - else if (inputChar == 0x200d) { - inputChar = NUKTA_CHAR; - } - - if (inputChar >= 0x0900 && inputChar <= 0x097f) { - index = ((int)(inputChar) - 0x0900)*2; - } - - // If input char is a high surrogate, ensure that the following - // char is a low surrogate. If not, throw a MalformedInputException. - // Leave index untouched so substitution or an UnknownCharacterException - // will result. - else if (inputChar >= 0xd800 && inputChar <= 0xdbff) { - if (charOff < inEnd-1) { - char nextChar = input[charOff]; - if (nextChar >= 0xdc00 && nextChar <= 0xdfff) { - charOff++; - isSurrogatePair = true; - } - } - if (!isSurrogatePair) { - badInputLength = 1; - throw new MalformedInputException(); - } - } - else if (inputChar >= 0xdc00 && inputChar <= 0xdfff) { - badInputLength = 1; - throw new MalformedInputException(); - } - - if (index == Integer.MIN_VALUE || directMapTable[index] == NO_CHAR) { - if (subMode) { - if (byteOff + subBytes.length >= outEnd) { - throw new ConversionBufferFullException(); - } - System.arraycopy(subBytes, 0, output, byteOff, subBytes.length); - byteOff += subBytes.length; - } else { - badInputLength = isSurrogatePair? 2 : 1; - throw new UnknownCharacterException(); - } - } - else { - if(byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } - output[byteOff++] = directMapTable[index++]; - if(directMapTable[index] != NO_CHAR) { - if(byteOff >= outEnd) { - throw new ConversionBufferFullException(); - } - output[byteOff++] = directMapTable[index]; - } - } - - } //end for - - return byteOff - outStart; - } //end of routine convert. - -/** -* @see sun.io.CharToByteConverter#flush -*/ - public int flush( byte[] output, int outStart, int outEnd ) - throws MalformedInputException, ConversionBufferFullException { - byteOff = charOff = 0; - return 0; - }//flush() -/** - * @return The character encoding as a String. - */ - public String getCharacterEncoding() { - return "ISCII91"; - }//getCharacterEncoding -/** - * @see sun.io.CharToByteConverter#getMaxBytesPerChar - */ - public int getMaxBytesPerChar() { - return 2; - }//getMaxBytesPerChar() -/** - * @see sun.io.CharToByteConverter#reset - */ - public void reset() { - byteOff = charOff = 0; - } -} //end of class definition diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO2022.java --- a/jdk/src/share/classes/sun/io/CharToByteISO2022.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ -/* - * Copyright (c) 1997, 2000, 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; - -/** -* @author Tom Zhou -*/ - -public abstract class CharToByteISO2022 extends CharToByteConverter -{ - private final byte ISO_ESC = 0x1b; - private final byte ISO_SI = 0x0f; - private final byte ISO_SO = 0x0e; - private final byte ISO_SS2_7 = 0x4e; - private final byte ISO_SS3_7 = 0x4f; - private final byte SS2 = (byte)0x8e; - private final byte P2 = (byte)0xA2; - private final byte P3 = (byte)0xA3; - private final byte MSB = (byte)0x80; - - protected final byte maximumDesignatorLength = 4; - - protected String SODesignator, - SS2Designator = null, - SS3Designator = null; - - protected CharToByteConverter codeConverter; - - private boolean shiftout = false; - private boolean SODesDefined = false; - private boolean SS2DesDefined = false; - private boolean SS3DesDefined = false; - - private boolean newshiftout = false; - private boolean newSODesDefined = false; - private boolean newSS2DesDefined = false; - private boolean newSS3DesDefined = false; - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - reset(); - return 0; - } - - public void reset() { - shiftout = false; - SODesDefined = false; - SS2DesDefined = false; - SS3DesDefined = false; - byteOff = charOff = 0; - } - - public boolean canConvert(char ch) - { - if (ch<0x80) - return true; - return codeConverter.canConvert(ch); - } - - private int unicodeToNative(char unicode, byte ebyte[]) - { - int index = 0; - byte tmpByte[]; - byte convByte[] = new byte[codeConverter.getMaxBytesPerChar()]; - char convChar[] = {unicode}; - int converted; - - try{ - converted = codeConverter.convert(convChar, 0, 1, convByte, 0, - codeConverter.getMaxBytesPerChar()); - } catch(Exception e) { - return -1; - } - - if (converted == 2) { - if (!SODesDefined) { - newSODesDefined = true; - ebyte[0] = ISO_ESC; - tmpByte = SODesignator.getBytes(); - System.arraycopy(tmpByte,0,ebyte,1,tmpByte.length); - index = tmpByte.length+1; - } - if (!shiftout) { - newshiftout = true; - ebyte[index++] = ISO_SO; - } - ebyte[index++] = (byte)(convByte[0]&0x7f); - ebyte[index++] = (byte)(convByte[1]&0x7f); - } else { - if((convByte[0] == SS2)&&(convByte[1] == P2)) { - if (!SS2DesDefined) { - newSS2DesDefined = true; - ebyte[0] = ISO_ESC; - tmpByte = SS2Designator.getBytes(); - System.arraycopy(tmpByte,0,ebyte,1,tmpByte.length); - index = tmpByte.length+1; - } - ebyte[index++] = ISO_ESC; - ebyte[index++] = ISO_SS2_7; - ebyte[index++] = (byte)(convByte[2]&0x7f); - ebyte[index++] = (byte)(convByte[3]&0x7f); - } - if((convByte[0] == SS2)&&(convByte[1] == 0xA3)) - { - if(!SS3DesDefined){ - newSS3DesDefined = true; - ebyte[0] = ISO_ESC; - tmpByte = SS3Designator.getBytes(); - System.arraycopy(tmpByte,0,ebyte,1,tmpByte.length); - index = tmpByte.length+1; - } - ebyte[index++] = ISO_ESC; - ebyte[index++] = ISO_SS3_7; - ebyte[index++] = (byte)(convByte[2]&0x7f); - ebyte[index++] = (byte)(convByte[3]&0x7f); - } - } - return index; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws UnknownCharacterException, MalformedInputException, - ConversionBufferFullException - { - int outputSize; - byte [] tmpbuf = new byte[this.getMaxBytesPerChar()]; - byte [] outputByte; - - byteOff = outOff; - - newshiftout = shiftout; - newSODesDefined = SODesDefined; - newSS2DesDefined = SS2DesDefined; - newSS3DesDefined = SS3DesDefined; - - //Fixed 4122961 by bringing the charOff++ out to this - // loop where it belongs, changing the loop from - // while(){} to for(){}. - for (charOff = inOff; charOff < inEnd; charOff++) { - outputByte = tmpbuf; - if (input[charOff] < 0x80) { // ASCII - if (shiftout){ - newshiftout = false; - outputSize = 2; - outputByte[0] = ISO_SI; - outputByte[1] = (byte)(input[charOff] & 0x7f); - } else { - outputSize = 1; - outputByte[0] = (byte)(input[charOff] & 0x7f); - } - if(input[charOff] == '\n'){ - newSODesDefined = false; - newSS2DesDefined = false; - newSS3DesDefined = false; - } - } else { - outputSize = unicodeToNative(input[charOff], outputByte); - } - - if (outputSize == -1) { - if (subMode) { - if(!newSODesDefined){ - newSODesDefined = !newSODesDefined; - outputByte[0] = ISO_SO; - outputByte[1] = (byte)'?'; - outputSize = 2; - } else { - outputByte = subBytes; - outputSize = subBytes.length; - } - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - - if (outEnd - byteOff < outputSize) - throw new ConversionBufferFullException(); - - for (int i = 0; i < outputSize; i++) - output[byteOff++] = outputByte[i]; - - // Bug 4266772. Update statuses only when output buffer has been - // updated. When ConversionBufferFullException() has been throwed - // we want to keep old statuses for next call. - shiftout = newshiftout; - SODesDefined = newSODesDefined; - SS2DesDefined = newSS2DesDefined; - SS3DesDefined = newSS3DesDefined; - } - return byteOff - outOff; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO2022CN_CNS.java --- a/jdk/src/share/classes/sun/io/CharToByteISO2022CN_CNS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -/** -* @author Tom Zhou -*/ - -public class CharToByteISO2022CN_CNS extends CharToByteISO2022 -{ - public CharToByteISO2022CN_CNS() - { - SODesignator = "$)G"; - SS2Designator = "$*H"; - SS3Designator = "$+I"; - try { - codeConverter = CharToByteConverter.getConverter("CNS11643"); - } catch (Exception e) {}; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() - { - return maximumDesignatorLength+4; - } - - /** - * Return the character set ID - */ - public String getCharacterEncoding() - { - return "ISO2022CN_CNS"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO2022CN_GB.java --- a/jdk/src/share/classes/sun/io/CharToByteISO2022CN_GB.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* - * Copyright (c) 1997, 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; - -/** -* @author Tom Zhou -*/ - -public class CharToByteISO2022CN_GB extends CharToByteISO2022 -{ - public CharToByteISO2022CN_GB() - { - SODesignator = "$)A"; - try { - codeConverter = CharToByteConverter.getConverter("GB2312"); - } catch (Exception e) {}; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() - { - return maximumDesignatorLength+4; - } - - /** - * Return the character set ID - */ - public String getCharacterEncoding() - { - return "ISO2022CN_GB"; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO2022JP.java --- a/jdk/src/share/classes/sun/io/CharToByteISO2022JP.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,319 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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 java.io.*; - -public class CharToByteISO2022JP extends CharToByteJIS0208 { - - private static final int ASCII = 0; // ESC ( B - private static final int JISX0201_1976 = 1; // ESC ( J - private static final int JISX0208_1978 = 2; // ESC $ @ - private static final int JISX0208_1983 = 3; // ESC $ B - private static final int JISX0201_1976_KANA = 4; // ESC ( I - - private char highHalfZoneCode; - private boolean flushed = true; - - // JIS is state full encoding, so currentMode keep the - // current codeset - private int currentMode = ASCII; - - /** - * Bytes for substitute for unmappable input. - */ - // XXX: Assumes subBytes are ASCII string. Need to change Escape sequence - // for other character sets. - protected byte[] subBytesEscape = { (byte)0x1b, (byte)0x28, (byte)0x42 }; // ESC ( B - protected int subBytesMode = ASCII; - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException, ConversionBufferFullException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - - if (!flushed && (currentMode != ASCII)) { - if (outEnd - outStart < 3) { - throw new ConversionBufferFullException(); - } - output[outStart] = (byte)0x1b; - output[outStart + 1] = (byte)0x28; - output[outStart + 2] = (byte)0x42; - byteOff += 3; - byteOff = charOff = 0; - flushed = true; - currentMode = ASCII; - return 3; - } - return 0; - } - - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, UnknownCharacterException, - ConversionBufferFullException - - { - char inputChar; // Input character to be converted - int inputSize; // Size of the input - int outputSize; // Size of the output - - // Buffer for output bytes - byte[] tmpArray = new byte[6]; - byte[] outputByte; - - flushed = false; - - // Make copies of input and output indexes - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we run out of input - while(charOff < inEnd) { - outputByte = tmpArray; - int newMode = currentMode; // Trace character mode changing - - // Get the input character - inputChar = input[charOff]; - inputSize = 1; - outputSize = 1; - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character of the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't do - // surrogates. Is substitution enabled? - if (subMode) { - if (currentMode != subBytesMode) { - System.arraycopy(subBytesEscape, 0, outputByte, 0, - subBytesEscape.length); - outputSize = subBytesEscape.length; - System.arraycopy(subBytes, 0, outputByte, - outputSize, subBytes.length); - outputSize += subBytes.length; - newMode = subBytesMode; - } else { - outputByte = subBytes; - outputSize = subBytes.length; - } - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } else { - // Not part of a surrogate - - // Does this map to the Roman range? - if (inputChar <= '\u007F') { - if (currentMode != ASCII) { - outputByte[0] = (byte)0x1b; - outputByte[1] = (byte)0x28; - outputByte[2] = (byte)0x42; - outputByte[3] = (byte)inputChar; - outputSize = 4; - newMode = ASCII; - } else { - outputByte[0] = (byte)inputChar; - outputSize = 1; - } - } - // Is it a single byte kana? - else if (inputChar >= 0xFF61 && inputChar <= 0xFF9F) { - if (currentMode != JISX0201_1976_KANA) { - outputByte[0] = (byte)0x1b; - outputByte[1] = (byte)0x28; - outputByte[2] = (byte)0x49; - outputByte[3] = (byte)(inputChar - 0xff40); - outputSize = 4; - newMode = JISX0201_1976_KANA; - } else { - outputByte[0] = (byte)(inputChar - 0xff40); - outputSize = 1; - } - } - // Is it a yen sign? - else if (inputChar == '\u00A5') { - if (currentMode != JISX0201_1976) { - outputByte[0] = (byte)0x1b; - outputByte[1] = (byte)0x28; - outputByte[2] = (byte)0x4a; - outputByte[3] = (byte)0x5c; - outputSize = 4; - newMode = JISX0201_1976; - } else { - outputByte[0] = (byte)0x5C; - outputSize = 1; - } - } - // Is it a tilde? - else if (inputChar == '\u203E') - { - if (currentMode != JISX0201_1976) { - outputByte[0] = (byte)0x1b; - outputByte[1] = (byte)0x28; - outputByte[2] = (byte)0x4a; - outputByte[3] = (byte)0x7e; - outputSize = 4; - newMode = JISX0201_1976; - } else { - outputByte[0] = (byte)0x7e; - outputSize = 1; - } - } - // Is it a JIS-X-0208 character? - else { - int index = getNative(inputChar); - if (index != 0) { - if (currentMode != JISX0208_1983) { - outputByte[0] = (byte)0x1b; - outputByte[1] = (byte)0x24; - outputByte[2] = (byte)0x42; - outputByte[3] = (byte)(index >> 8); - outputByte[4] = (byte)(index & 0xff); - outputSize = 5; - newMode = JISX0208_1983; - } else { - outputByte[0] = (byte)(index >> 8); - outputByte[1] = (byte)(index & 0xff); - outputSize = 2; - } - } - // It doesn't map to JIS-0208! - else { - if (subMode) { - if (currentMode != subBytesMode) { - System.arraycopy(subBytesEscape, 0, outputByte, 0, - subBytesEscape.length); - outputSize = subBytesEscape.length; - System.arraycopy(subBytes, 0, outputByte, - outputSize, subBytes.length); - outputSize += subBytes.length; - newMode = subBytesMode; - } else { - outputByte = subBytes; - outputSize = subBytes.length; - } - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // Is there room in the output buffer? - // XXX: The code assumes output buffer can hold at least 5 bytes, - // in this coverter case. However, there is no way for apps to - // see how many bytes will be necessary for next call. - // getMaxBytesPerChar() should be overriden in every subclass of - // CharToByteConverter and reflect real value (5 for this). - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the output into the buffer - for ( int i = 0 ; i < outputSize ; i++ ) - output[byteOff++] = outputByte[i]; - - // Advance the input pointer - charOff += inputSize; - - // We can successfuly output the characters, changes - // current mode. Fix for 4251646. - currentMode = newMode; - } - - // return mode ASCII at the end - if (currentMode != ASCII){ - if (byteOff + 3 > outEnd) - throw new ConversionBufferFullException(); - - output[byteOff++] = 0x1b; - output[byteOff++] = 0x28; - output[byteOff++] = 0x42; - currentMode = ASCII; - } - - // Return the length written to the output buffer - return byteOff-outOff; - } - - // Reset - public void reset() { - highHalfZoneCode = 0; - byteOff = charOff = 0; - currentMode = ASCII; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() { - return 8; - } - - // Return the character set ID - public String getCharacterEncoding() { - return "ISO2022JP"; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO2022KR.java --- a/jdk/src/share/classes/sun/io/CharToByteISO2022KR.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1997, 1999, 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; - -public class CharToByteISO2022KR extends CharToByteISO2022 -{ - public CharToByteISO2022KR() - { - SODesignator = "$)C"; - try { - codeConverter = CharToByteConverter.getConverter("KSC5601"); - } catch (Exception e) {}; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() - { - return maximumDesignatorLength+4; - } - - /** - * Return the character set ID - */ - public String getCharacterEncoding() - { - return "ISO2022KR"; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_1.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_1.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,195 +0,0 @@ -/* - * Copyright (c) 1996, 1998, 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; - -public class CharToByteISO8859_1 extends CharToByteConverter { - - // Return the character set ID - public String getCharacterEncoding() - { - return "ISO8859_1"; - } - - private char highHalfZoneCode; - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - throw new MalformedInputException - ("String ends with of UTF16"); - } - byteOff = charOff = 0; - return 0; - } - - /* - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, - UnknownCharacterException, - ConversionBufferFullException - - { - - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - byte[] tmpArray = new byte[1]; - int inputSize; // Size of input - int outputSize; // Size of output - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - if (subMode) { - outputSize = subBytes.length; - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - for(int i = 0; i < outputSize; i++) - output[byteOff++] = subBytes[i]; - charOff += 1; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException - ("Previous converted string ends with " + - " of UTF16 " + - ", but this string is not begin with "); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - outputByte = tmpArray; - - // Get the input character - inputChar = input[charOff]; - - // default outputSize - outputSize = 1; - - // Assume this is a simple character - inputSize = 1; - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character in the input? - if (charOff + 1 == inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't map - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } - // Not part of a surrogate, so try to convert - else { - // Is this character mappable? - if (inputChar <= '\u00FF') { - outputByte[0] = (byte)inputChar; - } else { - // Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - - // Return the length written to the output buffer - return byteOff-outOff; - } - - // Determine if a character is mappable or not - public boolean canConvert(char ch) - { - return (ch <= '\u00FF'); - } - - // Reset the converter - public void reset() - { - byteOff = charOff = 0; - highHalfZoneCode = 0; - } - - /** - * returns the maximum number of bytes needed to convert a char - */ - public int getMaxBytesPerChar() - { - return 1; - } - - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_13.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_13.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1999, 2003, 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.ISO_8859_13; - -/** - * Tables and data to convert Unicode to ISO8859_13 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_13 extends CharToByteSingleByte { - - private final static ISO_8859_13 nioCoder = new ISO_8859_13(); - - public String getCharacterEncoding() { - return "ISO8859_13"; - } - - public CharToByteISO8859_13() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_15.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_15.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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. - */ - -/* - * (C) Copyright IBM Corp. 1998 - All Rights Reserved - * - */ - -package sun.io; - -import sun.nio.cs.ISO_8859_15; - -/** - * Tables and data to convert Unicode to ISO8859_15 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_15 extends CharToByteSingleByte { - - private final static ISO_8859_15 nioCoder = new ISO_8859_15(); - - public String getCharacterEncoding() { - return "ISO8859_15"; - } - - public CharToByteISO8859_15() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_2.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_2.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_2; - -/** - * Tables and data to convert Unicode to ISO8859_2 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_2 extends CharToByteSingleByte { - - private final static ISO_8859_2 nioCoder = new ISO_8859_2(); - - public String getCharacterEncoding() { - return "ISO8859_2"; - } - - public CharToByteISO8859_2() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_3.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_3.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_3; - -/** - * Tables and data to convert Unicode to ISO8859_3 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_3 extends CharToByteSingleByte { - - private final static ISO_8859_3 nioCoder = new ISO_8859_3(); - - public String getCharacterEncoding() { - return "ISO8859_3"; - } - - public CharToByteISO8859_3() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_4.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_4.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_4; - -/** - * Tables and data to convert Unicode to ISO8859_4 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_4 extends CharToByteSingleByte { - - private final static ISO_8859_4 nioCoder = new ISO_8859_4(); - - public String getCharacterEncoding() { - return "ISO8859_4"; - } - - public CharToByteISO8859_4() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_5.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_5.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_5; - -/** - * Tables and data to convert Unicode to ISO8859_5 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_5 extends CharToByteSingleByte { - - private final static ISO_8859_5 nioCoder = new ISO_8859_5(); - - public String getCharacterEncoding() { - return "ISO8859_5"; - } - - public CharToByteISO8859_5() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_6.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_6.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_6; - -/** - * Tables and data to convert Unicode to ISO8859_6 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_6 extends CharToByteSingleByte { - - private final static ISO_8859_6 nioCoder = new ISO_8859_6(); - - public String getCharacterEncoding() { - return "ISO8859_6"; - } - - public CharToByteISO8859_6() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_7.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_7.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_7; - - -/** - * Tables and data to convert Unicode to ISO8859_7 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_7 extends CharToByteSingleByte { - - public String getCharacterEncoding() { - return "ISO8859_7"; - } - - private final static ISO_8859_7 nioCoder = new ISO_8859_7(); - - public CharToByteISO8859_7() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_8.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_8.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_8; - -/** - * Tables and data to convert Unicode to ISO8859_8 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_8 extends CharToByteSingleByte { - - private final static ISO_8859_8 nioCoder = new ISO_8859_8(); - - public String getCharacterEncoding() { - return "ISO8859_8"; - } - - public CharToByteISO8859_8() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteISO8859_9.java --- a/jdk/src/share/classes/sun/io/CharToByteISO8859_9.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.ISO_8859_9; - -/** - * Tables and data to convert Unicode to ISO8859_9 - * - * @author ConverterGenerator tool - */ - -public class CharToByteISO8859_9 extends CharToByteSingleByte { - - private final static ISO_8859_9 nioCoder = new ISO_8859_9(); - - public String getCharacterEncoding() { - return "ISO8859_9"; - } - - public CharToByteISO8859_9() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJIS0201.java --- a/jdk/src/share/classes/sun/io/CharToByteJIS0201.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* - * Copyright (c) 1996, 2008, 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; - -/** - * Tables and data to convert Unicode to JIS0201 - * - * @author ConverterGenerator tool - * @version >= JDK1.1.6 - */ - -class CharToByteJIS0201 extends CharToByteSingleByte { - - public String getCharacterEncoding() { - return "JIS0201"; - } - - public CharToByteJIS0201() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - /* - super.index1 = index1; - super.index2 = index2; - */ - } - - public byte getNative(char inputChar) { - return (byte)index2.charAt(index1[(inputChar & mask1) >> shift] - + (inputChar & mask2)); - } - - public boolean canConvert(char ch) { - if (index2.charAt(index1[((ch & mask1) >> shift)] + (ch & mask2)) != '\u0000') - return true; - return (ch == '\u0000'); - } - - private final static String index2 = - - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + - "\b\t\n\u000B\f\r\u000E\u000F" + - "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + - "\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F" + - "\u0020\u0021\"\u0023\u0024\u0025\u0026\'" + - "\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F" + - "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + - "\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" + - "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + - "\u0048\u0049\u004A\u004B\u004C\u004D\u004E\u004F" + - "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + - "\u0058\u0059\u005A\u005B\\\u005D\u005E\u005F" + - "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + - "\u0068\u0069\u006A\u006B\u006C\u006D\u006E\u006F" + - "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + - "\u0078\u0079\u007A\u007B\u007C\u007D\u007E\u007F" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\\\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u007E\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u00A1\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A8" + - "\u00A9\u00AA\u00AB\u00AC\u00AD\u00AE\u00AF\u00B0" + - "\u00B1\u00B2\u00B3\u00B4\u00B5\u00B6\u00B7\u00B8" + - "\u00B9\u00BA\u00BB\u00BC\u00BD\u00BE\u00BF\u00C0" + - "\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8" + - "\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0" + - "\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8" + - "\u00D9\u00DA\u00DB\u00DC\u00DD\u00DE\u00DF\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + - "\u0000\u0000\u0000\u0000\u0000\u0000\u0000"; - - private final static short index1[] = { - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 360, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 519, - }; - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJIS0208.java --- a/jdk/src/share/classes/sun/io/CharToByteJIS0208.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.JIS_X_0208_Encoder; - -/** - * Tables and data to convert Unicode to JIS0208 - * - * @author ConverterGenerator tool - */ - -public class CharToByteJIS0208 extends CharToByteDoubleByte { - - public String getCharacterEncoding() { - return "JIS0208"; - } - - public CharToByteJIS0208() { - super.index1 = JIS_X_0208_Encoder.getIndex1(); - super.index2 = JIS_X_0208_Encoder.getIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJIS0208_Solaris.java --- a/jdk/src/share/classes/sun/io/CharToByteJIS0208_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Encoder; - -/** - * Tables and data to convert Unicode to JIS0208_Solaris - * - * - * Vendor defined chars added for benefit of vendor defined character - * supplemented mappings for EUC-JP-Solaris/PCK Solaris variants of EUC-JP - * and SJIS/Shift_JIS (4765370) - * - * @author ConverterGenerator tool - */ - -public class CharToByteJIS0208_Solaris extends CharToByteDoubleByte { - - public String getCharacterEncoding() { - return "JIS0208_Solaris"; - } - - public CharToByteJIS0208_Solaris() { - super.index1 = JIS_X_0208_Solaris_Encoder.getIndex1(); - super.index2 = JIS_X_0208_Solaris_Encoder.getIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJIS0212.java --- a/jdk/src/share/classes/sun/io/CharToByteJIS0212.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.JIS_X_0212_Encoder; - -/** - * Tables and data to convert Unicode to JIS0212 - * - * @author ConverterGenerator tool - */ - -public class CharToByteJIS0212 extends CharToByteDoubleByte { - public String getCharacterEncoding() { - return "JIS0212"; - } - - public CharToByteJIS0212() { - super.index1 = JIS_X_0212_Encoder.getIndex1(); - super.index2 = JIS_X_0212_Encoder.getIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJIS0212_Solaris.java --- a/jdk/src/share/classes/sun/io/CharToByteJIS0212_Solaris.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0212_Solaris_Encoder; - -/** - * Tables and data to convert Unicode to JIS0212_Solaris - * - * @author ConverterGenerator tool - */ - -public class CharToByteJIS0212_Solaris extends CharToByteDoubleByte { - - public String getCharacterEncoding() { - return "JIS0212_Solaris"; - } - - public CharToByteJIS0212_Solaris() { - super.index1 = JIS_X_0212_Solaris_Encoder.getIndex1(); - super.index2 = JIS_X_0212_Solaris_Encoder.getIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteJohab.java --- a/jdk/src/share/classes/sun/io/CharToByteJohab.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteJohab extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new Johab().newEncoder(); - - public String getCharacterEncoding() { - return "Johab"; - } - - public CharToByteJohab() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteKOI8_R.java --- a/jdk/src/share/classes/sun/io/CharToByteKOI8_R.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.KOI8_R; - -/** - * Tables and data to convert Unicode to KOI8_R - * - * @author ConverterGenerator tool - */ - -public class CharToByteKOI8_R extends CharToByteSingleByte { - - private final static KOI8_R nioCoder = new KOI8_R(); - - public String getCharacterEncoding() { - return "KOI8_R"; - } - - public CharToByteKOI8_R() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS874.java --- a/jdk/src/share/classes/sun/io/CharToByteMS874.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.MS874; - -/** - * Tables and data to convert Unicode to MS874 - * - * @author ConverterGenerator tool - */ - -public class CharToByteMS874 extends CharToByteSingleByte { - - private final static MS874 nioCoder = new MS874(); - - public String getCharacterEncoding() { - return "MS874"; - } - - public CharToByteMS874() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS932.java --- a/jdk/src/share/classes/sun/io/CharToByteMS932.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1997, 1998, 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.*; - -public class CharToByteMS932 extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new MS932().newEncoder(); - - public String getCharacterEncoding() { - return "MS932"; - } - - public CharToByteMS932() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS936.java --- a/jdk/src/share/classes/sun/io/CharToByteMS936.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteMS936 extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new MS936().newEncoder(); - - public String getCharacterEncoding() { - return "MS936"; - } - - public CharToByteMS936() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS949.java --- a/jdk/src/share/classes/sun/io/CharToByteMS949.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1998, 2003, 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.*; - -public class CharToByteMS949 extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new MS949().newEncoder(); - - public String getCharacterEncoding() { - return "MS949"; - } - - public CharToByteMS949() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS950.java --- a/jdk/src/share/classes/sun/io/CharToByteMS950.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.*; - -public class CharToByteMS950 extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new MS950().newEncoder(); - - public String getCharacterEncoding() { - return "MS950"; - } - - public CharToByteMS950() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java --- a/jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2002, 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.DoubleByte; -import sun.nio.cs.ext.MS950_HKSCS; - -public class CharToByteMS950_HKSCS extends CharToByteDBCS_ASCII { - - private static DoubleByte.Encoder enc = - (DoubleByte.Encoder)new MS950_HKSCS().newEncoder(); - - public String getCharacterEncoding() { - return "MS950_HKSCS"; - } - - public CharToByteMS950_HKSCS() { - super(enc); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacArabic.java --- a/jdk/src/share/classes/sun/io/CharToByteMacArabic.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacArabic; - -/** - * Tables and data to convert Unicode to MacArabic - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacArabic extends CharToByteSingleByte { - - private final static MacArabic nioCoder = new MacArabic(); - - public String getCharacterEncoding() { - return "MacArabic"; - } - - public CharToByteMacArabic() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacCentralEurope.java --- a/jdk/src/share/classes/sun/io/CharToByteMacCentralEurope.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCentralEurope; - -/** - * Tables and data to convert Unicode to MacCentralEurope - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacCentralEurope extends CharToByteSingleByte { - - private final static MacCentralEurope nioCoder = new MacCentralEurope(); - - public String getCharacterEncoding() { - return "MacCentralEurope"; - } - - public CharToByteMacCentralEurope() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacCroatian.java --- a/jdk/src/share/classes/sun/io/CharToByteMacCroatian.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCroatian; - -/** - * Tables and data to convert Unicode to MacCroatian - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacCroatian extends CharToByteSingleByte { - - private final static MacCroatian nioCoder = new MacCroatian(); - - public String getCharacterEncoding() { - return "MacCroatian"; - } - - public CharToByteMacCroatian() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacCyrillic.java --- a/jdk/src/share/classes/sun/io/CharToByteMacCyrillic.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacCyrillic; - -/** - * Tables and data to convert Unicode to MacCyrillic - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacCyrillic extends CharToByteSingleByte { - - private final static MacCyrillic nioCoder = new MacCyrillic(); - - public String getCharacterEncoding() { - return "MacCyrillic"; - } - - public CharToByteMacCyrillic() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacDingbat.java --- a/jdk/src/share/classes/sun/io/CharToByteMacDingbat.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacDingbat; - -/** - * Tables and data to convert Unicode to MacDingbat - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacDingbat extends CharToByteSingleByte { - - private final static MacDingbat nioCoder = new MacDingbat(); - - public String getCharacterEncoding() { - return "MacDingbat"; - } - - public CharToByteMacDingbat() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacGreek.java --- a/jdk/src/share/classes/sun/io/CharToByteMacGreek.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacGreek; - -/** - * Tables and data to convert Unicode to MacGreek - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacGreek extends CharToByteSingleByte { - - private final static MacGreek nioCoder = new MacGreek(); - - public String getCharacterEncoding() { - return "MacGreek"; - } - - public CharToByteMacGreek() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacHebrew.java --- a/jdk/src/share/classes/sun/io/CharToByteMacHebrew.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacHebrew; - -/** - * Tables and data to convert Unicode to MacHebrew - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacHebrew extends CharToByteSingleByte { - - private final static MacHebrew nioCoder = new MacHebrew(); - - public String getCharacterEncoding() { - return "MacHebrew"; - } - - public CharToByteMacHebrew() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacIceland.java --- a/jdk/src/share/classes/sun/io/CharToByteMacIceland.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacIceland; - -/** - * Tables and data to convert Unicode to MacIceland - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacIceland extends CharToByteSingleByte { - - private final static MacIceland nioCoder = new MacIceland(); - - public String getCharacterEncoding() { - return "MacIceland"; - } - - public CharToByteMacIceland() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacRoman.java --- a/jdk/src/share/classes/sun/io/CharToByteMacRoman.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacRoman; - -/** - * Tables and data to convert Unicode to MacRoman - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacRoman extends CharToByteSingleByte { - - private final static MacRoman nioCoder = new MacRoman(); - - public String getCharacterEncoding() { - return "MacRoman"; - } - - public CharToByteMacRoman() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacRomania.java --- a/jdk/src/share/classes/sun/io/CharToByteMacRomania.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacRomania; - -/** - * Tables and data to convert Unicode to MacRomania - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacRomania extends CharToByteSingleByte { - - private final static MacRomania nioCoder = new MacRomania(); - - public String getCharacterEncoding() { - return "MacRomania"; - } - - public CharToByteMacRomania() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacSymbol.java --- a/jdk/src/share/classes/sun/io/CharToByteMacSymbol.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacSymbol; - -/** - * Tables and data to convert Unicode to MacSymbol - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacSymbol extends CharToByteSingleByte { - - private final static MacSymbol nioCoder = new MacSymbol(); - - public String getCharacterEncoding() { - return "MacSymbol"; - } - - public CharToByteMacSymbol() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacThai.java --- a/jdk/src/share/classes/sun/io/CharToByteMacThai.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacThai; - -/** - * Tables and data to convert Unicode to MacThai - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacThai extends CharToByteSingleByte { - - private final static MacThai nioCoder = new MacThai(); - - public String getCharacterEncoding() { - return "MacThai"; - } - - public CharToByteMacThai() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacTurkish.java --- a/jdk/src/share/classes/sun/io/CharToByteMacTurkish.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacTurkish; - -/** - * Tables and data to convert Unicode to MacTurkish - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacTurkish extends CharToByteSingleByte { - - private final static MacTurkish nioCoder = new MacTurkish(); - - public String getCharacterEncoding() { - return "MacTurkish"; - } - - public CharToByteMacTurkish() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteMacUkraine.java --- a/jdk/src/share/classes/sun/io/CharToByteMacUkraine.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1996, 2003, 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.MacUkraine; - -/** - * Tables and data to convert Unicode to MacUkraine - * - * @author ConverterGenerator tool - */ - -public class CharToByteMacUkraine extends CharToByteSingleByte { - - private final static MacUkraine nioCoder = new MacUkraine(); - - public String getCharacterEncoding() { - return "MacUkraine"; - } - - public CharToByteMacUkraine() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToBytePCK.java --- a/jdk/src/share/classes/sun/io/CharToBytePCK.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2003, 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.JIS_X_0208_Solaris_Encoder; - -/** - * @author Limin Shi - * @author Mark Son-Bell - * @author Ian Little - * - * PCK char->byte converter for Solaris platform containing additional - * mappings for vendor defined chars (NEC row 13 & IBM extension chars) - * (bugID 4765370) - */ -public class CharToBytePCK extends CharToByteSJIS { - CharToByteJIS0201 cbJIS0201 = new CharToByteJIS0201(); - short[] j0208Index1 = JIS_X_0208_Solaris_Encoder.getIndex1(); - String[] j0208Index2 = JIS_X_0208_Solaris_Encoder.getIndex2(); - - public String getCharacterEncoding() { - return "PCK"; - } - - protected int convSingleByte(char inputChar, byte[] outputByte) { - byte b; - - // \u0000 - \u007F map straight through - if ((inputChar & 0xFF80) == 0) { - outputByte[0] = (byte)inputChar; - return 1; - } - - if ((b = cbJIS0201.getNative(inputChar)) == 0) - return 0; - - outputByte[0] = b; - return 1; - } - - protected int getNative(char ch) { - int result = 0; - - switch (ch) { - case '\u2015': - return 0x815C; - case '\u2014': - return 0; - default: - break; - } - - if ((result = super.getNative(ch)) != 0) { - return result; - } else { - int offset = j0208Index1[ch >> 8] << 8; - int pos = j0208Index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - - if (pos != 0) { - /* - * This algorithm for converting from JIS to SJIS comes from Ken Lunde's - * "Understanding Japanese Information Processing", pg 163. - */ - int c1 = (pos >> 8) & 0xff; - int c2 = pos & 0xff; - int rowOffset = c1 < 0x5F ? 0x70 : 0xB0; - int cellOffset = (c1 % 2 == 1) ? (c2 > 0x5F ? 0x20 : 0x1F) : 0x7E; - result = ((((c1 + 1 ) >> 1) + rowOffset) << 8) | (c2 + cellOffset); - } - } - return result; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteSJIS.java --- a/jdk/src/share/classes/sun/io/CharToByteSJIS.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* - * Copyright (c) 1996, 1998, 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; - -/** - * @author Limin Shi - * @author Mark Son-Bell - */ - -public class CharToByteSJIS extends CharToByteJIS0208 { - CharToByteJIS0201 cbJIS0201 = new CharToByteJIS0201(); - - public String getCharacterEncoding() { - return "SJIS"; - } - - protected int convSingleByte(char inputChar, byte[] outputByte) { - byte b; - - // \u0000 - \u007F map straight through - if ((inputChar & 0xFF80) == 0) { - outputByte[0] = (byte)inputChar; - return 1; - } - - if ((b = cbJIS0201.getNative(inputChar)) == 0) - return 0; - - outputByte[0] = b; - return 1; - } - - protected int getNative(char ch) { - int offset = index1[ch >> 8] << 8; - int pos = index2[offset >> 12].charAt((offset & 0xfff) + (ch & 0xff)); - if (pos == 0) { - /* Zero value indicates this Unicode has no mapping to JIS0208. - * We bail here because the JIS -> SJIS algorithm produces - * bogus SJIS values for invalid JIS input. Zero should be the - * only invalid JIS value in our table. - */ - return 0; - } - /* - * This algorithm for converting from JIS to SJIS comes from Ken Lunde's - * "Understanding Japanese Information Processing", pg 163. - */ - int c1 = (pos >> 8) & 0xff; - int c2 = pos & 0xff; - int rowOffset = c1 < 0x5F ? 0x70 : 0xB0; - int cellOffset = (c1 % 2 == 1) ? (c2 > 0x5F ? 0x20 : 0x1F) : 0x7E; - return ((((c1 + 1 ) >> 1) + rowOffset) << 8) | (c2 + cellOffset); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteSingleByte.java --- a/jdk/src/share/classes/sun/io/CharToByteSingleByte.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,265 +0,0 @@ -/* - * Copyright (c) 1996, 2008, 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 static sun.nio.cs.CharsetMapping.*; - -/** -* A table driven conversion from char to byte for single byte -* character sets. Tables will reside in the class CharToByteYYYYY, -* where YYYYY is a unique character set identifier - - < TBD: Tables are of the form... > - -* -* @author Lloyd Honomichl -* @author Asmus Freytag -* @version 8/28/96 -*/ - -public abstract class CharToByteSingleByte extends CharToByteConverter { - - /* - * 1st level index, provided by subclass - */ - protected char[] index1; - - /* - * 2nd level index, provided by subclass - */ - protected char[] index2; - - /* - * Mask to isolate bits for 1st level index, from subclass - */ - protected int mask1; - - /* - * Mask to isolate bits for 2nd level index, from subclass - */ - protected int mask2; - - /* - * Shift to isolate bits for 1st level index, from subclass - */ - protected int shift; - - private char highHalfZoneCode; - - public char[] getIndex1() { - return index1; - } - - public char[] getIndex2() { - return index2; - } - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - /** - * Converts characters to sequences of bytes. - * Conversions that result in Exceptions can be restarted by calling - * convert again, with appropriately modified parameters. - * @return the characters written to output. - * @param input char array containing text in Unicode - * @param inStart offset in input array - * @param inEnd offset of last byte to be converted - * @param output byte array to receive conversion result - * @param outStart starting offset - * @param outEnd offset of last byte to be written to - * @throw MalformedInputException for any sequence of chars that is - * illegal in Unicode (principally unpaired surrogates - * and \uFFFF or \uFFFE), including any partial surrogate pair - * which occurs at the end of an input buffer. - * @throw UnsupportedCharacterException for any character that - * that cannot be converted to the external character set. - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws MalformedInputException, - UnknownCharacterException, - ConversionBufferFullException - { - char inputChar; // Input character to be converted - byte[] outputByte; // Output byte written to output - int inputSize; // Size of input - int outputSize; // Size of output - - byte[] tmpArray = new byte[1]; - - // Record beginning offsets - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - badInputLength = 1; - throw new UnknownCharacterException(); - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - // Loop until we hit the end of the input - while(charOff < inEnd) { - - outputByte = tmpArray; - - // Get the input character - inputChar = input[charOff]; - - // Default output size - outputSize = 1; - - // Assume this is a simple character - inputSize = 1; - - // Is this a high surrogate? - if(inputChar >= '\uD800' && inputChar <= '\uDBFF') { - // Is this the last character in the input? - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - - // Is there a low surrogate following? - inputChar = input[charOff + 1]; - if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - // We have a valid surrogate pair. Too bad we don't map - // surrogates. Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - inputSize = 2; - } else { - badInputLength = 2; - throw new UnknownCharacterException(); - } - } else { - // We have a malformed surrogate pair - badInputLength = 1; - throw new MalformedInputException(); - } - } - - // Is this an unaccompanied low surrogate? - else if (inputChar >= '\uDC00' && inputChar <= '\uDFFF') { - badInputLength = 1; - throw new MalformedInputException(); - } - - // Not part of a surrogate, so look it up - else { - // Get output using two level lookup - outputByte[0] = getNative(inputChar); - - // Might this character be unmappable? - if (outputByte[0] == 0) { - // If outputByte is zero because the input was zero - // then this character is actually mappable - if (input[charOff] != '\u0000') { - // We have an unmappable character - // Is substitution enabled? - if (subMode) { - outputByte = subBytes; - outputSize = subBytes.length; - } else { - badInputLength = 1; - throw new UnknownCharacterException(); - } - } - } - } - - // If we don't have room for the output, throw an exception - if (byteOff + outputSize > outEnd) - throw new ConversionBufferFullException(); - - // Put the byte in the output buffer - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - - } - - // Return the length written to the output buffer - return byteOff - outOff; - } - - /** - * the maximum number of bytes needed to hold a converted char - * @returns the maximum number of bytes needed for a converted char - */ - public int getMaxBytesPerChar() { - return 1; - } - - int encodeChar(char ch) { - char index = index1[ch >> 8]; - if (index == UNMAPPABLE_ENCODING) - return UNMAPPABLE_ENCODING; - return index2[index + (ch & 0xff)]; - } - - public byte getNative(char inputChar) { - int b = encodeChar(inputChar); - if (b == UNMAPPABLE_ENCODING) - return 0; - return (byte)b; - } - - /** - * Resets the converter. - * Call this method to reset the converter to its initial state - */ - public void reset() { - byteOff = charOff = 0; - highHalfZoneCode = 0; - } - - /** - * Return whether a character is mappable or not - * @return true if a character is mappable - */ - public boolean canConvert(char ch) { - return encodeChar(ch) != UNMAPPABLE_ENCODING; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteTIS620.java --- a/jdk/src/share/classes/sun/io/CharToByteTIS620.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1997, 2003, 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.TIS_620; - -/** - * Tables and data to convert Unicode to TIS620 - * - * @author ConverterGenerator tool - */ - -public class CharToByteTIS620 extends CharToByteSingleByte { - - private final static TIS_620 nioCoder = new TIS_620(); - - public String getCharacterEncoding() { - return "TIS620"; - } - - public CharToByteTIS620() { - super.mask1 = 0xFF00; - super.mask2 = 0x00FF; - super.shift = 8; - super.index1 = nioCoder.getEncoderIndex1(); - super.index2 = nioCoder.getEncoderIndex2(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUTF16.java --- a/jdk/src/share/classes/sun/io/CharToByteUTF16.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1999, 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; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using - * big-endian byte order and writing an initial byte-order mark. - */ - -public class CharToByteUTF16 extends CharToByteUnicode { - - public CharToByteUTF16() { - super(BIG, true); - } - - public String getCharacterEncoding() { - return "UTF-16"; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUTF8.java --- a/jdk/src/share/classes/sun/io/CharToByteUTF8.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* - * Copyright (c) 1996, 1997, 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; - - -/** - * UCS2 (UTF16) -> UCS Transformation Format 8 (UTF-8) converter - * It's represented like below. - * - * # Bits Bit pattern - * 1 7 0xxxxxxx - * 2 11 110xxxxx 10xxxxxx - * 3 16 1110xxxx 10xxxxxx 10xxxxxx - * 4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx - * 5 26 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - * 6 31 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx - * - * UCS2 uses 1-3 / UTF16 uses 1-4 / UCS4 uses 1-6 - */ - -public class CharToByteUTF8 extends CharToByteConverter { - - private char highHalfZoneCode; - - public int flush(byte[] output, int outStart, int outEnd) - throws MalformedInputException - { - if (highHalfZoneCode != 0) { - highHalfZoneCode = 0; - badInputLength = 0; - throw new MalformedInputException(); - } - byteOff = charOff = 0; - return 0; - } - - /** - * Character conversion - */ - public int convert(char[] input, int inOff, int inEnd, - byte[] output, int outOff, int outEnd) - throws ConversionBufferFullException, MalformedInputException - { - char inputChar; - byte[] outputByte = new byte[6]; - int inputSize; - int outputSize; - - charOff = inOff; - byteOff = outOff; - - if (highHalfZoneCode != 0) { - inputChar = highHalfZoneCode; - highHalfZoneCode = 0; - if (input[inOff] >= 0xdc00 && input[inOff] <= 0xdfff) { - // This is legal UTF16 sequence. - int ucs4 = (highHalfZoneCode - 0xd800) * 0x400 - + (input[inOff] - 0xdc00) + 0x10000; - output[0] = (byte)(0xf0 | ((ucs4 >> 18)) & 0x07); - output[1] = (byte)(0x80 | ((ucs4 >> 12) & 0x3f)); - output[2] = (byte)(0x80 | ((ucs4 >> 6) & 0x3f)); - output[3] = (byte)(0x80 | (ucs4 & 0x3f)); - charOff++; - highHalfZoneCode = 0; - } else { - // This is illegal UTF16 sequence. - badInputLength = 0; - throw new MalformedInputException(); - } - } - - while(charOff < inEnd) { - inputChar = input[charOff]; - if (inputChar < 0x80) { - outputByte[0] = (byte)inputChar; - inputSize = 1; - outputSize = 1; - } else if (inputChar < 0x800) { - outputByte[0] = (byte)(0xc0 | ((inputChar >> 6) & 0x1f)); - outputByte[1] = (byte)(0x80 | (inputChar & 0x3f)); - inputSize = 1; - outputSize = 2; - } else if (inputChar >= 0xd800 && inputChar <= 0xdbff) { - // this is in UTF-16 - if (charOff + 1 >= inEnd) { - highHalfZoneCode = inputChar; - break; - } - // check next char is valid - char lowChar = input[charOff + 1]; - if (lowChar < 0xdc00 || lowChar > 0xdfff) { - badInputLength = 1; - throw new MalformedInputException(); - } - int ucs4 = (inputChar - 0xd800) * 0x400 + (lowChar - 0xdc00) - + 0x10000; - outputByte[0] = (byte)(0xf0 | ((ucs4 >> 18)) & 0x07); - outputByte[1] = (byte)(0x80 | ((ucs4 >> 12) & 0x3f)); - outputByte[2] = (byte)(0x80 | ((ucs4 >> 6) & 0x3f)); - outputByte[3] = (byte)(0x80 | (ucs4 & 0x3f)); - outputSize = 4; - inputSize = 2; - } else { - outputByte[0] = (byte)(0xe0 | ((inputChar >> 12)) & 0x0f); - outputByte[1] = (byte)(0x80 | ((inputChar >> 6) & 0x3f)); - outputByte[2] = (byte)(0x80 | (inputChar & 0x3f)); - inputSize = 1; - outputSize = 3; - } - if (byteOff + outputSize > outEnd) { - throw new ConversionBufferFullException(); - } - for (int i = 0; i < outputSize; i++) { - output[byteOff++] = outputByte[i]; - } - charOff += inputSize; - } - return byteOff - outOff; - } - - public boolean canConvert(char ch) { - return true; - } - - public int getMaxBytesPerChar() { - return 3; - } - - public void reset() { - byteOff = charOff = 0; - highHalfZoneCode = 0; - } - - public String getCharacterEncoding() { - return "UTF8"; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUnicode.java --- a/jdk/src/share/classes/sun/io/CharToByteUnicode.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* - * 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 - * 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 java.io.*; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using the - * platform-default byte order. - * - * @author Mark Reinhold - */ - -public class CharToByteUnicode extends CharToByteConverter { - - static final char BYTE_ORDER_MARK = (char) 0xfeff; - protected boolean usesMark = true; /* A mark should be written */ - private boolean markWritten = false; /* A mark has been written */ - - static final int UNKNOWN = 0; - static final int BIG = 1; - static final int LITTLE = 2; - protected int byteOrder = UNKNOWN; - - public CharToByteUnicode() { - String enc = java.security.AccessController.doPrivileged( - new sun.security.action.GetPropertyAction("sun.io.unicode.encoding", - "UnicodeBig")); - if (enc.equals("UnicodeBig")) - byteOrder = BIG; - else if (enc.equals("UnicodeLittle")) - byteOrder = LITTLE; - else - byteOrder = BIG; - } - - public CharToByteUnicode(int byteOrder, boolean usesMark) { - this.byteOrder = byteOrder; - this.usesMark = usesMark; - } - - public CharToByteUnicode(boolean usesMark) { - this(); - this.usesMark = usesMark; - } - - public String getCharacterEncoding() { - switch (byteOrder) { - case BIG: - return usesMark ? "UnicodeBig" : "UnicodeBigUnmarked"; - case LITTLE: - return usesMark ? "UnicodeLittle" : "UnicodeLittleUnmarked"; - default: - return "UnicodeUnknown"; - } - } - - public int convert(char in[], int inOff, int inEnd, - byte out[], int outOff, int outEnd) - throws ConversionBufferFullException, MalformedInputException - { - charOff = inOff; - byteOff = outOff; - - if (inOff >= inEnd) - return 0; - - int inI = inOff, - outI = outOff, - outTop = outEnd - 2; - - if (usesMark && !markWritten) { - if (outI > outTop) - throw new ConversionBufferFullException(); - if (byteOrder == BIG) { - out[outI++] = (byte) (BYTE_ORDER_MARK >> 8); - out[outI++] = (byte) (BYTE_ORDER_MARK & 0xff); - } - else { - out[outI++] = (byte) (BYTE_ORDER_MARK & 0xff); - out[outI++] = (byte) (BYTE_ORDER_MARK >> 8); - } - markWritten = true; - } - - if (byteOrder == BIG) { - while (inI < inEnd) { - if (outI > outTop) { - charOff = inI; - byteOff = outI; - throw new ConversionBufferFullException(); - } - char c = in[inI++]; - out[outI++] = (byte) (c >> 8); - out[outI++] = (byte) (c & 0xff); - } - } - else { - while (inI < inEnd) { - if (outI > outTop) { - charOff = inI; - byteOff = outI; - throw new ConversionBufferFullException(); - } - char c = in[inI++]; - out[outI++] = (byte) (c & 0xff); - out[outI++] = (byte) (c >> 8); - } - } - - charOff = inI; - byteOff = outI; - return outI - outOff; - } - - public int flush(byte in[], int inOff, int inEnd) { - byteOff = charOff = 0; - return 0; - } - - public void reset () { - byteOff = charOff = 0; - markWritten = false; - } - - public int getMaxBytesPerChar() { - return 4; /* To allow for writing the byte-order mark */ - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUnicodeBig.java --- a/jdk/src/share/classes/sun/io/CharToByteUnicodeBig.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1996, 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; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using - * big-endian byte order. - * - * @author Mark Reinhold - */ - -public class CharToByteUnicodeBig extends CharToByteUnicode { - - public CharToByteUnicodeBig () { - byteOrder = BIG; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java --- a/jdk/src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using - * big-endian byte order; do not write a byte-order mark before the first - * converted character. - * - * @author Mark Reinhold - */ - -public class CharToByteUnicodeBigUnmarked extends CharToByteUnicode { - - public CharToByteUnicodeBigUnmarked () { - byteOrder = BIG; - usesMark = false; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUnicodeLittle.java --- a/jdk/src/share/classes/sun/io/CharToByteUnicodeLittle.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1996, 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; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using - * little-endian byte order. - * - * @author Mark Reinhold - */ - -public class CharToByteUnicodeLittle extends CharToByteUnicode { - - public CharToByteUnicodeLittle () { - byteOrder = LITTLE; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java --- a/jdk/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1996, 1999, 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; - - -/** - * Convert arrays containing Unicode characters into arrays of bytes, using - * little-endian byte order; do not write a byte-order mark before the first - * converted character. - * - * @author Mark Reinhold - */ - -public class CharToByteUnicodeLittleUnmarked extends CharToByteUnicode { - - public CharToByteUnicodeLittleUnmarked () { - byteOrder = LITTLE; - usesMark = false; - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/CharacterEncoding.java --- a/jdk/src/share/classes/sun/io/CharacterEncoding.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,900 +0,0 @@ -/* - * 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 - * 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 java.util.Collections; -import java.util.Iterator; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.security.AccessController; -import java.security.PrivilegedAction; -import sun.security.action.GetPropertyAction; - -/* - * This class is public in sun.io, so other sun.* packages (such as - * HotJava) can use it, without exposing it to java.*. - * Translates IANA encoding name to the string which is the part of - * converter class. - */ - -/** - * @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE - * REMOVED IN J2SE 1.6. - */ -@Deprecated -public class CharacterEncoding { - - private static boolean sjisIsMS932; - - private static Map aliasTable; - private static volatile boolean installedAll; - - static { - aliasTable = new HashMap<>(460, 1.0f); /* MDA */ - - aliasTable.put("us-ascii", "ASCII"); - aliasTable.put("ascii", "ASCII"); - aliasTable.put("646", "ASCII"); // Solaris POSIX locale - aliasTable.put("iso_646.irv:1983", "ASCII"); // Linux POSIX locale - aliasTable.put("ansi_x3.4-1968", "ASCII"); // Caldera linux - aliasTable.put("iso646-us", "ASCII"); - aliasTable.put("default", "ASCII"); // compatibility with obsolete "Default" converters - aliasTable.put("ascii7", "ASCII"); // compatibility with obsolete "Default" converters - - // Core encodings - aliasTable.put("8859_1", "ISO8859_1"); - aliasTable.put("iso8859_1", "ISO8859_1"); - aliasTable.put("utf-8", "UTF8"); - aliasTable.put("utf8", "UTF8"); - aliasTable.put("utf-16le", "UnicodeLittleUnmarked"); - - // Standard encodings used on Solaris and Linux - aliasTable.put("iso8859-1", "ISO8859_1"); - aliasTable.put("iso8859-2", "ISO8859_2"); - aliasTable.put("iso8859-4", "ISO8859_4"); - aliasTable.put("iso8859-5", "ISO8859_5"); - aliasTable.put("iso8859-6", "ISO8859_6"); - aliasTable.put("iso8859-8", "ISO8859_8"); - aliasTable.put("iso8859-9", "ISO8859_9"); - aliasTable.put("iso8859-13", "ISO8859_13"); - aliasTable.put("iso8859-15", "ISO8859_15"); - aliasTable.put("5601", "EUC_KR"); - aliasTable.put("ansi-1251", "Cp1251"); - aliasTable.put("big5", "Big5"); - aliasTable.put("big5hk", "Big5_HKSCS"); - aliasTable.put("eucjp", "EUC_JP"); - aliasTable.put("cns11643", "EUC_TW"); - aliasTable.put("gb2312", "EUC_CN"); - aliasTable.put("gb18030", "GB18030"); - aliasTable.put("gbk", "GBK"); - aliasTable.put("koi8-r", "KOI8_R"); - aliasTable.put("tis620.2533", "TIS620"); - - // Windows encodings - aliasTable.put("cp1250", "Cp1250"); - aliasTable.put("cp1251", "Cp1251"); - aliasTable.put("cp1252", "Cp1252"); - aliasTable.put("cp1253", "Cp1253"); - aliasTable.put("cp1254", "Cp1254"); - aliasTable.put("cp1255", "Cp1255"); - aliasTable.put("cp1256", "Cp1256"); - aliasTable.put("cp1257", "Cp1257"); - aliasTable.put("cp1258", "Cp1258"); - aliasTable.put("ms874", "MS874"); - aliasTable.put("ms932", "MS932"); - aliasTable.put("ms949", "MS949"); - aliasTable.put("ms950", "MS950"); - aliasTable.put("ms1361", "MS1361"); - } - - public static String aliasName(String name){ - - if (name.startsWith("\1")) { - // Emergency access to old converters - name = name.substring(1); - } - // need to use Locale.US so we can load ISO converters in tr_TR locale - String lower = name.toLowerCase(Locale.US); - String val = aliasTable.get(lower); - - if (val == null && !installedAll) { - installAll(); - val = aliasTable.get(lower); - } - return val; - } - - private static synchronized void installAll() { - if (!installedAll) { - GetPropertyAction a = new GetPropertyAction("sun.nio.cs.map"); - String map = AccessController.doPrivileged(a); - if (map != null) { - sjisIsMS932 = map.equalsIgnoreCase("Windows-31J/Shift_JIS"); - } else { - sjisIsMS932 = false; - } - - // MIBenum: 4 - aliasTable.put("8859_1", "ISO8859_1"); - aliasTable.put("iso_8859-1:1987", "ISO8859_1"); - aliasTable.put("iso-ir-100", "ISO8859_1"); - aliasTable.put("iso_8859-1", "ISO8859_1"); - aliasTable.put("iso-8859-1", "ISO8859_1"); - aliasTable.put("iso8859-1", "ISO8859_1"); - aliasTable.put("latin1", "ISO8859_1"); - aliasTable.put("l1", "ISO8859_1"); - aliasTable.put("ibm819", "ISO8859_1"); - aliasTable.put("ibm-819", "ISO8859_1"); - aliasTable.put("cp819", "ISO8859_1"); - aliasTable.put("819", "ISO8859_1"); - aliasTable.put("csisolatin1", "ISO8859_1"); - - // MIBenum: 5 - aliasTable.put("8859_2", "ISO8859_2"); - aliasTable.put("iso_8859-2:1987", "ISO8859_2"); - aliasTable.put("iso-ir-101", "ISO8859_2"); - aliasTable.put("iso_8859-2", "ISO8859_2"); - aliasTable.put("iso-8859-2", "ISO8859_2"); - aliasTable.put("iso8859-2", "ISO8859_2"); - aliasTable.put("latin2", "ISO8859_2"); - aliasTable.put("l2", "ISO8859_2"); - aliasTable.put("ibm912", "ISO8859_2"); - aliasTable.put("ibm-912", "ISO8859_2"); - aliasTable.put("cp912", "ISO8859_2"); - aliasTable.put("912", "ISO8859_2"); - aliasTable.put("csisolatin2", "ISO8859_2"); - - // MIBenum: 6 - aliasTable.put("8859_3", "ISO8859_3"); - aliasTable.put("iso_8859-3:1988", "ISO8859_3"); - aliasTable.put("iso-ir-109", "ISO8859_3"); - aliasTable.put("iso_8859-3", "ISO8859_3"); - aliasTable.put("iso-8859-3", "ISO8859_3"); - aliasTable.put("iso8859-3", "ISO8859_3"); - aliasTable.put("latin3", "ISO8859_3"); - aliasTable.put("l3", "ISO8859_3"); - aliasTable.put("ibm913", "ISO8859_3"); - aliasTable.put("ibm-913", "ISO8859_3"); - aliasTable.put("cp913", "ISO8859_3"); - aliasTable.put("913", "ISO8859_3"); - aliasTable.put("csisolatin3", "ISO8859_3"); - - // MIBenum: 7 - aliasTable.put("8859_4", "ISO8859_4"); - aliasTable.put("iso_8859-4:1988", "ISO8859_4"); - aliasTable.put("iso-ir-110", "ISO8859_4"); - aliasTable.put("iso_8859-4", "ISO8859_4"); - aliasTable.put("iso-8859-4", "ISO8859_4"); - aliasTable.put("iso8859-4", "ISO8859_4"); - aliasTable.put("latin4", "ISO8859_4"); - aliasTable.put("l4", "ISO8859_4"); - aliasTable.put("ibm914", "ISO8859_4"); - aliasTable.put("ibm-914", "ISO8859_4"); - aliasTable.put("cp914", "ISO8859_4"); - aliasTable.put("914", "ISO8859_4"); - aliasTable.put("csisolatin4", "ISO8859_4"); - - // MIBenum: 8 - aliasTable.put("8859_5", "ISO8859_5"); - aliasTable.put("iso_8859-5:1988", "ISO8859_5"); - aliasTable.put("iso-ir-144", "ISO8859_5"); - aliasTable.put("iso_8859-5", "ISO8859_5"); - aliasTable.put("iso-8859-5", "ISO8859_5"); - aliasTable.put("iso8859-5", "ISO8859_5"); - aliasTable.put("cyrillic", "ISO8859_5"); - aliasTable.put("csisolatincyrillic", "ISO8859_5"); - aliasTable.put("ibm915", "ISO8859_5"); - aliasTable.put("ibm-915", "ISO8859_5"); - aliasTable.put("cp915", "ISO8859_5"); - aliasTable.put("915", "ISO8859_5"); - - // MIBenum: 9 - aliasTable.put("8859_6", "ISO8859_6"); - aliasTable.put("iso_8859-6:1987", "ISO8859_6"); - aliasTable.put("iso-ir-127", "ISO8859_6"); - aliasTable.put("iso_8859-6", "ISO8859_6"); - aliasTable.put("iso-8859-6", "ISO8859_6"); - aliasTable.put("iso8859-6", "ISO8859_6"); - aliasTable.put("ecma-114", "ISO8859_6"); - aliasTable.put("asmo-708", "ISO8859_6"); - aliasTable.put("arabic", "ISO8859_6"); - aliasTable.put("csisolatinarabic", "ISO8859_6"); - aliasTable.put("ibm1089", "ISO8859_6"); - aliasTable.put("ibm-1089", "ISO8859_6"); - aliasTable.put("cp1089", "ISO8859_6"); - aliasTable.put("1089", "ISO8859_6"); - - // MIBenum: 10 - aliasTable.put("8859_7", "ISO8859_7"); - aliasTable.put("iso_8859-7:1987", "ISO8859_7"); - aliasTable.put("iso-ir-126", "ISO8859_7"); - aliasTable.put("iso_8859-7", "ISO8859_7"); - aliasTable.put("iso-8859-7", "ISO8859_7"); - aliasTable.put("iso8859-7", "ISO8859_7"); - aliasTable.put("elot_928", "ISO8859_7"); - aliasTable.put("ecma-118", "ISO8859_7"); - aliasTable.put("greek", "ISO8859_7"); - aliasTable.put("greek8", "ISO8859_7"); - aliasTable.put("csisolatingreek", "ISO8859_7"); - aliasTable.put("ibm813", "ISO8859_7"); - aliasTable.put("ibm-813", "ISO8859_7"); - aliasTable.put("cp813", "ISO8859_7"); - aliasTable.put("813", "ISO8859_7"); - aliasTable.put("sun_eu_greek", "ISO8859_7"); - - // MIBenum: 11 - aliasTable.put("8859_8", "ISO8859_8"); - aliasTable.put("iso_8859-8:1988", "ISO8859_8"); - aliasTable.put("iso-ir-138", "ISO8859_8"); - aliasTable.put("iso_8859-8", "ISO8859_8"); - aliasTable.put("iso-8859-8", "ISO8859_8"); - aliasTable.put("iso8859-8", "ISO8859_8"); - aliasTable.put("hebrew", "ISO8859_8"); - aliasTable.put("csisolatinhebrew", "ISO8859_8"); - aliasTable.put("ibm916", "ISO8859_8"); - aliasTable.put("ibm-916", "ISO8859_8"); - aliasTable.put("cp916", "ISO8859_8"); - aliasTable.put("916", "ISO8859_8"); - - // MIBenum: 12 - aliasTable.put("8859_9", "ISO8859_9"); - aliasTable.put("iso-ir-148", "ISO8859_9"); - aliasTable.put("iso_8859-9", "ISO8859_9"); - aliasTable.put("iso-8859-9", "ISO8859_9"); - aliasTable.put("iso8859-9", "ISO8859_9"); - aliasTable.put("latin5", "ISO8859_9"); - aliasTable.put("l5", "ISO8859_9"); - aliasTable.put("ibm920", "ISO8859_9"); - aliasTable.put("ibm-920", "ISO8859_9"); - aliasTable.put("cp920", "ISO8859_9"); - aliasTable.put("920", "ISO8859_9"); - aliasTable.put("csisolatin5", "ISO8859_9"); - - // MIBenum: ??? - aliasTable.put("8859_13", "ISO8859_13"); - aliasTable.put("iso_8859-13", "ISO8859_13"); - aliasTable.put("iso-8859-13", "ISO8859_13"); - aliasTable.put("iso8859-13", "ISO8859_13"); - - - // MIBenum: ???? - aliasTable.put("8859_15", "ISO8859_15"); - aliasTable.put("iso-8859-15", "ISO8859_15"); - aliasTable.put("iso_8859-15", "ISO8859_15"); - aliasTable.put("iso8859-15", "ISO8859_15"); - aliasTable.put("ibm923", "ISO8859_15"); - aliasTable.put("ibm-923", "ISO8859_15"); - aliasTable.put("cp923", "ISO8859_15"); - aliasTable.put("923", "ISO8859_15"); - aliasTable.put("latin0", "ISO8859_15"); - aliasTable.put("latin9", "ISO8859_15"); - aliasTable.put("csisolatin0", "ISO8859_15"); - aliasTable.put("csisolatin9", "ISO8859_15"); - - //For compatibility purpose - aliasTable.put("iso8859_15_fdis", "ISO8859_15"); - - // MIBenum: 106 - aliasTable.put("utf-8", "UTF8"); - - // Alias recommended in RFC 1641 - aliasTable.put("unicode-1-1-utf-8", "UTF8"); - - // MIBenum: 1010 - aliasTable.put("unicode-1-1", "UnicodeBigUnmarked"); - - // MIBenum: 1000 - aliasTable.put("iso-10646-ucs-2", "UnicodeBigUnmarked"); - - // Per Unicode standard - aliasTable.put("utf-16be", "UnicodeBigUnmarked"); - aliasTable.put("utf-16le", "UnicodeLittleUnmarked"); - aliasTable.put("utf-16", "UTF16"); - - // Used by drag-and-drop subsystem - aliasTable.put("x-utf-16be", "UnicodeBigUnmarked"); - aliasTable.put("x-utf-16le", "UnicodeLittleUnmarked"); - - aliasTable.put("unicode", "Unicode"); - - // MIBenum: ???? - aliasTable.put("ibm037", "Cp037"); - aliasTable.put("ibm-037", "Cp037"); - aliasTable.put("cp037", "Cp037"); - aliasTable.put("037", "Cp037"); - - // MIBenum: ???? - aliasTable.put("ibm273", "Cp273"); - aliasTable.put("ibm-273", "Cp273"); - aliasTable.put("cp273", "Cp273"); - aliasTable.put("273", "Cp273"); - - // MIBenum: ???? - aliasTable.put("ibm277", "Cp277"); - aliasTable.put("ibm-277", "Cp277"); - aliasTable.put("cp277", "Cp277"); - aliasTable.put("277", "Cp277"); - - // MIBenum: ???? - aliasTable.put("ibm278", "Cp278"); - aliasTable.put("ibm-278", "Cp278"); - aliasTable.put("cp278", "Cp278"); - aliasTable.put("278", "Cp278"); - - // MIBenum: ???? - aliasTable.put("ibm280", "Cp280"); - aliasTable.put("ibm-280", "Cp280"); - aliasTable.put("cp280", "Cp280"); - aliasTable.put("280", "Cp280"); - - // MIBenum: ???? - aliasTable.put("ibm284", "Cp284"); - aliasTable.put("ibm-284", "Cp284"); - aliasTable.put("cp284", "Cp284"); - aliasTable.put("284", "Cp284"); - - // MIBenum: ???? - aliasTable.put("ibm285", "Cp285"); - aliasTable.put("ibm-285", "Cp285"); - aliasTable.put("cp285", "Cp285"); - aliasTable.put("285", "Cp285"); - - // MIBenum: ???? - aliasTable.put("ibm297", "Cp297"); - aliasTable.put("ibm-297", "Cp297"); - aliasTable.put("cp297", "Cp297"); - aliasTable.put("297", "Cp297"); - - // MIBenum: ???? - aliasTable.put("ibm420", "Cp420"); - aliasTable.put("ibm-420", "Cp420"); - aliasTable.put("cp420", "Cp420"); - aliasTable.put("420", "Cp420"); - - // MIBenum: ???? - aliasTable.put("ibm424", "Cp424"); - aliasTable.put("ibm-424", "Cp424"); - aliasTable.put("cp424", "Cp424"); - aliasTable.put("424", "Cp424"); - - // MIBenum: 2011 - aliasTable.put("ibm437", "Cp437"); - aliasTable.put("ibm-437", "Cp437"); - aliasTable.put("cp437", "Cp437"); - aliasTable.put("437", "Cp437"); - aliasTable.put("cspc8codepage437", "Cp437"); - - // MIBenum: ???? - aliasTable.put("ibm500", "Cp500"); - aliasTable.put("ibm-500", "Cp500"); - aliasTable.put("cp500", "Cp500"); - aliasTable.put("500", "Cp500"); - - // MIBenum: ???? - aliasTable.put("ibm737", "Cp737"); - aliasTable.put("ibm-737", "Cp737"); - aliasTable.put("cp737", "Cp737"); - aliasTable.put("737", "Cp737"); - - // MIBenum: ???? - aliasTable.put("ibm775", "Cp775"); - aliasTable.put("ibm-775", "Cp775"); - 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"); - aliasTable.put("834", "Cp834"); - - // MIBenum: ???? - aliasTable.put("ibm838", "Cp838"); /* MDA */ - aliasTable.put("ibm-838", "Cp838"); /* MDA */ - aliasTable.put("cp838", "Cp838"); /* MDA */ - aliasTable.put("838", "Cp838"); /* MDA */ - - // "Cp850" - // MIBenum: 2009 - aliasTable.put("ibm850", "Cp850"); - aliasTable.put("ibm-850", "Cp850"); - aliasTable.put("cp850", "Cp850"); - aliasTable.put("850", "Cp850"); - aliasTable.put("cspc850multilingual", "Cp850"); - - // "Cp852" - // MIBenum: 2010 - aliasTable.put("ibm852", "Cp852"); - aliasTable.put("ibm-852", "Cp852"); - aliasTable.put("cp852", "Cp852"); - aliasTable.put("852", "Cp852"); - aliasTable.put("cspcp852", "Cp852"); - - // "Cp855" - // MIBenum: 2046 - aliasTable.put("ibm855", "Cp855"); - aliasTable.put("ibm-855", "Cp855"); - aliasTable.put("cp855", "Cp855"); - aliasTable.put("855", "Cp855"); - aliasTable.put("cspcp855", "Cp855"); - - // "Cp855" - // MIBenum: ??? - aliasTable.put("ibm856", "Cp856"); - aliasTable.put("ibm-856", "Cp856"); - aliasTable.put("cp856", "Cp856"); - aliasTable.put("856", "Cp856"); - - // "Cp857" - // MIBenum: 2047 - aliasTable.put("ibm857", "Cp857"); - aliasTable.put("ibm-857", "Cp857"); - aliasTable.put("cp857", "Cp857"); - aliasTable.put("857", "Cp857"); - aliasTable.put("csibm857", "Cp857"); - - // "Cp860" - // MIBenum: 2048 - aliasTable.put("ibm860", "Cp860"); - aliasTable.put("ibm-860", "Cp860"); - aliasTable.put("cp860", "Cp860"); - aliasTable.put("860", "Cp860"); - aliasTable.put("csibm860", "Cp860"); - - // MIBenum: 2049 - aliasTable.put("ibm861", "Cp861"); - aliasTable.put("ibm-861", "Cp861"); - aliasTable.put("cp861", "Cp861"); - aliasTable.put("cp-is", "Cp861"); - aliasTable.put("861", "Cp861"); - aliasTable.put("csibm861", "Cp861"); - - // MIBenum: 2013 - aliasTable.put("ibm862", "Cp862"); - aliasTable.put("ibm-862", "Cp862"); - aliasTable.put("cp862", "Cp862"); - aliasTable.put("862", "Cp862"); - aliasTable.put("cspc862latinhebrew", "Cp862"); - - // MIBenum: 2050 - aliasTable.put("ibm863", "Cp863"); - aliasTable.put("ibm-863", "Cp863"); - aliasTable.put("cp863", "Cp863"); - aliasTable.put("863", "Cp863"); - aliasTable.put("csibm863", "Cp863"); - - // MIBenum: 2051 - aliasTable.put("ibm864", "Cp864"); - aliasTable.put("ibm-864", "Cp864"); - aliasTable.put("cp864", "Cp864"); - aliasTable.put("csibm864", "Cp864"); - - // MIBenum: 2052 - aliasTable.put("ibm865", "Cp865"); - aliasTable.put("ibm-865", "Cp865"); - aliasTable.put("cp865", "Cp865"); - aliasTable.put("865", "Cp865"); - aliasTable.put("csibm865", "Cp865"); - - // MIBenum: ???? - aliasTable.put("ibm866", "Cp866"); - aliasTable.put("ibm-866", "Cp866"); - aliasTable.put("cp866", "Cp866"); - aliasTable.put("866", "Cp866"); - aliasTable.put("csibm866", "Cp866"); - - // MIBenum: ???? - aliasTable.put("ibm868", "Cp868"); - aliasTable.put("ibm-868", "Cp868"); - aliasTable.put("cp868", "Cp868"); - aliasTable.put("868", "Cp868"); - - // MIBenum: 2054 - aliasTable.put("ibm869", "Cp869"); - aliasTable.put("ibm-869", "Cp869"); - aliasTable.put("cp869", "Cp869"); - aliasTable.put("869", "Cp869"); - aliasTable.put("cp-gr", "Cp869"); - aliasTable.put("csibm869", "Cp869"); - - // MIBenum: ???? - aliasTable.put("ibm870", "Cp870"); - aliasTable.put("ibm-870", "Cp870"); - aliasTable.put("cp870", "Cp870"); - aliasTable.put("870", "Cp870"); - - // MIBenum: ???? - aliasTable.put("ibm871", "Cp871"); - aliasTable.put("ibm-871", "Cp871"); - aliasTable.put("cp871", "Cp871"); - aliasTable.put("871", "Cp871"); - - // MIBenum: ???? - aliasTable.put("ibm874", "Cp874"); - aliasTable.put("ibm-874", "Cp874"); - aliasTable.put("cp874", "Cp874"); - aliasTable.put("874", "Cp874"); - - // MIBenum: ???? - aliasTable.put("ibm875", "Cp875"); - aliasTable.put("ibm-875", "Cp875"); - aliasTable.put("cp875", "Cp875"); - aliasTable.put("875", "Cp875"); - - // MIBenum: ???? - aliasTable.put("ibm918", "Cp918"); - aliasTable.put("ibm-918", "Cp918"); - aliasTable.put("cp918", "Cp918"); - aliasTable.put("918", "Cp918"); - - // MIBenum: ???? - aliasTable.put("ibm921", "Cp921"); - aliasTable.put("ibm-921", "Cp921"); - aliasTable.put("cp921", "Cp921"); - aliasTable.put("921", "Cp921"); - - // MIBenum: ???? - aliasTable.put("ibm922", "Cp922"); - aliasTable.put("ibm-922", "Cp922"); - aliasTable.put("cp922", "Cp922"); - aliasTable.put("922", "Cp922"); - - // MIBenum: ???? - aliasTable.put("ibm930", "Cp930"); /* MDA */ - aliasTable.put("ibm-930", "Cp930"); /* MDA */ - aliasTable.put("cp930", "Cp930"); /* MDA */ - aliasTable.put("930", "Cp930"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm933", "Cp933"); /* MDA */ - aliasTable.put("ibm-933", "Cp933"); /* MDA */ - aliasTable.put("cp933", "Cp933"); /* MDA */ - aliasTable.put("933", "Cp933"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm935", "Cp935"); /* MDA */ - aliasTable.put("ibm-935", "Cp935"); /* MDA */ - aliasTable.put("cp935", "Cp935"); /* MDA */ - aliasTable.put("935", "Cp935"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm937", "Cp937"); /* MDA */ - aliasTable.put("ibm-937", "Cp937"); /* MDA */ - aliasTable.put("cp937", "Cp937"); /* MDA */ - aliasTable.put("937", "Cp937"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm939", "Cp939"); /* MDA */ - aliasTable.put("ibm-939", "Cp939"); /* MDA */ - aliasTable.put("cp939", "Cp939"); /* MDA */ - aliasTable.put("939", "Cp939"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm942", "Cp942"); /* MDA */ - aliasTable.put("ibm-942", "Cp942"); /* MDA */ - aliasTable.put("cp942", "Cp942"); /* MDA */ - aliasTable.put("942", "Cp942"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm943", "Cp943"); /* ibm.3158 */ - aliasTable.put("ibm-943", "Cp943"); /* ibm.3158 */ - aliasTable.put("cp943", "Cp943"); /* ibm.3158 */ - aliasTable.put("943", "Cp943"); /* ibm.3158 */ - - // MIBenum: ???? - aliasTable.put("ibm948", "Cp948"); /* MDA */ - aliasTable.put("ibm-948", "Cp948"); /* MDA */ - aliasTable.put("cp948", "Cp948"); /* MDA */ - aliasTable.put("948", "Cp948"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm949", "Cp949"); /* MDA */ - aliasTable.put("ibm-949", "Cp949"); /* MDA */ - aliasTable.put("cp949", "Cp949"); /* MDA */ - aliasTable.put("949", "Cp949"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm950", "Cp950"); /* MDA */ - aliasTable.put("ibm-950", "Cp950"); /* MDA */ - aliasTable.put("cp950", "Cp950"); /* MDA */ - aliasTable.put("950", "Cp950"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm964", "Cp964"); /* MDA */ - aliasTable.put("ibm-964", "Cp964"); /* MDA */ - aliasTable.put("cp964", "Cp964"); /* MDA */ - aliasTable.put("964", "Cp964"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm970", "Cp970"); /* MDA */ - aliasTable.put("ibm-970", "Cp970"); /* MDA */ - aliasTable.put("cp970", "Cp970"); /* MDA */ - aliasTable.put("970", "Cp970"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm1006", "Cp1006"); - aliasTable.put("ibm-1006", "Cp1006"); - aliasTable.put("cp1006", "Cp1006"); - aliasTable.put("1006", "Cp1006"); - - // MIBenum: ???? - aliasTable.put("ibm1025", "Cp1025"); - aliasTable.put("ibm-1025", "Cp1025"); - aliasTable.put("cp1025", "Cp1025"); - aliasTable.put("1025", "Cp1025"); - - // MIBenum: ???? - aliasTable.put("ibm1026", "Cp1026"); - aliasTable.put("ibm-1026", "Cp1026"); - aliasTable.put("cp1026", "Cp1026"); - aliasTable.put("1026", "Cp1026"); - - // MIBenum: ???? - aliasTable.put("ibm1097", "Cp1097"); - aliasTable.put("ibm-1097", "Cp1097"); - aliasTable.put("cp1097", "Cp1097"); - aliasTable.put("1097", "Cp1097"); - - // MIBenum: ???? - aliasTable.put("ibm1098", "Cp1098"); - aliasTable.put("ibm-1098", "Cp1098"); - aliasTable.put("cp1098", "Cp1098"); - aliasTable.put("1098", "Cp1098"); - - // MIBenum: ???? - aliasTable.put("ibm1112", "Cp1112"); - aliasTable.put("ibm-1112", "Cp1112"); - aliasTable.put("cp1112", "Cp1112"); - aliasTable.put("1112", "Cp1112"); - - // MIBenum: ???? - aliasTable.put("ibm1122", "Cp1122"); - aliasTable.put("ibm-1122", "Cp1122"); - aliasTable.put("cp1122", "Cp1122"); - aliasTable.put("1122", "Cp1122"); - - // MIBenum: ???? - aliasTable.put("ibm1123", "Cp1123"); - aliasTable.put("ibm-1123", "Cp1123"); - aliasTable.put("cp1123", "Cp1123"); - aliasTable.put("1123", "Cp1123"); - - // MIBenum: ???? - aliasTable.put("ibm1124", "Cp1124"); - aliasTable.put("ibm-1124", "Cp1124"); - aliasTable.put("cp1124", "Cp1124"); - aliasTable.put("1124", "Cp1124"); - - // MIBenum: ???? - aliasTable.put("ibm1381", "Cp1381"); /* MDA */ - aliasTable.put("ibm-1381", "Cp1381"); /* MDA */ - aliasTable.put("cp1381", "Cp1381"); /* MDA */ - aliasTable.put("1381", "Cp1381"); /* MDA */ - - // MIBenum: ???? - aliasTable.put("ibm1383", "Cp1383"); /* MDA */ - aliasTable.put("ibm-1383", "Cp1383"); /* MDA */ - aliasTable.put("cp1383", "Cp1383"); /* MDA */ - aliasTable.put("1383", "Cp1383"); /* MDA */ - - // Specialized auto-detection for Japanese charsets - aliasTable.put("jis auto detect", "JISAutoDetect"); - - // MIBenum: 16/39 - aliasTable.put("jis", "ISO2022JP"); - aliasTable.put("iso-2022-jp", "ISO2022JP"); - aliasTable.put("csiso2022jp", "ISO2022JP"); - aliasTable.put("jis_encoding", "ISO2022JP"); - aliasTable.put("csjisencoding", "ISO2022JP"); - - // MIBenum: 17/2024 - aliasTable.put("windows-31j", "MS932"); - aliasTable.put("cswindows31j", "MS932"); - - // JIS-defined Shift JIS - aliasTable.put("\u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe", - "SJIS"); // JIS name - aliasTable.put("pck", "PCK"); // Case independent PCK alias - - if (sjisIsMS932) { - aliasTable.put("shift_jis", "MS932"); // IANA shift jis aliases - aliasTable.put("csshiftjis", "MS932"); // updated per 4556882 - aliasTable.put("x-sjis", "MS932"); - aliasTable.put("ms_kanji", "MS932"); - } else { - aliasTable.put("shift_jis", "SJIS"); // IANA shift jis aliases - aliasTable.put("csshiftjis", "SJIS"); - aliasTable.put("x-sjis", "SJIS"); - aliasTable.put("ms_kanji", "SJIS"); - } - - // MIBenum: 18 - // Japanese EUC - aliasTable.put("eucjis", "EUC_JP"); - aliasTable.put("euc-jp", "EUC_JP"); - aliasTable.put("eucjp", "EUC_JP"); - aliasTable.put("extended_unix_code_packed_format_for_japanese", - "EUC_JP"); - aliasTable.put("cseucpkdfmtjapanese", "EUC_JP"); - aliasTable.put("x-euc-jp", "EUC_JP"); - aliasTable.put("x-eucjp", "EUC_JP"); - aliasTable.put("eucjp-open", "EUC_JP_Solaris"); // 1.3.1_x compatibility - - // For handing only JIS0202 and JIS0208 in linux - aliasTable.put("euc-jp-linux", "EUC_JP_LINUX"); - - // MIBenum: 874 - aliasTable.put("windows-874", "MS874"); - - // MIBenum: 2250 - aliasTable.put("windows-1250", "Cp1250"); - - // MIBenum: 2251 - aliasTable.put("windows-1251", "Cp1251"); - aliasTable.put("ansi-1251", "Cp1251"); // Solaris ru_RU.ANSI1251 locale - - // MIBenum: 2252 - aliasTable.put("windows-1252", "Cp1252"); - - // MIBenum: 2253 - aliasTable.put("windows-1253", "Cp1253"); - - // MIBenum: 2254 - aliasTable.put("windows-1254", "Cp1254"); - - // MIBenum: 2255 - aliasTable.put("windows-1255", "Cp1255"); - - // MIBenum: 2256 - aliasTable.put("windows-1256", "Cp1256"); - - // MIBenum: 2257 - aliasTable.put("windows-1257", "Cp1257"); - - // MIBenum: 2258 - aliasTable.put("windows-1258", "Cp1258"); - - // MIBenum: ???? - aliasTable.put("ibm33722", "Cp33722"); /* MDA */ - aliasTable.put("ibm-33722", "Cp33722"); /* MDA */ - aliasTable.put("cp33722", "Cp33722"); /* MDA */ - aliasTable.put("33722", "Cp33722"); /* MDA */ - - // Russian KOI8-R - aliasTable.put("koi8-r", "KOI8_R"); - aliasTable.put("koi8", "KOI8_R"); - aliasTable.put("cskoi8r", "KOI8_R"); - - // Simplified Chinese - aliasTable.put("gb2312", "EUC_CN"); - aliasTable.put("gb2312-80", "EUC_CN"); - aliasTable.put("gb2312-1980", "EUC_CN"); - aliasTable.put("euc-cn", "EUC_CN"); - aliasTable.put("euccn", "EUC_CN"); - - aliasTable.put("big5", "Big5"); - aliasTable.put("big5hk", "Big5_HKSCS"); - aliasTable.put("big5-hkscs", "Big5_HKSCS"); - // Added for future compatibility, explicit mapping to Unicode 3.0 - aliasTable.put("big5-hkscs:unicode3.0", "Big5_HKSCS"); - aliasTable.put("big5_solaris", "Big5_Solaris"); - - // Traditional Chinese - aliasTable.put("cns11643", "EUC_TW"); - aliasTable.put("euc-tw", "EUC_TW"); - aliasTable.put("euctw", "EUC_TW"); - - // Korean - aliasTable.put("ksc5601", "EUC_KR"); - aliasTable.put("euc-kr", "EUC_KR"); - aliasTable.put("euckr", "EUC_KR"); - aliasTable.put("ks_c_5601-1987", "EUC_KR"); - aliasTable.put("ksc5601-1987", "EUC_KR"); - aliasTable.put("ksc5601_1987", "EUC_KR"); - aliasTable.put("ksc_5601", "EUC_KR"); - aliasTable.put("5601", "EUC_KR"); - - aliasTable.put("ksc5601-1992", "Johab"); - aliasTable.put("ksc5601_1992", "Johab"); - aliasTable.put("ms1361", "Johab"); - - aliasTable.put("windows-949", "MS949"); - - //MIBenum: 37 - aliasTable.put("iso-2022-kr", "ISO2022KR"); - aliasTable.put("csiso2022kr", "ISO2022KR"); - - // Thai - aliasTable.put("tis620.2533", "TIS620"); - aliasTable.put("tis-620", "TIS620"); // Linux name - - // X11 Compound Text - aliasTable.put("x-compound-text", "COMPOUND_TEXT"); - aliasTable.put("x11-compound_text", "COMPOUND_TEXT"); - - // Variants - aliasTable.put("cp942c", "Cp942C"); - aliasTable.put("cp943c", "Cp943C"); - aliasTable.put("cp949c", "Cp949C"); - aliasTable.put("iscii", "ISCII91"); - - installedAll = true; - } - } - - /** - * For Solaris: - * always returns "PCK" - * - * For other platforms: - * method returns "MS932" if the file.encoding property value is "MS932" - * or an alias of "MS932" - * otherwise, "SJIS", regardless of its - * actual file.encoding value. This method is called from the JIS - * Auto Detect converter. - */ - static String getSJISName() { - String encodeName = AccessController.doPrivileged( - new PrivilegedAction() { - public String run() { - String osName = System.getProperty("os.name"); - if (osName.equals("Solaris") || osName.equals("SunOS")){ - return "PCK"; - } - else { - return System.getProperty("file.encoding", null); - } - } - }); - - if (encodeName != null) { - if (encodeName.equals("MS932")) - return encodeName; - encodeName = aliasName(encodeName); - } - return (encodeName != null && encodeName.equals("MS932")) ? encodeName : "SJIS"; - } - - - static String getEUCJPName() { - String encodeName = AccessController.doPrivileged( - new PrivilegedAction() { - public String run() { - String osName = System.getProperty("os.name"); - if (osName.equals("Solaris") || osName.equals("SunOS")) - return "eucJP-open"; - else - return "EUC_JP"; - } - }); - return encodeName; - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/ConversionBufferFullException.java --- a/jdk/src/share/classes/sun/io/ConversionBufferFullException.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1996, 2007, 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; - - -/** - * The output buffer for a character conversion is full, but additional - * input remains to be converted - * - * @author Asmus Freytag - * - * @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE - * REMOVED IN J2SE 1.6. - */ -@Deprecated -public class ConversionBufferFullException - extends java.io.CharConversionException -{ - private static final long serialVersionUID = -6537318994265003622L; - - /** - * Constructs a BufferFullException with no detail message. - * A detail message is a String that describes this particular exception. - */ - public ConversionBufferFullException() { - super(); - } - - /** - * Constructs a BufferFullException with the specified detail message. - * A detail message is a String that describes this particular exception. - * @param s the String containing a detail message - */ - public ConversionBufferFullException(String s) { - super(s); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/Converters.java --- a/jdk/src/share/classes/sun/io/Converters.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,341 +0,0 @@ -/* - * Copyright (c) 1998, 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 java.io.UnsupportedEncodingException; -import java.lang.ref.SoftReference; -import java.util.Properties; - -/** - * Package-private utility class that caches the default converter classes and - * provides other logic common to both the ByteToCharConverter and - * CharToByteConverter classes. - * - * @author Mark Reinhold - * @since 1.2 - * - * @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE - * REMOVED IN J2SE 1.6. - */ -@Deprecated -public class Converters { - - private Converters() { } /* To prevent instantiation */ - - /* Lock for all static fields in this class */ - private static Object lock = Converters.class; - - /* Cached values of system properties */ - private static String converterPackageName = null; /* file.encoding.pkg */ - private static String defaultEncoding = null; /* file.encoding */ - - /* Converter type constants and names */ - public static final int BYTE_TO_CHAR = 0; - public static final int CHAR_TO_BYTE = 1; - private static final String[] converterPrefix = { "ByteToChar", - "CharToByte" }; - - - // -- Converter class cache -- - - private static final int CACHE_SIZE = 3; - - /* For the default charset, whatever it turns out to be */ - private static final Object DEFAULT_NAME = new Object(); - - /* Cached converter classes, CACHE_SIZE per converter type. Each cache - * entry is a soft reference to a two-object array; the first element of - * the array is the converter class, the second is an object (typically a - * string) representing the encoding name that was used to request the - * converter, e.g., - * - * ((Object[])classCache[CHAR_TO_BYTE][i].get())[0] - * - * will be a CharToByteConverter and - * - * ((Object[])classCache[CHAR_TO_BYTE][i].get())[1] - * - * will be the string encoding name used to request it, assuming that cache - * entry i is valid. - * - * Ordinarily we'd do this with a private static utility class, but since - * this code can be involved in the startup sequence it's important to keep - * the footprint down. - */ - @SuppressWarnings("unchecked") - private static SoftReference[][] classCache - = (SoftReference[][]) new SoftReference[][] { - new SoftReference[CACHE_SIZE], - new SoftReference[CACHE_SIZE] - }; - - private static void moveToFront(Object[] oa, int i) { - Object ob = oa[i]; - for (int j = i; j > 0; j--) - oa[j] = oa[j - 1]; - oa[0] = ob; - } - - private static Class cache(int type, Object encoding) { - SoftReference[] srs = classCache[type]; - for (int i = 0; i < CACHE_SIZE; i++) { - SoftReference sr = srs[i]; - if (sr == null) - continue; - Object[] oa = sr.get(); - if (oa == null) { - srs[i] = null; - continue; - } - if (oa[1].equals(encoding)) { - moveToFront(srs, i); - return (Class)oa[0]; - } - } - return null; - } - - private static Class cache(int type, Object encoding, Class c) { - SoftReference[] srs = classCache[type]; - srs[CACHE_SIZE - 1] = new SoftReference<>(new Object[] { c, encoding }); - moveToFront(srs, CACHE_SIZE - 1); - return c; - } - - /* Used to avoid doing expensive charset lookups for charsets that are not - * yet directly supported by NIO. - */ - public static boolean isCached(int type, String encoding) { - synchronized (lock) { - SoftReference[] srs = classCache[type]; - for (int i = 0; i < CACHE_SIZE; i++) { - SoftReference sr = srs[i]; - if (sr == null) - continue; - Object[] oa = sr.get(); - if (oa == null) { - srs[i] = null; - continue; - } - if (oa[1].equals(encoding)) - return true; - } - return false; - } - } - - - - /** Get the name of the converter package */ - private static String getConverterPackageName() { - String cp = converterPackageName; - if (cp != null) return cp; - java.security.PrivilegedAction pa = - new sun.security.action.GetPropertyAction("file.encoding.pkg"); - cp = java.security.AccessController.doPrivileged(pa); - if (cp != null) { - /* Property is set, so take it as the true converter package */ - converterPackageName = cp; - } else { - /* Fall back to sun.io */ - cp = "sun.io"; - } - return cp; - } - - public static String getDefaultEncodingName() { - synchronized (lock) { - if (defaultEncoding == null) { - java.security.PrivilegedAction pa = - new sun.security.action.GetPropertyAction("file.encoding"); - defaultEncoding = java.security.AccessController.doPrivileged(pa); - } - } - return defaultEncoding; - } - - public static void resetDefaultEncodingName() { - // This method should only be called during VM initialization. - if (sun.misc.VM.isBooted()) - return; - - synchronized (lock) { - defaultEncoding = "ISO-8859-1"; - Properties p = System.getProperties(); - p.setProperty("file.encoding", defaultEncoding); - System.setProperties(p); - } - } - - /** - * Get the class that implements the given type of converter for the named - * encoding, or throw an UnsupportedEncodingException if no such class can - * be found - */ - private static Class getConverterClass(int type, String encoding) - throws UnsupportedEncodingException - { - String enc = null; - - /* "ISO8859_1" is the canonical name for the ISO-Latin-1 encoding. - Native code in the JDK commonly uses the alias "8859_1" instead of - "ISO8859_1". We hardwire this alias here in order to avoid loading - the full alias table just for this case. */ - if (!encoding.equals("ISO8859_1")) { - if (encoding.equals("8859_1")) { - enc = "ISO8859_1"; - /* - * On Solaris with nl_langinfo() called in GetJavaProperties(): - * - * locale undefined -> NULL -> hardcoded default - * "C" locale -> "" -> hardcoded default (on 2.6) - * "C" locale -> "646" (on 2.7) - * "en_US" locale -> "ISO8859-1" - * "en_GB" locale -> "ISO8859-1" (on 2.7) - * "en_UK" locale -> "ISO8859-1" (on 2.6) - */ - } else if (encoding.equals("ISO8859-1")) { - enc = "ISO8859_1"; - } else if (encoding.equals("646")) { - enc = "ASCII"; - } else { - enc = CharacterEncoding.aliasName(encoding); - } - } - if (enc == null) { - enc = encoding; - } - - try { - return Class.forName(getConverterPackageName() - + "." + converterPrefix[type] + enc); - } catch(ClassNotFoundException e) { - throw new UnsupportedEncodingException(enc); - } - - } - - /** - * Instantiate the given converter class, or throw an - * UnsupportedEncodingException if it cannot be instantiated - */ - private static Object newConverter(String enc, Class c) - throws UnsupportedEncodingException - { - try { - return c.newInstance(); - } catch(InstantiationException e) { - throw new UnsupportedEncodingException(enc); - } catch(IllegalAccessException e) { - throw new UnsupportedEncodingException(enc); - } - } - - /** - * Create a converter object that implements the given type of converter - * for the given encoding, or throw an UnsupportedEncodingException if no - * appropriate converter class can be found and instantiated - */ - static Object newConverter(int type, String enc) - throws UnsupportedEncodingException - { - Class c; - synchronized (lock) { - c = cache(type, enc); - if (c == null) { - c = getConverterClass(type, enc); - if (!c.getName().equals("sun.io.CharToByteUTF8")) - cache(type, enc, c); - } - } - return newConverter(enc, c); - } - - /** - * Find the class that implements the given type of converter for the - * default encoding. If the default encoding cannot be determined or is - * not yet defined, return a class that implements the fallback default - * encoding, which is just ISO 8859-1. - */ - private static Class getDefaultConverterClass(int type) { - boolean fillCache = false; - Class c; - - /* First check the class cache */ - c = cache(type, DEFAULT_NAME); - if (c != null) - return c; - - /* Determine the encoding name */ - String enc = getDefaultEncodingName(); - if (enc != null) { - /* file.encoding has been set, so cache the converter class */ - fillCache = true; - } else { - /* file.encoding has not been set, so use a default encoding which - will not be cached */ - enc = "ISO8859_1"; - } - - /* We have an encoding name; try to find its class */ - try { - c = getConverterClass(type, enc); - if (fillCache) { - cache(type, DEFAULT_NAME, c); - } - } catch (UnsupportedEncodingException x) { - /* Can't find the default class, so fall back to ISO 8859-1 */ - try { - c = getConverterClass(type, "ISO8859_1"); - } catch (UnsupportedEncodingException y) { - throw new InternalError("Cannot find default " - + converterPrefix[type] - + " converter class"); - } - } - return c; - - } - - /** - * Create a converter object that implements the given type of converter - * for the default encoding, falling back to ISO 8859-1 if the default - * encoding cannot be determined. - */ - static Object newDefaultConverter(int type) { - Class c; - synchronized (lock) { - c = getDefaultConverterClass(type); - } - try { - return newConverter("", c); - } catch (UnsupportedEncodingException x) { - throw new InternalError("Cannot instantiate default converter" - + " class " + c.getName()); - } - } - -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/MalformedInputException.java --- a/jdk/src/share/classes/sun/io/MalformedInputException.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1996, 2007, 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; - - -/** -* The input string or input byte array to a character conversion -* contains a malformed sequence of characters or bytes. -* -* @author Asmus Freytag -* -* @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE -* REMOVED IN J2SE 1.6. -*/ -@Deprecated -public class MalformedInputException - extends java.io.CharConversionException -{ - private static final long serialVersionUID = 2585413228493157652L; - - /** - * Constructs a MalformedInputException with no detail message. - * A detail message is a String that describes this particular exception. - */ - public MalformedInputException() { - super(); - } - - /** - * Constructs a MalformedInputException with the specified detail message. - * A detail message is a String that describes this particular exception. - * @param s the String containing a detail message - */ - public MalformedInputException(String s) { - super(s); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/io/UnknownCharacterException.java --- a/jdk/src/share/classes/sun/io/UnknownCharacterException.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1996, 2007, 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; - - -/** -* A character conversion encountered a character -* that does not have an assigned mapping, and automatic -* substitution is not selected -* -* @author Asmus Freytag -* @deprecated Replaced by {@link java.nio.charset}. THIS API WILL BE -* REMOVED IN J2SE 1.6. -*/ -@Deprecated -public class UnknownCharacterException - extends java.io.CharConversionException -{ - private static final long serialVersionUID = -8563196502398436986L; - - /** - * Constructs a UnknownCharacterException with no detail message. - * A detail message is a String that describes this particular exception. - */ - public UnknownCharacterException() { - super(); - } - - /** - * Constructs a UnknownCharacterException with the specified detail message. - * A detail message is a String that describes this particular exception. - * @param s the String containing a detail message - */ - public UnknownCharacterException(String s) { - super(s); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/management/ManagementFactoryHelper.java --- a/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/management/ManagementFactoryHelper.java Mon Aug 29 14:29:23 2011 -0700 @@ -171,7 +171,8 @@ ObjectName result = objname; if (result == null) { synchronized (this) { - if (objname == null) { + result = objname; + if (result == null) { result = Util.newObjectName(LOGGING_MXBEAN_NAME); objname = result; } @@ -228,7 +229,8 @@ ObjectName result = objname; if (result == null) { synchronized (this) { - if (objname == null) { + result = objname; + if (result == null) { result = Util.newObjectName(BUFFER_POOL_MXBEAN_NAME + ",name=" + pool.getName()); objname = result; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/misc/JavaNioAccess.java --- a/jdk/src/share/classes/sun/misc/JavaNioAccess.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/misc/JavaNioAccess.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -25,6 +25,9 @@ package sun.misc; +import java.nio.Buffer; +import java.nio.ByteBuffer; + public interface JavaNioAccess { /** * Provides access to information on buffer usage. @@ -36,4 +39,18 @@ long getMemoryUsed(); } BufferPool getDirectBufferPool(); + + /** + * Constructs a direct ByteBuffer referring to the block of memory starting + * at the given memory address and and extending {@code cap} bytes. + * The {@code ob} parameter is an arbitrary object that is attached + * to the resulting buffer. + */ + ByteBuffer newDirectByteBuffer(long addr, int cap, Object ob); + + /** + * Truncates a buffer by changing its capacity to 0. + */ + void truncate(Buffer buf); + } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/misc/URLClassPath.java --- a/jdk/src/share/classes/sun/misc/URLClassPath.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/misc/URLClassPath.java Mon Aug 29 14:29:23 2011 -0700 @@ -717,7 +717,7 @@ try { ensureOpen(); } catch (IOException e) { - throw (InternalError) new InternalError().initCause(e); + throw new InternalError(e); } return index; } @@ -812,7 +812,7 @@ try { ensureOpen(); } catch (IOException e) { - throw (InternalError) new InternalError().initCause(e); + throw new InternalError(e); } final JarEntry entry = jar.getJarEntry(name); if (entry != null) @@ -900,7 +900,7 @@ try { newLoader.ensureOpen(); } catch (IOException e) { - throw (InternalError) new InternalError().initCause(e); + throw new InternalError(e); } final JarEntry entry = newLoader.jar.getJarEntry(name); if (entry != null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/ch/DirectBuffer.java --- a/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/ch/DirectBuffer.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -32,7 +32,7 @@ public long address(); - public Object viewedBuffer(); + public Object attachment(); public Cleaner cleaner(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/GB18030.java --- a/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/GB18030.java Mon Aug 29 14:29:23 2011 -0700 @@ -47,30 +47,6 @@ super("GB18030", ExtendedCharsets.aliasesFor("GB18030")); } - public short[] getDecoderIndex1() { - return decoderIndex1; - } - - public String[] getDecoderIndex2() { - return decoderIndex2; - } - - public short[] getSubDecoderIndex1() { - return index1; - } - - public String[] getSubDecoderIndex2() { - return index2; - } - - public short[] getEncoderIndex1() { - return encoderIndex1; - } - - public String[] getEncoderIndex2() { - return encoderIndex2; - } - public boolean contains(Charset cs) { return ((cs.name().equals("US-ASCII")) || (cs.name().equals("GBK")) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/IBM33722.java Mon Aug 29 14:29:23 2011 -0700 @@ -62,47 +62,6 @@ return new Encoder(this); } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - } - - public String getDecoderMappingTableG1() { - return Decoder.mappingTableG1; - } - - public String getDecoderMappingTableG2() { - return Decoder.mappingTableG2; - } - - public String getDecoderMappingTableG3() { - return Decoder.mappingTableG3; - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - } - - public String getEncoderIndex2a() { - return Encoder.index2a; - } - - public String getEncoderIndex2b() { - return Encoder.index2b; - } - protected static class Decoder extends CharsetDecoder { private final int G0 = 0; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/IBM964.java --- a/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/IBM964.java Mon Aug 29 14:29:23 2011 -0700 @@ -62,54 +62,6 @@ return new Encoder(this); } - - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public String getDecoderSingleByteMappings() { - return Decoder.byteToCharTable; - } - - public String getDecoderMappingTableG1() { - return Decoder.mappingTableG1; - } - - public String getDecoderMappingTableG2a2() { - return Decoder.mappingTableG2a2; - } - - public String getDecoderMappingTableG2ac() { - return Decoder.mappingTableG2ac; - } - - public String getDecoderMappingTableG2ad() { - return Decoder.mappingTableG2ad; - } - - public short[] getEncoderIndex1() { - return Encoder.index1; - - } - public String getEncoderIndex2() { - return Encoder.index2; - - } - public String getEncoderIndex2a() { - return Encoder.index2a; - } - - public String getEncoderIndex2b() { - return Encoder.index2b; - } - - public String getEncoderIndex2c() { - return Encoder.index2c; - } protected static class Decoder extends CharsetDecoder { private final int SS2 = 0x8E; private final int SS3 = 0x8F; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java --- a/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/ISCII91.java Mon Aug 29 14:29:23 2011 -0700 @@ -331,18 +331,6 @@ '\uffff' // ff -- This position shall not be used }; //end of table definition - /** - * This accessor is temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unnecessary and should be removed - */ - - public static char[] getDirectMapTable() { - return directMapTable; - } - private static final byte[] encoderMappingTable = { NO_CHAR,NO_CHAR, //0900 (byte)161,NO_CHAR, //0901 -- DEVANAGARI SIGN CANDRABINDU = anunasika @@ -474,20 +462,6 @@ NO_CHAR,NO_CHAR //097f -- reserved }; //end of table definition - - /** - * This accessor is temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unnecessary and should be removed - */ - - public static byte[] getEncoderMappingTable() { - return encoderMappingTable; - } - - private static class Decoder extends CharsetDecoder { private static final char ZWNJ_CHAR = '\u200c'; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -1000,18 +1000,11 @@ return REPLACE_CHAR; } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - public static short[] getIndex1() { + static short[] getIndex1() { return index1; } - public static String[] getIndex2() { + static String[] getIndex2() { return index2; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -65,19 +65,11 @@ return -1; } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static short[] getIndex1() { + static short[] getIndex1() { return index1; } - public static String[] getIndex2() { + static String[] getIndex2() { return index2; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -201,19 +201,11 @@ } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static short[] getIndex1() { + static short[] getIndex1() { return index1; } - public static String[] getIndex2() { + static String[] getIndex2() { return index2; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -42,21 +42,6 @@ 0x7E); } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static short[] getIndex1() { - return index1; - } - public static String[] getIndex2() { - return index2; - } - private final static String innerIndex0= "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -58,20 +58,6 @@ return -1; } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - public static short[] getIndex1() { - return index1; - } - public static String[] getIndex2() { - return index2; - } - private final static String innerIndex0= "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -41,21 +41,6 @@ 0x7E); } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static short[] getIndex1() { - return index1; - } - public static String[] getIndex2() { - return index2; - } - private final static String innerIndex0= "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+ "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java --- a/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java Mon Aug 29 14:29:23 2011 -0700 @@ -48,21 +48,6 @@ return -1; } - /** - * These accessors are temporarily supplied while sun.io - * converters co-exist with the sun.nio.cs.{ext} charset coders - * These facilitate sharing of conversion tables between the - * two co-existing implementations. When sun.io converters - * are made extinct these will be unncessary and should be removed - */ - - public static short[] getIndex1() { - return index1; - } - public static String[] getIndex2() { - return index2; - } - private final static String innerIndex0= "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/AccessorGenerator.java --- a/jdk/src/share/classes/sun/reflect/AccessorGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/AccessorGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -382,7 +382,7 @@ /** Returns class name in "internal" form (i.e., '/' separators instead of '.') */ protected static String getClassName - (Class c, boolean addPrefixAndSuffixForNonPrimitiveTypes) + (Class c, boolean addPrefixAndSuffixForNonPrimitiveTypes) { if (c.isPrimitive()) { if (c == Boolean.TYPE) { @@ -490,7 +490,7 @@ } } - protected short indexForPrimitiveType(Class type) { + protected short indexForPrimitiveType(Class type) { if (type == Boolean.TYPE) { return booleanIdx; } else if (type == Byte.TYPE) { @@ -511,7 +511,7 @@ throw new InternalError("Should have found primitive type"); } - protected short ctorIndexForPrimitiveType(Class type) { + protected short ctorIndexForPrimitiveType(Class type) { if (type == Boolean.TYPE) { return booleanCtorIdx; } else if (type == Byte.TYPE) { @@ -534,7 +534,7 @@ /** Returns true for widening or identity conversions for primitive types only */ - protected static boolean canWidenTo(Class type, Class otherType) { + protected static boolean canWidenTo(Class type, Class otherType) { if (!type.isPrimitive()) { return false; } @@ -609,8 +609,8 @@ called and returned true. */ protected static void emitWideningBytecodeForPrimitiveConversion (ClassFileAssembler cb, - Class fromType, - Class toType) + Class fromType, + Class toType) { // Note that widening conversions for integral types (i.e., "b2s", // "s2i") are no-ops since values on the Java stack are @@ -650,7 +650,7 @@ // Otherwise, was identity or no-op conversion. Fall through. } - protected short unboxingMethodForPrimitiveType(Class primType) { + protected short unboxingMethodForPrimitiveType(Class primType) { if (primType == Boolean.TYPE) { return booleanUnboxIdx; } else if (primType == Byte.TYPE) { @@ -671,7 +671,7 @@ throw new InternalError("Illegal primitive type " + primType.getName()); } - protected static final Class[] primitiveTypes = new Class[] { + protected static final Class[] primitiveTypes = new Class[] { Boolean.TYPE, Byte.TYPE, Character.TYPE, @@ -683,11 +683,11 @@ }; /** We don't consider "Void" to be a primitive type */ - protected static boolean isPrimitive(Class c) { + protected static boolean isPrimitive(Class c) { return (c.isPrimitive() && c != Void.TYPE); } - protected int typeSizeInStackSlots(Class c) { + protected int typeSizeInStackSlots(Class c) { if (c == Void.TYPE) { return 0; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java --- a/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -32,9 +32,9 @@ bootstrapping. */ class BootstrapConstructorAccessorImpl extends ConstructorAccessorImpl { - private Constructor constructor; + private Constructor constructor; - BootstrapConstructorAccessorImpl(Constructor c) { + BootstrapConstructorAccessorImpl(Constructor c) { this.constructor = c; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/ClassDefiner.java --- a/jdk/src/share/classes/sun/reflect/ClassDefiner.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/ClassDefiner.java Mon Aug 29 14:29:23 2011 -0700 @@ -51,8 +51,8 @@ than would otherwise be possible, decreasing run-time footprint.

      */ - static Class defineClass(String name, byte[] bytes, int off, int len, - final ClassLoader parentClassLoader) + static Class defineClass(String name, byte[] bytes, int off, int len, + final ClassLoader parentClassLoader) { ClassLoader newLoader = AccessController.doPrivileged( new PrivilegedAction() { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/ConstantPool.java --- a/jdk/src/share/classes/sun/reflect/ConstantPool.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/ConstantPool.java Mon Aug 29 14:29:23 2011 -0700 @@ -34,8 +34,8 @@ public class ConstantPool { // Number of entries in this constant pool (= maximum valid constant pool index) public int getSize() { return getSize0 (constantPoolOop); } - public Class getClassAt (int index) { return getClassAt0 (constantPoolOop, index); } - public Class getClassAtIfLoaded (int index) { return getClassAtIfLoaded0 (constantPoolOop, index); } + public Class getClassAt (int index) { return getClassAt0 (constantPoolOop, index); } + public Class getClassAtIfLoaded (int index) { return getClassAtIfLoaded0 (constantPoolOop, index); } // Returns either a Method or Constructor. // Static initializers are returned as Method objects. public Member getMethodAt (int index) { return getMethodAt0 (constantPoolOop, index); } @@ -64,8 +64,8 @@ private Object constantPoolOop; private native int getSize0 (Object constantPoolOop); - private native Class getClassAt0 (Object constantPoolOop, int index); - private native Class getClassAtIfLoaded0 (Object constantPoolOop, int index); + private native Class getClassAt0 (Object constantPoolOop, int index); + private native Class getClassAtIfLoaded0 (Object constantPoolOop, int index); private native Member getMethodAt0 (Object constantPoolOop, int index); private native Member getMethodAtIfLoaded0(Object constantPoolOop, int index); private native Field getFieldAt0 (Object constantPoolOop, int index); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/Label.java --- a/jdk/src/share/classes/sun/reflect/Label.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/Label.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,6 @@ package sun.reflect; -import java.util.Iterator; import java.util.List; import java.util.ArrayList; @@ -53,7 +52,7 @@ short patchBCI; int stackDepth; } - private List/**/ patches = new ArrayList(); + private List patches = new ArrayList<>(); public Label() { } @@ -67,8 +66,7 @@ } public void bind() { - for (Iterator iter = patches.iterator(); iter.hasNext(); ) { - PatchInfo patch = (PatchInfo) iter.next(); + for (PatchInfo patch : patches){ short curBCI = patch.asm.getLength(); short offset = (short) (curBCI - patch.instrBCI); patch.asm.emitShort(patch.patchBCI, offset); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java --- a/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,10 +25,8 @@ package sun.reflect; -import java.lang.reflect.*; import java.security.AccessController; import java.security.PrivilegedAction; -import sun.misc.Unsafe; /** Generator for sun.reflect.MethodAccessor and sun.reflect.ConstructorAccessor objects using bytecodes to @@ -50,11 +48,11 @@ private static volatile int constructorSymnum = 0; private static volatile int serializationConstructorSymnum = 0; - private Class declaringClass; - private Class[] parameterTypes; - private Class returnType; - private boolean isConstructor; - private boolean forSerialization; + private Class declaringClass; + private Class[] parameterTypes; + private Class returnType; + private boolean isConstructor; + private boolean forSerialization; private short targetMethodRef; private short invokeIdx; @@ -67,11 +65,11 @@ } /** This routine is not thread-safe */ - public MethodAccessor generateMethod(Class declaringClass, - String name, - Class[] parameterTypes, - Class returnType, - Class[] checkedExceptions, + public MethodAccessor generateMethod(Class declaringClass, + String name, + Class[] parameterTypes, + Class returnType, + Class[] checkedExceptions, int modifiers) { return (MethodAccessor) generate(declaringClass, @@ -86,9 +84,9 @@ } /** This routine is not thread-safe */ - public ConstructorAccessor generateConstructor(Class declaringClass, - Class[] parameterTypes, - Class[] checkedExceptions, + public ConstructorAccessor generateConstructor(Class declaringClass, + Class[] parameterTypes, + Class[] checkedExceptions, int modifiers) { return (ConstructorAccessor) generate(declaringClass, @@ -104,11 +102,11 @@ /** This routine is not thread-safe */ public SerializationConstructorAccessorImpl - generateSerializationConstructor(Class declaringClass, - Class[] parameterTypes, - Class[] checkedExceptions, + generateSerializationConstructor(Class declaringClass, + Class[] parameterTypes, + Class[] checkedExceptions, int modifiers, - Class targetConstructorClass) + Class targetConstructorClass) { return (SerializationConstructorAccessorImpl) generate(declaringClass, @@ -123,15 +121,15 @@ } /** This routine is not thread-safe */ - private MagicAccessorImpl generate(final Class declaringClass, + private MagicAccessorImpl generate(final Class declaringClass, String name, - Class[] parameterTypes, - Class returnType, - Class[] checkedExceptions, + Class[] parameterTypes, + Class returnType, + Class[] checkedExceptions, int modifiers, boolean isConstructor, boolean forSerialization, - Class serializationTargetClass) + Class serializationTargetClass) { ByteVector vec = ByteVectorFactory.create(); asm = new ClassFileAssembler(vec); @@ -340,7 +338,7 @@ // Output class information for non-primitive parameter types nonPrimitiveParametersBaseIdx = add(asm.cpi(), S2); for (int i = 0; i < parameterTypes.length; i++) { - Class c = parameterTypes[i]; + Class c = parameterTypes[i]; if (!isPrimitive(c)) { asm.emitConstantPoolUTF8(getClassName(c, false)); asm.emitConstantPoolClass(asm.cpi()); @@ -403,12 +401,8 @@ 0, bytes.length, declaringClass.getClassLoader()).newInstance(); - } catch (InstantiationException e) { - throw (InternalError) - new InternalError().initCause(e); - } catch (IllegalAccessException e) { - throw (InternalError) - new InternalError().initCause(e); + } catch (InstantiationException | IllegalAccessException e) { + throw new InternalError(e); } } }); @@ -530,7 +524,7 @@ byte count = 1; // both invokeinterface opcode's "count" as well as // num args of other invoke bytecodes for (int i = 0; i < parameterTypes.length; i++) { - Class paramType = parameterTypes[i]; + Class paramType = parameterTypes[i]; count += (byte) typeSizeInStackSlots(paramType); if (nextParamLabel != null) { nextParamLabel.bind(); @@ -577,7 +571,7 @@ nextParamLabel = new Label(); for (int j = 0; j < primitiveTypes.length; j++) { - Class c = primitiveTypes[j]; + Class c = primitiveTypes[j]; if (canWidenTo(c, paramType)) { if (l != null) { l.bind(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java --- a/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -31,11 +31,11 @@ afterward, switches to bytecode-based implementation */ class NativeConstructorAccessorImpl extends ConstructorAccessorImpl { - private Constructor c; + private Constructor c; private DelegatingConstructorAccessorImpl parent; private int numInvocations; - NativeConstructorAccessorImpl(Constructor c) { + NativeConstructorAccessorImpl(Constructor c) { this.c = c; } @@ -61,7 +61,7 @@ this.parent = parent; } - private static native Object newInstance0(Constructor c, Object[] args) + private static native Object newInstance0(Constructor c, Object[] args) throws InstantiationException, IllegalArgumentException, InvocationTargetException; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/Reflection.java --- a/jdk/src/share/classes/sun/reflect/Reflection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/Reflection.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,7 +26,6 @@ package sun.reflect; import java.lang.reflect.*; -import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -39,17 +38,17 @@ view, where they are sensitive or they may contain VM-internal objects. These Maps are updated very rarely. Rather than synchronize on each access, we use copy-on-write */ - private static volatile Map fieldFilterMap; - private static volatile Map methodFilterMap; + private static volatile Map,String[]> fieldFilterMap; + private static volatile Map,String[]> methodFilterMap; static { - Map map = new HashMap(); + Map,String[]> map = new HashMap,String[]>(); map.put(Reflection.class, new String[] {"fieldFilterMap", "methodFilterMap"}); map.put(System.class, new String[] {"security"}); fieldFilterMap = map; - methodFilterMap = new HashMap(); + methodFilterMap = new HashMap<>(); } /** Returns the class of the method realFramesToSkip @@ -61,7 +60,7 @@ java.lang.reflect.Method.invoke() and its implementation are completely ignored and do not count toward the number of "real" frames skipped. */ - public static native Class getCallerClass(int realFramesToSkip); + public static native Class getCallerClass(int realFramesToSkip); /** Retrieves the access flags written to the class file. For inner classes these flags may differ from those returned by @@ -71,18 +70,18 @@ to compatibility reasons; see 4471811. Only the values of the low 13 bits (i.e., a mask of 0x1FFF) are guaranteed to be valid. */ - private static native int getClassAccessFlags(Class c); + private static native int getClassAccessFlags(Class c); /** A quick "fast-path" check to try to avoid getCallerClass() calls. */ - public static boolean quickCheckMemberAccess(Class memberClass, + public static boolean quickCheckMemberAccess(Class memberClass, int modifiers) { return Modifier.isPublic(getClassAccessFlags(memberClass) & modifiers); } - public static void ensureMemberAccess(Class currentClass, - Class memberClass, + public static void ensureMemberAccess(Class currentClass, + Class memberClass, Object target, int modifiers) throws IllegalAccessException @@ -101,13 +100,13 @@ } } - public static boolean verifyMemberAccess(Class currentClass, + public static boolean verifyMemberAccess(Class currentClass, // Declaring class of field // or method - Class memberClass, + Class memberClass, // May be NULL in case of statics - Object target, - int modifiers) + Object target, + int modifiers) { // Verify that currentClass can access a field, method, or // constructor of memberClass, where that member's access bits are @@ -162,7 +161,7 @@ if (Modifier.isProtected(modifiers)) { // Additional test for protected members: JLS 6.6.2 - Class targetClass = (target == null ? memberClass : target.getClass()); + Class targetClass = (target == null ? memberClass : target.getClass()); if (targetClass != currentClass) { if (!gotIsSameClassPackage) { isSameClassPackage = isSameClassPackage(currentClass, memberClass); @@ -179,7 +178,7 @@ return true; } - private static boolean isSameClassPackage(Class c1, Class c2) { + private static boolean isSameClassPackage(Class c1, Class c2) { return isSameClassPackage(c1.getClassLoader(), c1.getName(), c2.getClassLoader(), c2.getName()); } @@ -234,8 +233,8 @@ } } - static boolean isSubclassOf(Class queryClass, - Class ofClass) + static boolean isSubclassOf(Class queryClass, + Class ofClass) { while (queryClass != null) { if (queryClass == ofClass) { @@ -247,31 +246,31 @@ } // fieldNames must contain only interned Strings - public static synchronized void registerFieldsToFilter(Class containingClass, + public static synchronized void registerFieldsToFilter(Class containingClass, String ... fieldNames) { fieldFilterMap = registerFilter(fieldFilterMap, containingClass, fieldNames); } // methodNames must contain only interned Strings - public static synchronized void registerMethodsToFilter(Class containingClass, + public static synchronized void registerMethodsToFilter(Class containingClass, String ... methodNames) { methodFilterMap = registerFilter(methodFilterMap, containingClass, methodNames); } - private static Map registerFilter(Map map, - Class containingClass, String ... names) { + private static Map,String[]> registerFilter(Map,String[]> map, + Class containingClass, String ... names) { if (map.get(containingClass) != null) { throw new IllegalArgumentException ("Filter already registered: " + containingClass); } - map = new HashMap(map); + map = new HashMap,String[]>(map); map.put(containingClass, names); return map; } - public static Field[] filterFields(Class containingClass, + public static Field[] filterFields(Class containingClass, Field[] fields) { if (fieldFilterMap == null) { // Bootstrapping @@ -280,7 +279,7 @@ return (Field[])filter(fields, fieldFilterMap.get(containingClass)); } - public static Method[] filterMethods(Class containingClass, Method[] methods) { + public static Method[] filterMethods(Class containingClass, Method[] methods) { if (methodFilterMap == null) { // Bootstrapping return methods; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/ReflectionFactory.java --- a/jdk/src/share/classes/sun/reflect/ReflectionFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/ReflectionFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -161,7 +161,7 @@ } } - public ConstructorAccessor newConstructorAccessor(Constructor c) { + public ConstructorAccessor newConstructorAccessor(Constructor c) { checkInitted(); Class declaringClass = c.getDeclaringClass(); @@ -250,14 +250,14 @@ /** Creates a new java.lang.reflect.Constructor. Access checks as per java.lang.reflect.AccessibleObject are not overridden. */ - public Constructor newConstructor(Class declaringClass, - Class[] parameterTypes, - Class[] checkedExceptions, - int modifiers, - int slot, - String signature, - byte[] annotations, - byte[] parameterAnnotations) + public Constructor newConstructor(Class declaringClass, + Class[] parameterTypes, + Class[] checkedExceptions, + int modifiers, + int slot, + String signature, + byte[] annotations, + byte[] parameterAnnotations) { return langReflectAccess().newConstructor(declaringClass, parameterTypes, @@ -281,13 +281,13 @@ /** Gets the ConstructorAccessor object for a java.lang.reflect.Constructor */ - public ConstructorAccessor getConstructorAccessor(Constructor c) { + public ConstructorAccessor getConstructorAccessor(Constructor c) { return langReflectAccess().getConstructorAccessor(c); } /** Sets the ConstructorAccessor object for a java.lang.reflect.Constructor */ - public void setConstructorAccessor(Constructor c, + public void setConstructorAccessor(Constructor c, ConstructorAccessor accessor) { langReflectAccess().setConstructorAccessor(c, accessor); @@ -320,8 +320,8 @@ // // - public Constructor newConstructorForSerialization - (Class classToInstantiate, Constructor constructorToCall) + public Constructor newConstructorForSerialization + (Class classToInstantiate, Constructor constructorToCall) { // Fast path if (constructorToCall.getDeclaringClass() == classToInstantiate) { @@ -334,18 +334,18 @@ constructorToCall.getExceptionTypes(), constructorToCall.getModifiers(), constructorToCall.getDeclaringClass()); - Constructor c = newConstructor(constructorToCall.getDeclaringClass(), - constructorToCall.getParameterTypes(), - constructorToCall.getExceptionTypes(), - constructorToCall.getModifiers(), - langReflectAccess(). - getConstructorSlot(constructorToCall), - langReflectAccess(). - getConstructorSignature(constructorToCall), - langReflectAccess(). - getConstructorAnnotations(constructorToCall), - langReflectAccess(). - getConstructorParameterAnnotations(constructorToCall)); + Constructor c = newConstructor(constructorToCall.getDeclaringClass(), + constructorToCall.getParameterTypes(), + constructorToCall.getExceptionTypes(), + constructorToCall.getModifiers(), + langReflectAccess(). + getConstructorSlot(constructorToCall), + langReflectAccess(). + getConstructorSignature(constructorToCall), + langReflectAccess(). + getConstructorAnnotations(constructorToCall), + langReflectAccess(). + getConstructorParameterAnnotations(constructorToCall)); setConstructorAccessor(c, acc); return c; } @@ -393,9 +393,7 @@ try { inflationThreshold = Integer.parseInt(val); } catch (NumberFormatException e) { - throw (RuntimeException) - new RuntimeException("Unable to parse property sun.reflect.inflationThreshold"). - initCause(e); + throw new RuntimeException("Unable to parse property sun.reflect.inflationThreshold", e); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java --- a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -30,7 +30,7 @@ class UnsafeFieldAccessorFactory { static FieldAccessor newFieldAccessor(Field field, boolean override) { - Class type = field.getType(); + Class type = field.getType(); boolean isStatic = Modifier.isStatic(field.getModifiers()); boolean isFinal = Modifier.isFinal(field.getModifiers()); boolean isVolatile = Modifier.isVolatile(field.getModifiers()); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java --- a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -40,12 +40,15 @@ static final Unsafe unsafe = Unsafe.getUnsafe(); protected final Field field; - protected final int fieldOffset; + protected final long fieldOffset; protected final boolean isFinal; UnsafeFieldAccessorImpl(Field field) { this.field = field; - fieldOffset = unsafe.fieldOffset(field); + if (Modifier.isStatic(field.getModifiers())) + fieldOffset = unsafe.staticFieldOffset(field); + else + fieldOffset = unsafe.objectFieldOffset(field); isFinal = Modifier.isFinal(field.getModifiers()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java --- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -40,6 +40,7 @@ * @since 1.5 */ class AnnotationInvocationHandler implements InvocationHandler, Serializable { + private static final long serialVersionUID = 6182022883658399397L; private final Class type; private final Map memberValues; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java --- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java Mon Aug 29 14:29:23 2011 -0700 @@ -187,6 +187,7 @@ * TypeNotPresentException if a referenced annotation type is not * available at runtime */ + @SuppressWarnings("unchecked") private static Annotation parseAnnotation(ByteBuffer buf, ConstantPool constPool, Class container, @@ -200,7 +201,7 @@ annotationClass = (Class)parseSig(sig, container); } catch (IllegalArgumentException ex) { // support obsolete early jsr175 format class files - annotationClass = constPool.getClassAt(typeIndex); + annotationClass = (Class)constPool.getClassAt(typeIndex); } } catch (NoClassDefFoundError e) { if (exceptionOnMissingAnnotationClass) @@ -256,7 +257,7 @@ Class type, Map memberValues) { return (Annotation) Proxy.newProxyInstance( - type.getClassLoader(), new Class[] { type }, + type.getClassLoader(), new Class[] { type }, new AnnotationInvocationHandler(type, memberValues)); } @@ -287,6 +288,7 @@ * The member must be of the indicated type. If it is not, this * method returns an AnnotationTypeMismatchExceptionProxy. */ + @SuppressWarnings("unchecked") public static Object parseMemberValue(Class memberType, ByteBuffer buf, ConstantPool constPool, @@ -411,6 +413,7 @@ * u2 const_name_index; * } enum_const_value; */ + @SuppressWarnings({"rawtypes", "unchecked"}) private static Object parseEnumValue(Class enumType, ByteBuffer buf, ConstantPool constPool, Class container) { @@ -433,7 +436,7 @@ return Enum.valueOf(enumType, constName); } catch(IllegalArgumentException e) { return new EnumConstantNotPresentExceptionProxy( - (Class)enumType, constName); + (Class>)enumType, constName); } } @@ -451,6 +454,7 @@ * If the array values do not match arrayType, an * AnnotationTypeMismatchExceptionProxy will be returned. */ + @SuppressWarnings("unchecked") private static Object parseArray(Class arrayType, ByteBuffer buf, ConstantPool constPool, @@ -479,7 +483,7 @@ } else if (componentType == Class.class) { return parseClassArray(length, buf, constPool, container); } else if (componentType.isEnum()) { - return parseEnumArray(length, (Class)componentType, buf, + return parseEnumArray(length, (Class>)componentType, buf, constPool, container); } else { assert componentType.isAnnotation(); @@ -679,7 +683,7 @@ return typeMismatch ? exceptionProxy(tag) : result; } - private static Object parseEnumArray(int length, Class enumType, + private static Object parseEnumArray(int length, Class> enumType, ByteBuffer buf, ConstantPool constPool, Class container) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java --- a/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -34,6 +34,7 @@ * @since 1.5 */ class AnnotationTypeMismatchExceptionProxy extends ExceptionProxy { + private static final long serialVersionUID = 7844069490309503934L; private Method member; private String foundType; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java --- a/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -24,7 +24,6 @@ */ package sun.reflect.annotation; -import java.lang.annotation.*; /** * ExceptionProxy for EnumConstantNotPresentException. @@ -33,10 +32,11 @@ * @since 1.5 */ public class EnumConstantNotPresentExceptionProxy extends ExceptionProxy { - Class enumType; + private static final long serialVersionUID = -604662101303187330L; + Class> enumType; String constName; - public EnumConstantNotPresentExceptionProxy(Class enumType, + public EnumConstantNotPresentExceptionProxy(Class> enumType, String constName) { this.enumType = enumType; this.constName = constName; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java --- a/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -33,6 +33,7 @@ * @since 1.5 */ public class TypeNotPresentExceptionProxy extends ExceptionProxy { + private static final long serialVersionUID = 5565925172427947573L; String typeName; Throwable cause; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java --- a/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/parser/SignatureParser.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -25,17 +25,15 @@ package sun.reflect.generics.parser; - import java.lang.reflect.GenericSignatureFormatError; import java.util.*; import sun.reflect.generics.tree.*; - /** * Parser for type signatures, as defined in the Java Virtual -// Machine Specification (JVMS) chapter 4. + * Machine Specification (JVMS) chapter 4. * Converts the signatures into an abstract syntax tree (AST) representation. -// See the package sun.reflect.generics.tree for details of the AST. + * See the package sun.reflect.generics.tree for details of the AST. */ public class SignatureParser { // The input is conceptually a character stream (though currently it's @@ -58,8 +56,8 @@ // if (current != x {error("expected an x"); // // where x is some character constant. - // The assertion inidcates, that, as currently written, - // the code should nver reach this point unless the input is an + // The assertion indicates, that, as currently written, + // the code should never reach this point unless the input is an // x. On the other hand, the test is there to check the legality // of the input wrt to a given production. It may be that at a later // time the code might be called directly, and if the input is @@ -68,7 +66,7 @@ private char[] input; // the input signature private int index = 0; // index into the input -// used to mark end of input + // used to mark end of input private static final char EOI = ':'; private static final boolean DEBUG = false; @@ -104,6 +102,11 @@ index++; } + // For debugging, prints current character to the end of the input. + private String remainder() { + return new String(input, index, input.length-index); + } + // Match c against a "set" of characters private boolean matches(char c, char... set) { for (char e : set) { @@ -117,8 +120,17 @@ // Currently throws a GenericSignatureFormatError. private Error error(String errorMsg) { - if (DEBUG) System.out.println("Parse error:" + errorMsg); - return new GenericSignatureFormatError(); + return new GenericSignatureFormatError("Signature Parse error: " + errorMsg + + "\n\tRemaining input: " + remainder()); + } + + /** + * Verify the parse has made forward progress; throw an exception + * if no progress. + */ + private void progress(int startingPosition) { + if (index <= startingPosition) + throw error("Failure to make progress!"); } /** @@ -163,6 +175,7 @@ /** * Parses a type signature * and produces an abstract syntax tree representing it. + * * @param s a string representing the input type signature * @return An abstract syntax tree for a type signature * corresponding to the input string @@ -183,38 +196,58 @@ // and when it completes parsing, it leaves the input at the first // character after the input parses. - // parse a class signature based on the implicit input. + /* + * Note on grammar conventions: a trailing "*" matches zero or + * more occurrences, a trailing "+" matches one or more occurrences, + * "_opt" indicates an optional component. + */ + + /** + * ClassSignature: + * FormalTypeParameters_opt SuperclassSignature SuperinterfaceSignature* + */ private ClassSignature parseClassSignature() { + // parse a class signature based on the implicit input. assert(index == 0); return ClassSignature.make(parseZeroOrMoreFormalTypeParameters(), - parseClassTypeSignature(), + parseClassTypeSignature(), // Only rule for SuperclassSignature parseSuperInterfaces()); } private FormalTypeParameter[] parseZeroOrMoreFormalTypeParameters(){ - if (current() == '<') { return parseFormalTypeParameters();} - else {return new FormalTypeParameter[0];} + if (current() == '<') { + return parseFormalTypeParameters(); + } else { + return new FormalTypeParameter[0]; + } } - + /** + * FormalTypeParameters: + * "<" FormalTypeParameter+ ">" + */ private FormalTypeParameter[] parseFormalTypeParameters(){ - Collection ftps = - new ArrayList(3); + List ftps = new ArrayList<>(3); assert(current() == '<'); // should not have been called at all - if (current() != '<') { throw error("expected <");} + if (current() != '<') { throw error("expected '<'");} advance(); ftps.add(parseFormalTypeParameter()); while (current() != '>') { + int startingPosition = index; ftps.add(parseFormalTypeParameter()); + progress(startingPosition); } advance(); - FormalTypeParameter[] ftpa = new FormalTypeParameter[ftps.size()]; - return ftps.toArray(ftpa); + return ftps.toArray(new FormalTypeParameter[ftps.size()]); } + /** + * FormalTypeParameter: + * Identifier ClassBound InterfaceBound* + */ private FormalTypeParameter parseFormalTypeParameter(){ String id = parseIdentifier(); - FieldTypeSignature[] bs = parseZeroOrMoreBounds(); + FieldTypeSignature[] bs = parseBounds(); return FormalTypeParameter.make(id, bs); } @@ -229,7 +262,8 @@ case '[': case ':': case '>': - case '<': return result.toString(); + case '<': + return result.toString(); default:{ result.append(c); advance(); @@ -239,26 +273,42 @@ } return result.toString(); } + /** + * FieldTypeSignature: + * ClassTypeSignature + * ArrayTypeSignature + * TypeVariableSignature + */ + private FieldTypeSignature parseFieldTypeSignature() { + return parseFieldTypeSignature(true); + } - private FieldTypeSignature parseFieldTypeSignature() { + private FieldTypeSignature parseFieldTypeSignature(boolean allowArrays) { switch(current()) { case 'L': return parseClassTypeSignature(); case 'T': return parseTypeVariableSignature(); case '[': - return parseArrayTypeSignature(); + if (allowArrays) + return parseArrayTypeSignature(); + else + throw error("Array signature not allowed here."); default: throw error("Expected Field Type Signature"); } } + /** + * ClassTypeSignature: + * "L" PackageSpecifier_opt SimpleClassTypeSignature ClassTypeSignatureSuffix* ";" + */ private ClassTypeSignature parseClassTypeSignature(){ assert(current() == 'L'); if (current() != 'L') { throw error("expected a class type");} advance(); - List scts = - new ArrayList(5); - scts.add(parseSimpleClassTypeSignature(false)); + List scts = new ArrayList<>(5); + scts.add(parsePackageNameAndSimpleClassTypeSignature()); + parseClassTypeSignatureSuffix(scts); if (current() != ';') throw error("expected ';' got '" + current() + "'"); @@ -267,25 +317,65 @@ return ClassTypeSignature.make(scts); } - private SimpleClassTypeSignature parseSimpleClassTypeSignature(boolean dollar){ - String id = parseIdentifier(); - char c = current(); - switch (c) { - case ';': - case '/': - return SimpleClassTypeSignature.make(id, dollar, new TypeArgument[0]) ; - case '<': { - return SimpleClassTypeSignature.make(id, dollar, parseTypeArguments()); + /** + * PackageSpecifier: + * Identifier "/" PackageSpecifier* + */ + private SimpleClassTypeSignature parsePackageNameAndSimpleClassTypeSignature() { + // Parse both any optional leading PackageSpecifier as well as + // the following SimpleClassTypeSignature. + + String id = parseIdentifier(); + + if (current() == '/') { // package name + StringBuilder idBuild = new StringBuilder(id); + + while(current() == '/') { + advance(); + idBuild.append("."); + idBuild.append(parseIdentifier()); } - default: {throw error("expected < or ; or /");} - } + id = idBuild.toString(); + } + + switch (current()) { + case ';': + return SimpleClassTypeSignature.make(id, false, new TypeArgument[0]); // all done! + case '<': + if (DEBUG) System.out.println("\t remainder: " + remainder()); + return SimpleClassTypeSignature.make(id, false, parseTypeArguments()); + default: + throw error("expected '<' or ';' but got " + current()); + } } + /** + * SimpleClassTypeSignature: + * Identifier TypeArguments_opt + */ + private SimpleClassTypeSignature parseSimpleClassTypeSignature(boolean dollar){ + String id = parseIdentifier(); + char c = current(); + + switch (c) { + case ';': + case '.': + return SimpleClassTypeSignature.make(id, dollar, new TypeArgument[0]) ; + case '<': + return SimpleClassTypeSignature.make(id, dollar, parseTypeArguments()); + default: + throw error("expected '<' or ';' or '.', got '" + c + "'."); + } + } + + /** + * ClassTypeSignatureSuffix: + * "." SimpleClassTypeSignature + */ private void parseClassTypeSignatureSuffix(List scts) { - while (current() == '/' || current() == '.') { - boolean dollar = (current() == '.'); + while (current() == '.') { advance(); - scts.add(parseSimpleClassTypeSignature(dollar)); + scts.add(parseSimpleClassTypeSignature(true)); } } @@ -294,10 +384,14 @@ else {return new TypeArgument[0];} } + /** + * TypeArguments: + * "<" TypeArgument+ ">" + */ private TypeArgument[] parseTypeArguments() { - Collection tas = new ArrayList(3); + List tas = new ArrayList<>(3); assert(current() == '<'); - if (current() != '<') { throw error("expected <");} + if (current() != '<') { throw error("expected '<'");} advance(); tas.add(parseTypeArgument()); while (current() != '>') { @@ -305,10 +399,14 @@ tas.add(parseTypeArgument()); } advance(); - TypeArgument[] taa = new TypeArgument[tas.size()]; - return tas.toArray(taa); + return tas.toArray(new TypeArgument[tas.size()]); } + /** + * TypeArgument: + * WildcardIndicator_opt FieldTypeSignature + * "*" + */ private TypeArgument parseTypeArgument() { FieldTypeSignature[] ub, lb; ub = new FieldTypeSignature[1]; @@ -334,18 +432,20 @@ ub[0] = SimpleClassTypeSignature.make("java.lang.Object", false, ta); return Wildcard.make(ub, lb); } - default: return parseFieldTypeSignature(); + default: + return parseFieldTypeSignature(); } } - // TypeVariableSignature -> T identifier - - private TypeVariableSignature parseTypeVariableSignature(){ + /** + * TypeVariableSignature: + * "T" Identifier ";" + */ + private TypeVariableSignature parseTypeVariableSignature() { assert(current() == 'T'); if (current() != 'T') { throw error("expected a type variable usage");} advance(); - TypeVariableSignature ts = - TypeVariableSignature.make(parseIdentifier()); + TypeVariableSignature ts = TypeVariableSignature.make(parseIdentifier()); if (current() != ';') { throw error("; expected in signature of type variable named" + ts.getIdentifier()); @@ -354,16 +454,21 @@ return ts; } - // ArrayTypeSignature -> [ TypeSignature - + /** + * ArrayTypeSignature: + * "[" TypeSignature + */ private ArrayTypeSignature parseArrayTypeSignature() { if (current() != '[') {throw error("expected array type signature");} advance(); return ArrayTypeSignature.make(parseTypeSignature()); } - // TypeSignature -> BaseType | FieldTypeSignature - + /** + * TypeSignature: + * FieldTypeSignature + * BaseType + */ private TypeSignature parseTypeSignature() { switch (current()) { case 'B': @@ -373,8 +478,11 @@ case 'I': case 'J': case 'S': - case 'Z':return parseBaseType(); - default: return parseFieldTypeSignature(); + case 'Z': + return parseBaseType(); + + default: + return parseFieldTypeSignature(); } } @@ -408,12 +516,18 @@ assert(false); throw error("expected primitive type"); } - } + } } - private FieldTypeSignature[] parseZeroOrMoreBounds() { - Collection fts = - new ArrayList(3); + /** + * ClassBound: + * ":" FieldTypeSignature_opt + * + * InterfaceBound: + * ":" FieldTypeSignature + */ + private FieldTypeSignature[] parseBounds() { + List fts = new ArrayList<>(3); if (current() == ':') { advance(); @@ -430,24 +544,31 @@ advance(); fts.add(parseFieldTypeSignature()); } - } + } else + error("Bound expected"); - FieldTypeSignature[] fta = new FieldTypeSignature[fts.size()]; - return fts.toArray(fta); + return fts.toArray(new FieldTypeSignature[fts.size()]); } + /** + * SuperclassSignature: + * ClassTypeSignature + */ private ClassTypeSignature[] parseSuperInterfaces() { - Collection cts = - new ArrayList(5); + List cts = new ArrayList<>(5); while(current() == 'L') { cts.add(parseClassTypeSignature()); } - ClassTypeSignature[] cta = new ClassTypeSignature[cts.size()]; - return cts.toArray(cta); + return cts.toArray(new ClassTypeSignature[cts.size()]); } - // parse a method signature based on the implicit input. + + /** + * MethodTypeSignature: + * FormalTypeParameters_opt "(" TypeSignature* ")" ReturnType ThrowsSignature* + */ private MethodTypeSignature parseMethodTypeSignature() { + // Parse a method signature based on the implicit input. FieldTypeSignature[] ets; assert(index == 0); @@ -457,19 +578,19 @@ parseZeroOrMoreThrowsSignatures()); } - // (TypeSignature*) + // "(" TypeSignature* ")" private TypeSignature[] parseFormalParameters() { - if (current() != '(') {throw error("expected (");} + if (current() != '(') {throw error("expected '('");} advance(); TypeSignature[] pts = parseZeroOrMoreTypeSignatures(); - if (current() != ')') {throw error("expected )");} + if (current() != ')') {throw error("expected ')'");} advance(); return pts; } - // TypeSignature* + // TypeSignature* private TypeSignature[] parseZeroOrMoreTypeSignatures() { - Collection ts = new ArrayList(); + List ts = new ArrayList<>(); boolean stop = false; while (!stop) { switch(current()) { @@ -484,47 +605,46 @@ case 'L': case 'T': case '[': { - ts.add(parseTypeSignature()); - break; - } + ts.add(parseTypeSignature()); + break; + } default: stop = true; } } - /* while( matches(current(), - 'B', 'C', 'D', 'F', 'I', 'J', 'S', 'Z', 'L', 'T', '[') - ) { - ts.add(parseTypeSignature()); - }*/ - TypeSignature[] ta = new TypeSignature[ts.size()]; - return ts.toArray(ta); + return ts.toArray(new TypeSignature[ts.size()]); } - // ReturnType -> V | TypeSignature - + /** + * ReturnType: + * TypeSignature + * VoidDescriptor + */ private ReturnType parseReturnType(){ - if (current() == 'V') { + if (current() == 'V') { advance(); return VoidDescriptor.make(); - } else return parseTypeSignature(); + } else + return parseTypeSignature(); } // ThrowSignature* private FieldTypeSignature[] parseZeroOrMoreThrowsSignatures(){ - Collection ets = - new ArrayList(3); + List ets = new ArrayList<>(3); while( current() == '^') { ets.add(parseThrowsSignature()); } - FieldTypeSignature[] eta = new FieldTypeSignature[ets.size()]; - return ets.toArray(eta); + return ets.toArray(new FieldTypeSignature[ets.size()]); } - // ThrowSignature -> ^ FieldTypeSignature - + /** + * ThrowsSignature: + * "^" ClassTypeSignature + * "^" TypeVariableSignature + */ private FieldTypeSignature parseThrowsSignature() { assert(current() == '^'); if (current() != '^') { throw error("expected throws signature");} advance(); - return parseFieldTypeSignature(); + return parseFieldTypeSignature(false); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java --- a/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -157,7 +157,7 @@ @Override public boolean equals(Object o) { if (o instanceof TypeVariable) { - TypeVariable that = (TypeVariable) o; + TypeVariable that = (TypeVariable) o; GenericDeclaration thatDecl = that.getGenericDeclaration(); String thatName = that.getName(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java --- a/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java Mon Aug 29 14:29:23 2011 -0700 @@ -69,7 +69,7 @@ // first, extract type parameter subtree(s) from AST FormalTypeParameter[] ftps = getTree().getFormalTypeParameters(); // create array to store reified subtree(s) - TypeVariable[] tps = new TypeVariable[ftps.length]; + TypeVariable[] tps = new TypeVariable[ftps.length]; // reify all subtrees for (int i = 0; i < ftps.length; i++) { Reifier r = getReifier(); // obtain visitor diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java --- a/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/scope/AbstractScope.java Mon Aug 29 14:29:23 2011 -0700 @@ -83,8 +83,8 @@ * @return the requested type variable, if found */ public TypeVariable lookup(String name) { - TypeVariable[] tas = getRecvr().getTypeParameters(); - for (TypeVariable/**/ tv : tas) { + TypeVariable[] tas = getRecvr().getTypeParameters(); + for (TypeVariable tv : tas) { if (tv.getName().equals(name)) {return tv;} } return getEnclosingScope().lookup(name); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java --- a/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/scope/ConstructorScope.java Mon Aug 29 14:29:23 2011 -0700 @@ -32,10 +32,10 @@ * This class represents the scope containing the type variables of * a constructor. */ -public class ConstructorScope extends AbstractScope { +public class ConstructorScope extends AbstractScope> { // constructor is private to enforce use of factory method - private ConstructorScope(Constructor c){ + private ConstructorScope(Constructor c){ super(c); } @@ -61,7 +61,7 @@ * @param m - A Constructor whose scope we want to obtain * @return The type-variable scope for the constructor m */ - public static ConstructorScope make(Constructor c) { + public static ConstructorScope make(Constructor c) { return new ConstructorScope(c); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java --- a/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/tree/ClassSignature.java Mon Aug 29 14:29:23 2011 -0700 @@ -52,5 +52,5 @@ public ClassTypeSignature getSuperclass(){return superclass;} public ClassTypeSignature[] getSuperInterfaces(){return superInterfaces;} - public void accept(Visitor v){v.visitClassSignature(this);} + public void accept(Visitor v){v.visitClassSignature(this);} } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java --- a/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java Mon Aug 29 14:29:23 2011 -0700 @@ -57,5 +57,5 @@ public ReturnType getReturnType(){return returnType;} public FieldTypeSignature[] getExceptionTypes(){return exceptionTypes;} - public void accept(Visitor v){v.visitMethodTypeSignature(this);} + public void accept(Visitor v){v.visitMethodTypeSignature(this);} } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/acl/AclEntryImpl.java --- a/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/acl/AclEntryImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,6 @@ package sun.security.acl; import java.util.*; -import java.io.*; import java.security.Principal; import java.security.acl.*; @@ -162,6 +161,7 @@ /** * Clones an AclEntry. */ + @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly public synchronized Object clone() { AclEntryImpl cloned; cloned = new AclEntryImpl(user); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/action/PutAllAction.java --- a/jdk/src/share/classes/sun/security/action/PutAllAction.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/action/PutAllAction.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -41,9 +41,9 @@ public class PutAllAction implements PrivilegedAction { private final Provider provider; - private final Map map; + private final Map map; - public PutAllAction(Provider provider, Map map) { + public PutAllAction(Provider provider, Map map) { this.provider = provider; this.map = map; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ec/ECDSASignature.java --- a/jdk/src/share/classes/sun/security/ec/ECDSASignature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ec/ECDSASignature.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -25,10 +25,8 @@ package sun.security.ec; -import java.io.IOException; import java.nio.ByteBuffer; import java.math.BigInteger; -import java.util.Arrays; import java.security.*; import java.security.interfaces.*; @@ -36,7 +34,6 @@ import sun.security.jca.JCAUtil; import sun.security.util.*; -import sun.security.x509.AlgorithmId; /** * ECDSA signature implementation. This class currently supports the diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ec/ECKeyFactory.java --- a/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ec/ECKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -61,7 +61,9 @@ public final static Provider ecInternalProvider; static { - final Provider p = new Provider("SunEC-Internal", 1.0d, null) {}; + final Provider p = new Provider("SunEC-Internal", 1.0d, null) { + private static final long serialVersionUID = 970685700309471261L; + }; AccessController.doPrivileged(new PrivilegedAction() { public Void run() { p.put("KeyFactory.EC", "sun.security.ec.ECKeyFactory"); @@ -262,12 +264,12 @@ if (key instanceof ECPublicKey) { ECPublicKey ecKey = (ECPublicKey)key; if (ECPublicKeySpec.class.isAssignableFrom(keySpec)) { - return (T) new ECPublicKeySpec( + return keySpec.cast(new ECPublicKeySpec( ecKey.getW(), ecKey.getParams() - ); + )); } else if (X509EncodedKeySpec.class.isAssignableFrom(keySpec)) { - return (T) new X509EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new X509EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException ("KeySpec must be ECPublicKeySpec or " @@ -275,13 +277,13 @@ } } else if (key instanceof ECPrivateKey) { if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec)) { - return (T) new PKCS8EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded())); } else if (ECPrivateKeySpec.class.isAssignableFrom(keySpec)) { ECPrivateKey ecKey = (ECPrivateKey)key; - return (T) new ECPrivateKeySpec( + return keySpec.cast(new ECPrivateKeySpec( ecKey.getS(), ecKey.getParams() - ); + )); } else { throw new InvalidKeySpecException ("KeySpec must be ECPrivateKeySpec or " diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ec/ECParameters.java --- a/jdk/src/share/classes/sun/security/ec/ECParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ec/ECParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -326,9 +326,9 @@ protected T engineGetParameterSpec(Class spec) throws InvalidParameterSpecException { if (spec.isAssignableFrom(ECParameterSpec.class)) { - return (T)paramSpec; + return spec.cast(paramSpec); } else if (spec.isAssignableFrom(ECGenParameterSpec.class)) { - return (T)new ECGenParameterSpec(getCurveName(paramSpec)); + return spec.cast(new ECGenParameterSpec(getCurveName(paramSpec))); } else { throw new InvalidParameterSpecException ("Only ECParameterSpec and ECGenParameterSpec supported"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jca/GetInstance.java --- a/jdk/src/share/classes/sun/security/jca/GetInstance.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jca/GetInstance.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -149,7 +149,7 @@ * There are overloaded methods for all the permutations. */ - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm) throws NoSuchAlgorithmException { // in the almost all cases, the first service will work // avoid taking long path if so @@ -181,7 +181,7 @@ throw failure; } - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm, Object param) throws NoSuchAlgorithmException { List services = getServices(type, algorithm); NoSuchAlgorithmException failure = null; @@ -200,25 +200,25 @@ } } - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { return getInstance(getService(type, algorithm, provider), clazz); } - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm, Object param, String provider) throws NoSuchAlgorithmException, NoSuchProviderException { return getInstance(getService(type, algorithm, provider), clazz, param); } - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm, Provider provider) throws NoSuchAlgorithmException { return getInstance(getService(type, algorithm, provider), clazz); } - public static Instance getInstance(String type, Class clazz, + public static Instance getInstance(String type, Class clazz, String algorithm, Object param, Provider provider) throws NoSuchAlgorithmException { return getInstance(getService(type, algorithm, provider), clazz, param); @@ -231,14 +231,14 @@ * Signature class. */ - public static Instance getInstance(Service s, Class clazz) + public static Instance getInstance(Service s, Class clazz) throws NoSuchAlgorithmException { Object instance = s.newInstance(null); checkSuperClass(s, instance.getClass(), clazz); return new Instance(s.getProvider(), instance); } - public static Instance getInstance(Service s, Class clazz, + public static Instance getInstance(Service s, Class clazz, Object param) throws NoSuchAlgorithmException { Object instance = s.newInstance(param); checkSuperClass(s, instance.getClass(), clazz); @@ -249,8 +249,8 @@ * Check is subClass is a subclass of superClass. If not, * throw a NoSuchAlgorithmException. */ - public static void checkSuperClass(Service s, Class subClass, - Class superClass) throws NoSuchAlgorithmException { + public static void checkSuperClass(Service s, Class subClass, + Class superClass) throws NoSuchAlgorithmException { if (superClass == null) { return; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jca/ProviderList.java --- a/jdk/src/share/classes/sun/security/jca/ProviderList.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jca/ProviderList.java Mon Aug 29 14:29:23 2011 -0700 @@ -69,6 +69,7 @@ // used to avoid explicit null checks in various places private static final Provider EMPTY_PROVIDER = new Provider("##Empty##", 1.0d, "initialization in progress") { + private static final long serialVersionUID = 1151354171352296389L; // override getService() to return null slightly faster public Service getService(String type, String algorithm) { return null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jca/Providers.java --- a/jdk/src/share/classes/sun/security/jca/Providers.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jca/Providers.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,10 +25,7 @@ package sun.security.jca; -import java.util.*; - import java.security.Provider; -import java.security.Security; /** * Collection of methods to get and set provider list. Also includes @@ -97,11 +94,11 @@ // sun.security.util.ManifestEntryVerifier and java.security.SecureRandom. public static Provider getSunProvider() { try { - Class clazz = Class.forName(jarVerificationProviders[0]); + Class clazz = Class.forName(jarVerificationProviders[0]); return (Provider)clazz.newInstance(); } catch (Exception e) { try { - Class clazz = Class.forName(BACKUP_PROVIDER_CLASSNAME); + Class clazz = Class.forName(BACKUP_PROVIDER_CLASSNAME); return (Provider)clazz.newInstance(); } catch (Exception ee) { throw new RuntimeException("Sun provider not found", e); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/GSSUtil.java --- a/jdk/src/share/classes/sun/security/jgss/GSSUtil.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/GSSUtil.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -316,24 +316,25 @@ * no Subject present or a Vector which contains 0 or more * matching GSSCredentialSpi objects. */ - public static Vector searchSubject(final GSSNameSpi name, - final Oid mech, - final boolean initiate, - final Class credCls) { + public static Vector + searchSubject(final GSSNameSpi name, + final Oid mech, + final boolean initiate, + final Class credCls) { debug("Search Subject for " + getMechStr(mech) + (initiate? " INIT" : " ACCEPT") + " cred (" + (name == null? "<>" : name.toString()) + ", " + credCls.getName() + ")"); final AccessControlContext acc = AccessController.getContext(); try { - Vector creds = + Vector creds = AccessController.doPrivileged - (new PrivilegedExceptionAction() { - public Vector run() throws Exception { + (new PrivilegedExceptionAction>() { + public Vector run() throws Exception { Subject accSubj = Subject.getSubject(acc); - Vector result = null; + Vector result = null; if (accSubj != null) { - result = new Vector(); + result = new Vector(); Iterator iterator = accSubj.getPrivateCredentials (GSSCredentialImpl.class).iterator(); @@ -347,7 +348,7 @@ if (ce.getClass().equals(credCls) && (name == null || name.equals((Object) ce.getName()))) { - result.add(ce); + result.add(credCls.cast(ce)); } else { debug("......Discard element"); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/CipherHelper.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -139,6 +139,7 @@ return flag; } + @SuppressWarnings("fallthrough") byte[] calculateChecksum(int alg, byte[] header, byte[] trailer, byte[] data, int start, int len, int tokenId) throws GSSException { @@ -1265,7 +1266,7 @@ // Note: When using this RC4 based encryption type, the sequence number // is always sent in big-endian rather than little-endian order. byte[] seqNum = new byte[4]; - token.writeBigEndian(token.getSequenceNumber(), seqNum); + WrapToken.writeBigEndian(token.getSequenceNumber(), seqNum); // Krb5Token.debug("\narcFourEncrypt:" + Krb5Token.getHexBytes(all)); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -1310,6 +1310,8 @@ * The session key returned by inquireSecContext(KRB5_INQ_SSPI_SESSION_KEY) */ static class KerberosSessionKey implements Key { + private static final long serialVersionUID = 699307378954123869L; + private final EncryptionKey key; KerberosSessionKey(EncryptionKey key) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java Mon Aug 29 14:29:23 2011 -0700 @@ -35,6 +35,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.security.Provider; +import java.util.Locale; /** * Implements the GSSNameSpi for the krb5 mechanism. @@ -184,7 +185,7 @@ } catch (UnknownHostException e) { // use hostname as it is } - hostName = hostName.toLowerCase(); + hostName = hostName.toLowerCase(Locale.ENGLISH); temp = temp.append('/').append(hostName); return temp.toString(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java Mon Aug 29 14:29:23 2011 -0700 @@ -193,6 +193,8 @@ // Each time new keys are read from KeyTab objects in the private // credentials set, old ones are removed and new ones added. public static class KeysFromKeyTab extends KerberosKey { + private static final long serialVersionUID = 8238092170252746927L; + public KeysFromKeyTab(KerberosKey key) { super(key.getPrincipal(), key.getEncoded(), key.getKeyType(), key.getVersionNumber()); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/MessageToken.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -27,12 +27,10 @@ import org.ietf.jgss.*; import sun.security.jgss.*; -import sun.security.krb5.*; import java.io.InputStream; import java.io.OutputStream; import java.io.IOException; import java.io.ByteArrayInputStream; -import java.security.GeneralSecurityException; import java.security.MessageDigest; /** @@ -184,7 +182,7 @@ try { gssHeader = new GSSHeader(is); - if (!gssHeader.getOid().equals(OID)) { + if (!gssHeader.getOid().equals((Object)OID)) { throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1, getTokenName(tokenId)); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java --- a/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java Mon Aug 29 14:29:23 2011 -0700 @@ -56,15 +56,17 @@ static T find(Subject subject, String serverPrincipal, String clientPrincipal, Class credClass) { - return (T)findAux(subject, serverPrincipal, clientPrincipal, credClass, - true); + // findAux returns T if oneOnly. + return credClass.cast(findAux(subject, serverPrincipal, + clientPrincipal, credClass, true)); } + @SuppressWarnings("unchecked") // findAux returns List if !oneOnly. static List findMany(Subject subject, String serverPrincipal, String clientPrincipal, Class credClass) { - return (List)findAux(subject, serverPrincipal, clientPrincipal, credClass, - false); + return (List)findAux(subject, serverPrincipal, clientPrincipal, + credClass, false); } /** @@ -73,6 +75,7 @@ * * @return the private credentials */ + // Returns T if oneOnly and List if !oneOnly. private static Object findAux(Subject subject, String serverPrincipal, String clientPrincipal, Class credClass, boolean oneOnly) { @@ -98,11 +101,11 @@ } } else if (credClass == KerberosKey.class) { // We are looking for credentials for the serverPrincipal - Iterator iterator = - subject.getPrivateCredentials(credClass).iterator(); + Iterator iterator = + subject.getPrivateCredentials(KerberosKey.class).iterator(); while (iterator.hasNext()) { - T t = iterator.next(); - String name = ((KerberosKey)t).getPrincipal().getName(); + KerberosKey t = iterator.next(); + String name = t.getPrincipal().getName(); if (serverPrincipal == null || serverPrincipal.equals(name)) { if (DEBUG) { System.out.println("Found " + @@ -116,7 +119,7 @@ // belong to the same principal serverPrincipal = name; } - answer.add(t); + answer.add(credClass.cast(t)); } } } @@ -129,6 +132,7 @@ while (iterator.hasNext()) { Object obj = iterator.next(); if (obj instanceof KerberosTicket) { + @SuppressWarnings("unchecked") KerberosTicket ticket = (KerberosTicket)obj; if (DEBUG) { System.out.println("Found ticket for " @@ -180,7 +184,7 @@ serverPrincipal = ticket.getServer().getName(); } - answer.add((T)ticket); + answer.add(credClass.cast(ticket)); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java --- a/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -1016,7 +1016,7 @@ // get the peer name for the mechanism if (mechContext != null) { GSSNameImpl targName = (GSSNameImpl)mechContext.getTargName(); - peerName = (GSSNameSpi) targName.getElement(internal_mech); + peerName = targName.getElement(internal_mech); return peerName; } else { if (DEBUG) { @@ -1032,7 +1032,7 @@ // get the src name for the mechanism if (mechContext != null) { GSSNameImpl srcName = (GSSNameImpl)mechContext.getSrcName(); - myName = (GSSNameSpi) srcName.getElement(internal_mech); + myName = srcName.getElement(internal_mech); return myName; } else { if (DEBUG) { @@ -1064,8 +1064,8 @@ if (delegCred.getUsage() == GSSCredential.INITIATE_ONLY) { initiate = true; } - GSSCredentialSpi mechCred = (GSSCredentialSpi) - delegCred.getElement(internal_mech, initiate); + GSSCredentialSpi mechCred = + delegCred.getElement(internal_mech, initiate); SpNegoCredElement cred = new SpNegoCredElement(mechCred); return cred.getInternalCred(); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java --- a/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -113,8 +113,7 @@ } GSSCredElement credElement = - getCredFromSubject((GSSNameElement) nname, - (usage == GSSCredential.INITIATE_ONLY)); + getCredFromSubject(nname, (usage == GSSCredential.INITIATE_ONLY)); if (credElement == null) { // No cred in the Subject diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java --- a/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Mon Aug 29 14:29:23 2011 -0700 @@ -52,7 +52,7 @@ "sun.security.jgss.wrapper.NativeGSSFactory"; private static final String LIB_PROP = "sun.security.jgss.lib"; private static final String DEBUG_PROP = "sun.security.nativegss.debug"; - private static HashMap MECH_MAP; + private static HashMap MECH_MAP; static final Provider INSTANCE = new SunNativeProvider(); static boolean DEBUG; static void debug(String message) { @@ -66,8 +66,9 @@ static { MECH_MAP = - AccessController.doPrivileged(new PrivilegedAction() { - public HashMap run() { + AccessController.doPrivileged( + new PrivilegedAction>() { + public HashMap run() { DEBUG = Boolean.parseBoolean (System.getProperty(DEBUG_PROP)); try { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/krb5/Checksum.java --- a/jdk/src/share/classes/sun/security/krb5/Checksum.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/krb5/Checksum.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -199,7 +199,7 @@ if (cksumType != cksum.cksumType) return false; CksumType cksumEngine = CksumType.getInstance(cksumType); - return cksumEngine.isChecksumEqual(checksum, cksum.checksum); + return CksumType.isChecksumEqual(checksum, cksum.checksum); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/krb5/Config.java --- a/jdk/src/share/classes/sun/security/krb5/Config.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/krb5/Config.java Mon Aug 29 14:29:23 2011 -0700 @@ -45,7 +45,6 @@ import java.util.List; import sun.net.dns.ResolverConfiguration; import sun.security.krb5.internal.crypto.EType; -import sun.security.krb5.internal.ktab.*; import sun.security.krb5.internal.Krb5; /** @@ -233,15 +232,18 @@ * @return the value found in config file, returns null if no value * matched with the key is found. */ - private String getDefault(String k, Hashtable t) { + private String getDefault(String k, Hashtable t) { String result = null; String key; if (stanzaTable != null) { - for (Enumeration e = t.keys(); e.hasMoreElements(); ) { - key = (String)e.nextElement(); + for (Enumeration e = t.keys(); e.hasMoreElements(); ) { + key = e.nextElement(); Object ob = t.get(key); if (ob instanceof Hashtable) { - result = getDefault(k, (Hashtable)ob); + @SuppressWarnings("unchecked") // Checked with an instanceof check + Hashtable table = + (Hashtable)ob; + result = getDefault(k, table); if (result != null) { return result; } @@ -276,15 +278,20 @@ * @param section the name of the section. * @return the default value, null is returned if it cannot be found. */ + // stanzaTable leads to a lot of unchecked casts since its value type is + // STANZATABLE = String | Hashtable + @SuppressWarnings("unchecked") public String getDefault(String name, String section) { String stanzaName; String result = null; - Hashtable subTable; + Hashtable subTable; if (stanzaTable != null) { - for (Enumeration e = stanzaTable.keys(); e.hasMoreElements(); ) { - stanzaName = (String)e.nextElement(); - subTable = (Hashtable)stanzaTable.get(stanzaName); + for (Enumeration e = stanzaTable.keys(); + e.hasMoreElements(); ) { + stanzaName = e.nextElement(); + subTable = (Hashtable) + stanzaTable.get(stanzaName); if (stanzaName.equalsIgnoreCase(section)) { if (subTable.containsKey(name)) { return (String)(subTable.get(name)); @@ -292,7 +299,8 @@ } else if (subTable.containsKey(section)) { Object ob = subTable.get(section); if (ob instanceof Hashtable) { - Hashtable temp = (Hashtable)ob; + Hashtable temp = + (Hashtable)ob; if (temp.containsKey(name)) { Object object = temp.get(name); if (object instanceof Vector) { @@ -819,10 +827,10 @@ /** * Compares the key with the known keys to see if it exists. */ - private boolean exists(String key, Vector v) { + private boolean exists(String key, Vector v) { boolean exists = false; for (int i = 0; i < v.size(); i++) { - if (((String)(v.elementAt(i))).equals(key)) { + if (v.elementAt(i).equals(key)) { exists = true; } } @@ -837,12 +845,15 @@ listTable(stanzaTable); } - private void listTable(Hashtable table) { - Vector v = new Vector(); + // stanzaTable leads to a lot of unchecked casts since its value type is + // STANZATABLE = String | Hashtable + @SuppressWarnings("unchecked") + private void listTable(Hashtable table) { + Vector v = new Vector(); String key; if (stanzaTable != null) { - for (Enumeration e = table.keys(); e.hasMoreElements(); ) { - key = (String)e.nextElement(); + for (Enumeration e = table.keys(); e.hasMoreElements(); ) { + key = e.nextElement(); Object object = table.get(key); if (table == stanzaTable) { System.out.println("[" + key + "]"); @@ -850,7 +861,7 @@ if (object instanceof Hashtable) { if (table != stanzaTable) System.out.println("\t" + key + " = {"); - listTable((Hashtable)object); + listTable((Hashtable)object); if (table != stanzaTable) System.out.println("\t}"); @@ -858,10 +869,9 @@ System.out.println("\t" + key + " = " + (String)table.get(key)); } else if (object instanceof Vector) { - v = (Vector)object; + v = (Vector)object; for (int i = 0; i < v.size(); i++) { - System.out.println("\t" + key + " = " + - (String)v.elementAt(i)); + System.out.println("\t" + key + " = " + v.elementAt(i)); } } } @@ -906,7 +916,7 @@ ls.add(type); } } - if (ls.size() == 0) { + if (ls.isEmpty()) { if (DEBUG) { System.out.println( "no supported default etypes for " + enctypes); @@ -1296,7 +1306,7 @@ sb.append(obj); sb.append('\n'); } else if (obj instanceof Hashtable) { - Hashtable tab = (Hashtable)obj; + Hashtable tab = (Hashtable)obj; for (Object o: tab.keySet()) { sb.append(prefix); sb.append(o); @@ -1305,7 +1315,7 @@ sb.append(prefix + "}\n"); } } else if (obj instanceof Vector) { - Vector v = (Vector)obj; + Vector v = (Vector)obj; for (Object o: v.toArray()) { toStringIndented(prefix + " ", o, sb); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java --- a/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -26,12 +26,9 @@ package sun.security.krb5; import java.util.Arrays; -import java.util.Enumeration; import java.util.Hashtable; -import java.util.NoSuchElementException; import java.util.Random; import java.util.StringTokenizer; -import java.util.List; import javax.naming.*; import javax.naming.directory.*; @@ -80,7 +77,7 @@ // the initial context constructor. This avoids having the initial // context constructor call itself (when processing the URL // argument in the getAttributes call). - Context ctx = NamingManager.getURLContext("dns", new Hashtable(0)); + Context ctx = NamingManager.getURLContext("dns", new Hashtable<>(0)); if (!(ctx instanceof DirContext)) { return null; // cannot create a DNS context } @@ -141,7 +138,7 @@ // the initial context constructor. This avoids having the initial // context constructor call itself (when processing the URL // argument in the getAttributes call). - Context ctx = NamingManager.getURLContext("dns", new Hashtable(0)); + Context ctx = NamingManager.getURLContext("dns", new Hashtable<>(0)); if (!(ctx instanceof DirContext)) { return null; // cannot create a DNS context } @@ -263,7 +260,7 @@ * See http://www.ietf.org/rfc/rfc2782.txt */ -static class SrvRecord implements Comparable { +static class SrvRecord implements Comparable { int priority; int weight; @@ -295,8 +292,7 @@ * Sort records in ascending order of priority value. For records with * equal priority move those with weight 0 to the top of the list. */ - public int compareTo(Object o) { - SrvRecord that = (SrvRecord) o; + public int compareTo(SrvRecord that) { if (priority > that.priority) { return 1; // this > that } else if (priority < that.priority) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/krb5/PrincipalName.java --- a/jdk/src/share/classes/sun/security/krb5/PrincipalName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/krb5/PrincipalName.java Mon Aug 29 14:29:23 2011 -0700 @@ -35,6 +35,7 @@ import sun.security.util.*; import java.net.*; import java.util.Vector; +import java.util.Locale; import java.io.IOException; import java.math.BigInteger; import sun.security.krb5.internal.ccache.CCacheOutputStream; @@ -389,14 +390,14 @@ // Looks if canonicalized is a longer format of hostName, // we accept cases like // bunny -> bunny.rabbit.hole - if (canonicalized.toLowerCase() - .startsWith(hostName.toLowerCase()+".")) { + if (canonicalized.toLowerCase(Locale.ENGLISH).startsWith( + hostName.toLowerCase(Locale.ENGLISH)+".")) { hostName = canonicalized; } } catch (UnknownHostException e) { // no canonicalization, use old } - nameParts[1] = hostName.toLowerCase(); + nameParts[1] = hostName.toLowerCase(Locale.ENGLISH); } nameStrings = nameParts; nameType = type; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java --- a/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java Mon Aug 29 14:29:23 2011 -0700 @@ -69,9 +69,9 @@ try { FileCredentialsCache fcc = new FileCredentialsCache(); if (cache == null) { - cacheName = fcc.getDefaultCacheName(); + cacheName = FileCredentialsCache.getDefaultCacheName(); } else { - cacheName = fcc.checkValidation(cache); + cacheName = FileCredentialsCache.checkValidation(cache); } if ((cacheName == null) || !(new File(cacheName)).exists()) { // invalid cache name or the file doesn't exist @@ -105,7 +105,7 @@ String name) { try { FileCredentialsCache fcc = new FileCredentialsCache(); - cacheName = fcc.checkValidation(name); + cacheName = FileCredentialsCache.checkValidation(name); if (cacheName == null) { // invalid cache name or the file doesn't exist return null; @@ -123,7 +123,7 @@ static synchronized FileCredentialsCache New(PrincipalName principal) { try { FileCredentialsCache fcc = new FileCredentialsCache(); - cacheName = fcc.getDefaultCacheName(); + cacheName = FileCredentialsCache.getDefaultCacheName(); fcc.init(principal, cacheName); return fcc; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/ContentInfo.java --- a/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/ContentInfo.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -163,9 +163,9 @@ } public byte[] getData() throws IOException { - if (contentType.equals(DATA_OID) || - contentType.equals(OLD_DATA_OID) || - contentType.equals(TIMESTAMP_TOKEN_INFO_OID)) { + if (contentType.equals((Object)DATA_OID) || + contentType.equals((Object)OLD_DATA_OID) || + contentType.equals((Object)TIMESTAMP_TOKEN_INFO_OID)) { if (content == null) return null; else diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/PKCS10.java --- a/jdk/src/share/classes/sun/security/pkcs/PKCS10.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS10.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -26,7 +26,6 @@ package sun.security.pkcs; -import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.io.IOException; import java.math.BigInteger; @@ -225,7 +224,7 @@ */ AlgorithmId algId = null; try { - algId = AlgorithmId.getAlgorithmId(signature.getAlgorithm()); + algId = AlgorithmId.get(signature.getAlgorithm()); } catch (NoSuchAlgorithmException nsae) { throw new SignatureException(nsae); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/PKCS7.java --- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java Mon Aug 29 14:29:23 2011 -0700 @@ -153,12 +153,13 @@ contentType = contentInfo.contentType; DerValue content = contentInfo.getContent(); - if (contentType.equals(ContentInfo.SIGNED_DATA_OID)) { + if (contentType.equals((Object)ContentInfo.SIGNED_DATA_OID)) { parseSignedData(content); - } else if (contentType.equals(ContentInfo.OLD_SIGNED_DATA_OID)) { + } else if (contentType.equals((Object)ContentInfo.OLD_SIGNED_DATA_OID)) { // This is for backwards compatibility with JDK 1.1.x parseOldSignedData(content); - } else if (contentType.equals(ContentInfo.NETSCAPE_CERT_SEQUENCE_OID)){ + } else if (contentType.equals((Object) + ContentInfo.NETSCAPE_CERT_SEQUENCE_OID)){ parseNetscapeCertChain(content); } else { throw new ParsingException("content type " + contentType + @@ -477,9 +478,7 @@ byte[] encoded = certificates[i].getEncoded(); implCerts[i] = new X509CertImpl(encoded); } catch (CertificateException ce) { - IOException ie = new IOException(ce.getMessage()); - ie.initCause(ce); - throw ie; + throw new IOException(ce); } } } @@ -501,9 +500,7 @@ byte[] encoded = crl.getEncoded(); implCRLs.add(new X509CRLImpl(encoded)); } catch (CRLException ce) { - IOException ie = new IOException(ce.getMessage()); - ie.initCause(ce); - throw ie; + throw new IOException(ce); } } } @@ -562,7 +559,7 @@ intResult.addElement(signerInfo); } } - if (intResult.size() != 0) { + if (!intResult.isEmpty()) { SignerInfo[] result = new SignerInfo[intResult.size()]; intResult.copyInto(result); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java --- a/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -208,7 +208,7 @@ throw new InstantiationException(); } - Class keyClass = null; + Class keyClass = null; try { keyClass = Class.forName(classname); } catch (ClassNotFoundException e) { @@ -342,9 +342,9 @@ BigInteger version = val.data.getBigInteger(); - if (!version.equals(this.version)) { + if (!version.equals(PKCS8Key.version)) { throw new IOException("version mismatch: (supported: " + - Debug.toHexString(this.version) + + Debug.toHexString(PKCS8Key.version) + ", parsed: " + Debug.toHexString(version)); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java --- a/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -320,11 +320,11 @@ {new Byte(DerValue.tag_Sequence)} // SignatureTimestampToken }; - private static final Class[] VALUE_CLASSES = new Class[18]; + private static final Class[] VALUE_CLASSES = new Class[18]; static { try { - Class str = Class.forName("[Ljava.lang.String;"); + Class str = Class.forName("[Ljava.lang.String;"); VALUE_CLASSES[0] = null; // not used VALUE_CLASSES[1] = str; // EMailAddress diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs/SignerInfo.java --- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java Mon Aug 29 14:29:23 2011 -0700 @@ -36,7 +36,6 @@ import sun.security.x509.AlgorithmId; import sun.security.x509.X500Name; import sun.security.x509.KeyUsageExtension; -import sun.security.x509.PKIXExtensions; import sun.misc.HexDumpEncoder; /** @@ -300,7 +299,7 @@ authenticatedAttributes.getAttributeValue( PKCS9Attribute.CONTENT_TYPE_OID); if (contentType == null || - !contentType.equals(content.contentType)) + !contentType.equals((Object)content.contentType)) return null; // contentType does not match, bad SignerInfo // now, check message digest @@ -371,11 +370,11 @@ + "extension"); } - boolean digSigAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue(); + boolean digSigAllowed = keyUsage.get( + KeyUsageExtension.DIGITAL_SIGNATURE).booleanValue(); - boolean nonRepuAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.NON_REPUDIATION)).booleanValue(); + boolean nonRepuAllowed = keyUsage.get( + KeyUsageExtension.NON_REPUDIATION).booleanValue(); if (!digSigAllowed && !nonRepuAllowed) { throw new SignatureException("Key usage restricted: " diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/Config.java --- a/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java Mon Aug 29 14:29:23 2011 -0700 @@ -552,12 +552,13 @@ private boolean parseBoolean() throws IOException { String val = parseWord(); - if (val.equals("true")) { - return true; - } else if (val.equals("false")) { - return false; - } else { - throw excToken("Expected boolean value, read:"); + switch (val) { + case "true": + return true; + case "false": + return false; + default: + throw excToken("Expected boolean value, read:"); } } @@ -886,14 +887,15 @@ private String parseOperation() throws IOException { String op = parseWord(); - if (op.equals("*")) { - return TemplateManager.O_ANY; - } else if (op.equals("generate")) { - return TemplateManager.O_GENERATE; - } else if (op.equals("import")) { - return TemplateManager.O_IMPORT; - } else { - throw excLine("Unknown operation " + op); + switch (op) { + case "*": + return TemplateManager.O_ANY; + case "generate": + return TemplateManager.O_GENERATE; + case "import": + return TemplateManager.O_IMPORT; + default: + throw excLine("Unknown operation " + op); } } @@ -978,6 +980,7 @@ } class ConfigurationException extends IOException { + private static final long serialVersionUID = 254492758807673194L; ConfigurationException(String msg) { super(msg); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11Cipher.java Mon Aug 29 14:29:23 2011 -0700 @@ -258,7 +258,7 @@ // see JCE spec protected byte[] engineGetIV() { - return (iv == null) ? null : (byte[]) iv.clone(); + return (iv == null) ? null : iv.clone(); } // see JCE spec @@ -315,7 +315,7 @@ byte[] ivValue; if (params != null) { try { - IvParameterSpec ivSpec = (IvParameterSpec) + IvParameterSpec ivSpec = params.getParameterSpec(IvParameterSpec.class); ivValue = ivSpec.getIV(); } catch (InvalidParameterSpecException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -212,8 +212,8 @@ } } - KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPublicKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (DHPublicKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -227,15 +227,15 @@ attributes[1].getBigInteger(), attributes[2].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // X.509 handled in superclass throw new InvalidKeySpecException("Only DHPublicKeySpec and " + "X509EncodedKeySpec supported for DH public keys"); } } - KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPrivateKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (DHPrivateKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -249,7 +249,7 @@ attributes[1].getBigInteger(), attributes[2].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // PKCS#8 handled in superclass throw new InvalidKeySpecException("Only DHPrivateKeySpec " + "and PKCS8EncodedKeySpec supported for DH private keys"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -208,8 +208,8 @@ } } - KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPublicKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (DSAPublicKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -225,15 +225,15 @@ attributes[2].getBigInteger(), attributes[3].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // X.509 handled in superclass throw new InvalidKeySpecException("Only DSAPublicKeySpec and " + "X509EncodedKeySpec supported for DSA public keys"); } } - KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPrivateKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (DSAPrivateKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -249,7 +249,7 @@ attributes[2].getBigInteger(), attributes[3].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // PKCS#8 handled in superclass throw new InvalidKeySpecException("Only DSAPrivateKeySpec " + "and PKCS8EncodedKeySpec supported for DSA private keys"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -253,8 +253,8 @@ } } - KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPublicKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (ECPublicKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -265,7 +265,7 @@ try { ECParameterSpec params = decodeParameters(attributes[1].getByteArray()); ECPoint point = decodePoint(attributes[0].getByteArray(), params.getCurve()); - return new ECPublicKeySpec(point, params); + return keySpec.cast(new ECPublicKeySpec(point, params)); } catch (IOException e) { throw new InvalidKeySpecException("Could not parse key", e); } @@ -275,8 +275,8 @@ } } - KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPrivateKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (ECPrivateKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -286,7 +286,8 @@ token.p11.C_GetAttributeValue(session[0].id(), key.keyID, attributes); try { ECParameterSpec params = decodeParameters(attributes[1].getByteArray()); - return new ECPrivateKeySpec(attributes[0].getBigInteger(), params); + return keySpec.cast( + new ECPrivateKeySpec(attributes[0].getBigInteger(), params)); } catch (IOException e) { throw new InvalidKeySpecException("Could not parse key", e); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11Key.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Mon Aug 29 14:29:23 2011 -0700 @@ -128,7 +128,7 @@ // see JCA spec public final byte[] getEncoded() { byte[] b = getEncodedInternal(); - return (b == null) ? null : (byte[])b.clone(); + return (b == null) ? null : b.clone(); } abstract byte[] getEncodedInternal(); @@ -299,21 +299,22 @@ // we assume that all components of public keys are always accessible static PublicKey publicKey(Session session, long keyID, String algorithm, int keyLength, CK_ATTRIBUTE[] attributes) { - if (algorithm.equals("RSA")) { - return new P11RSAPublicKey - (session, keyID, algorithm, keyLength, attributes); - } else if (algorithm.equals("DSA")) { - return new P11DSAPublicKey - (session, keyID, algorithm, keyLength, attributes); - } else if (algorithm.equals("DH")) { - return new P11DHPublicKey - (session, keyID, algorithm, keyLength, attributes); - } else if (algorithm.equals("EC")) { - return new P11ECPublicKey - (session, keyID, algorithm, keyLength, attributes); - } else { - throw new ProviderException - ("Unknown public key algorithm " + algorithm); + switch (algorithm) { + case "RSA": + return new P11RSAPublicKey + (session, keyID, algorithm, keyLength, attributes); + case "DSA": + return new P11DSAPublicKey + (session, keyID, algorithm, keyLength, attributes); + case "DH": + return new P11DHPublicKey + (session, keyID, algorithm, keyLength, attributes); + case "EC": + return new P11ECPublicKey + (session, keyID, algorithm, keyLength, attributes); + default: + throw new ProviderException + ("Unknown public key algorithm " + algorithm); } } @@ -328,42 +329,43 @@ return new P11PrivateKey (session, keyID, algorithm, keyLength, attributes); } else { - if (algorithm.equals("RSA")) { - // XXX better test for RSA CRT keys (single getAttributes() call) - // we need to determine whether this is a CRT key - // see if we can obtain the public exponent - // this should also be readable for sensitive/extractable keys - CK_ATTRIBUTE[] attrs2 = new CK_ATTRIBUTE[] { - new CK_ATTRIBUTE(CKA_PUBLIC_EXPONENT), - }; - boolean crtKey; - try { - session.token.p11.C_GetAttributeValue - (session.id(), keyID, attrs2); - crtKey = (attrs2[0].pValue instanceof byte[]); - } catch (PKCS11Exception e) { - // ignore, assume not available - crtKey = false; - } - if (crtKey) { - return new P11RSAPrivateKey + switch (algorithm) { + case "RSA": + // XXX better test for RSA CRT keys (single getAttributes() call) + // we need to determine whether this is a CRT key + // see if we can obtain the public exponent + // this should also be readable for sensitive/extractable keys + CK_ATTRIBUTE[] attrs2 = new CK_ATTRIBUTE[] { + new CK_ATTRIBUTE(CKA_PUBLIC_EXPONENT), + }; + boolean crtKey; + try { + session.token.p11.C_GetAttributeValue + (session.id(), keyID, attrs2); + crtKey = (attrs2[0].pValue instanceof byte[]); + } catch (PKCS11Exception e) { + // ignore, assume not available + crtKey = false; + } + if (crtKey) { + return new P11RSAPrivateKey + (session, keyID, algorithm, keyLength, attributes); + } else { + return new P11RSAPrivateNonCRTKey + (session, keyID, algorithm, keyLength, attributes); + } + case "DSA": + return new P11DSAPrivateKey (session, keyID, algorithm, keyLength, attributes); - } else { - return new P11RSAPrivateNonCRTKey + case "DH": + return new P11DHPrivateKey (session, keyID, algorithm, keyLength, attributes); - } - } else if (algorithm.equals("DSA")) { - return new P11DSAPrivateKey - (session, keyID, algorithm, keyLength, attributes); - } else if (algorithm.equals("DH")) { - return new P11DHPrivateKey - (session, keyID, algorithm, keyLength, attributes); - } else if (algorithm.equals("EC")) { - return new P11ECPrivateKey - (session, keyID, algorithm, keyLength, attributes); - } else { - throw new ProviderException - ("Unknown private key algorithm " + algorithm); + case "EC": + return new P11ECPrivateKey + (session, keyID, algorithm, keyLength, attributes); + default: + throw new ProviderException + ("Unknown private key algorithm " + algorithm); } } } @@ -371,6 +373,8 @@ // class for sensitive and unextractable private keys private static final class P11PrivateKey extends P11Key implements PrivateKey { + private static final long serialVersionUID = -2138581185214187615L; + P11PrivateKey(Session session, long keyID, String algorithm, int keyLength, CK_ATTRIBUTE[] attributes) { super(PRIVATE, session, keyID, algorithm, keyLength, attributes); @@ -387,6 +391,7 @@ } private static class P11SecretKey extends P11Key implements SecretKey { + private static final long serialVersionUID = -7828241727014329084L; private volatile byte[] encoded; P11SecretKey(Session session, long keyID, String algorithm, int keyLength, CK_ATTRIBUTE[] attributes) { @@ -434,6 +439,8 @@ private static class P11TlsMasterSecretKey extends P11SecretKey implements TlsMasterSecret { + private static final long serialVersionUID = -1318560923770573441L; + private final int majorVersion, minorVersion; P11TlsMasterSecretKey(Session session, long keyID, String algorithm, int keyLength, CK_ATTRIBUTE[] attributes, int major, int minor) { @@ -453,6 +460,8 @@ // RSA CRT private key private static final class P11RSAPrivateKey extends P11Key implements RSAPrivateCrtKey { + private static final long serialVersionUID = 9215872438913515220L; + private BigInteger n, e, d, p, q, pe, qe, coeff; private byte[] encoded; P11RSAPrivateKey(Session session, long keyID, String algorithm, @@ -563,6 +572,8 @@ // RSA non-CRT private key private static final class P11RSAPrivateNonCRTKey extends P11Key implements RSAPrivateKey { + private static final long serialVersionUID = 1137764983777411481L; + private BigInteger n, d; private byte[] encoded; P11RSAPrivateNonCRTKey(Session session, long keyID, String algorithm, @@ -624,6 +635,8 @@ private static final class P11RSAPublicKey extends P11Key implements RSAPublicKey { + private static final long serialVersionUID = -826726289023854455L; + private BigInteger n, e; private byte[] encoded; P11RSAPublicKey(Session session, long keyID, String algorithm, @@ -676,6 +689,8 @@ private static final class P11DSAPublicKey extends P11Key implements DSAPublicKey { + private static final long serialVersionUID = 5989753793316396637L; + private BigInteger y; private DSAParams params; private byte[] encoded; @@ -737,6 +752,8 @@ private static final class P11DSAPrivateKey extends P11Key implements DSAPrivateKey { + private static final long serialVersionUID = 3119629997181999389L; + private BigInteger x; private DSAParams params; private byte[] encoded; @@ -798,6 +815,8 @@ private static final class P11DHPrivateKey extends P11Key implements DHPrivateKey { + private static final long serialVersionUID = -1698576167364928838L; + private BigInteger x; private DHParameterSpec params; private byte[] encoded; @@ -860,6 +879,8 @@ private static final class P11DHPublicKey extends P11Key implements DHPublicKey { + static final long serialVersionUID = -598383872153843657L; + private BigInteger y; private DHParameterSpec params; private byte[] encoded; @@ -922,6 +943,8 @@ private static final class P11ECPrivateKey extends P11Key implements ECPrivateKey { + private static final long serialVersionUID = -7786054399510515515L; + private BigInteger s; private ECParameterSpec params; private byte[] encoded; @@ -982,6 +1005,8 @@ private static final class P11ECPublicKey extends P11Key implements ECPublicKey { + private static final long serialVersionUID = -6371481375154806089L; + private ECPoint w; private ECParameterSpec params; private byte[] encoded; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -143,8 +143,8 @@ // just in case not, attempt conversion P11DHKeyFactory kf = new P11DHKeyFactory(token, "DH"); try { - DHPublicKeySpec spec = (DHPublicKeySpec)kf.engineGetKeySpec - (key, DHPublicKeySpec.class); + DHPublicKeySpec spec = kf.engineGetKeySpec( + key, DHPublicKeySpec.class); y = spec.getY(); p = spec.getP(); g = spec.getG(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -29,7 +29,6 @@ import java.security.spec.*; import sun.security.pkcs11.wrapper.PKCS11Exception; -import static sun.security.pkcs11.wrapper.PKCS11Constants.*; /** * KeyFactory base class. Provides common infrastructure for the RSA, DSA, @@ -77,7 +76,7 @@ if (PKCS8EncodedKeySpec.class.isAssignableFrom(keySpec) || X509EncodedKeySpec.class.isAssignableFrom(keySpec)) { try { - return (T)implGetSoftwareFactory().getKeySpec(key, keySpec); + return implGetSoftwareFactory().getKeySpec(key, keySpec); } catch (GeneralSecurityException e) { throw new InvalidKeySpecException("Could not encode key", e); } @@ -92,9 +91,9 @@ Session[] session = new Session[1]; try { if (p11Key.isPublic()) { - return (T)implGetPublicKeySpec(p11Key, keySpec, session); + return implGetPublicKeySpec(p11Key, keySpec, session); } else { - return (T)implGetPrivateKeySpec(p11Key, keySpec, session); + return implGetPrivateKeySpec(p11Key, keySpec, session); } } catch (PKCS11Exception e) { throw new InvalidKeySpecException("Could not generate KeySpec", e); @@ -138,10 +137,10 @@ } } - abstract KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, + abstract T implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session) throws PKCS11Exception, InvalidKeySpecException; - abstract KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, + abstract T implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session) throws PKCS11Exception, InvalidKeySpecException; abstract PublicKey implTranslatePublicKey(PublicKey key) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -34,12 +34,9 @@ import java.io.UnsupportedEncodingException; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; import java.util.ArrayList; import java.util.HashSet; import java.util.HashMap; @@ -48,7 +45,6 @@ import java.security.*; import java.security.KeyStore.*; -import java.security.cert.CertPath; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import java.security.cert.CertificateFactory; @@ -60,7 +56,6 @@ import javax.crypto.SecretKey; import javax.crypto.interfaces.*; -import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import javax.security.auth.login.LoginException; import javax.security.auth.callback.Callback; @@ -69,7 +64,6 @@ import javax.security.auth.callback.UnsupportedCallbackException; import sun.security.util.Debug; -import sun.security.x509.SerialNumber; import sun.security.util.DerValue; import sun.security.ec.ECParameters; @@ -235,7 +229,7 @@ private PasswordCallbackHandler(char[] password) { if (password != null) { - this.password = (char[])password.clone(); + this.password = password.clone(); } } @@ -331,10 +325,8 @@ // did not find anything return null; - } catch (PKCS11Exception pe) { - throw new ProviderException(pe); - } catch (KeyStoreException ke) { - throw new ProviderException(ke); + } catch (PKCS11Exception | KeyStoreException e) { + throw new ProviderException(e); } finally { token.releaseSession(session); } @@ -458,10 +450,8 @@ } else if (key instanceof SecretKey) { entry = new KeyStore.SecretKeyEntry((SecretKey)key); } - } catch (NullPointerException npe) { - throw new KeyStoreException(npe); - } catch (IllegalArgumentException iae) { - throw new KeyStoreException(iae); + } catch (NullPointerException | IllegalArgumentException e) { + throw new KeyStoreException(e); } engineSetEntry(alias, entry, new KeyStore.PasswordProtection(password)); } @@ -566,10 +556,8 @@ } else { throw new KeyStoreException("unexpected entry type"); } - } catch (PKCS11Exception pe) { - throw new KeyStoreException(pe); - } catch (CertificateException ce) { - throw new KeyStoreException(ce); + } catch (PKCS11Exception | CertificateException e) { + throw new KeyStoreException(e); } } return false; @@ -770,18 +758,8 @@ if (debug != null) { dumpTokenMap(); } - } catch (LoginException le) { - IOException ioe = new IOException("load failed"); - ioe.initCause(le); - throw ioe; - } catch (KeyStoreException kse) { - IOException ioe = new IOException("load failed"); - ioe.initCause(kse); - throw ioe; - } catch (PKCS11Exception pe) { - IOException ioe = new IOException("load failed"); - ioe.initCause(pe); - throw ioe; + } catch (LoginException | KeyStoreException | PKCS11Exception e) { + throw new IOException("load failed", e); } } @@ -860,11 +838,7 @@ if (debug != null) { dumpTokenMap(); } - } catch (LoginException e) { - throw new IOException("load failed", e); - } catch (KeyStoreException e) { - throw new IOException("load failed", e); - } catch (PKCS11Exception e) { + } catch (LoginException | KeyStoreException | PKCS11Exception e) { throw new IOException("load failed", e); } } @@ -1054,9 +1028,7 @@ storeCert(alias, xcert); module.setTrust(token, xcert); mapLabels(); - } catch (PKCS11Exception e) { - throw new KeyStoreException(e); - } catch (CertificateException e) { + } catch (PKCS11Exception | CertificateException e) { throw new KeyStoreException(e); } @@ -1118,10 +1090,8 @@ storePkey(alias, (KeyStore.PrivateKeyEntry)entry); } - } catch (PKCS11Exception pe) { + } catch (PKCS11Exception | CertificateException pe) { throw new KeyStoreException(pe); - } catch (CertificateException ce) { - throw new KeyStoreException(ce); } } else if (entry instanceof KeyStore.SecretKeyEntry) { @@ -1158,10 +1128,8 @@ if (debug != null) { dumpTokenMap(); } - } catch (PKCS11Exception pe) { + } catch (PKCS11Exception | CertificateException pe) { throw new KeyStoreException(pe); - } catch (CertificateException ce) { - throw new KeyStoreException(ce); } } @@ -1870,7 +1838,7 @@ debug.println("creating RSAPrivateKey attrs"); } - RSAPrivateKey rsaKey = (RSAPrivateKey)key; + RSAPrivateKey rsaKey = key; attrs = new CK_ATTRIBUTE[] { ATTR_TOKEN_TRUE, @@ -2662,7 +2630,7 @@ private void dumpTokenMap() { Set aliases = aliasMap.keySet(); System.out.println("Token Alias Map:"); - if (aliases.size() == 0) { + if (aliases.isEmpty()) { System.out.println(" [empty]"); } else { for (String s : aliases) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -130,10 +130,7 @@ rs.getModulus(), rs.getPublicExponent() ); - } catch (PKCS11Exception e) { - throw new InvalidKeySpecException - ("Could not create RSA public key", e); - } catch (InvalidKeyException e) { + } catch (PKCS11Exception | InvalidKeyException e) { throw new InvalidKeySpecException ("Could not create RSA public key", e); } @@ -177,10 +174,7 @@ throw new InvalidKeySpecException("Only RSAPrivate(Crt)KeySpec " + "and PKCS8EncodedKeySpec supported for RSA private keys"); } - } catch (PKCS11Exception e) { - throw new InvalidKeySpecException - ("Could not create RSA private key", e); - } catch (InvalidKeyException e) { + } catch (PKCS11Exception | InvalidKeyException e) { throw new InvalidKeySpecException ("Could not create RSA private key", e); } @@ -260,8 +254,8 @@ } } - KeySpec implGetPublicKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPublicKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (RSAPublicKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -273,15 +267,15 @@ attributes[0].getBigInteger(), attributes[1].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // X.509 handled in superclass throw new InvalidKeySpecException("Only RSAPublicKeySpec and " + "X509EncodedKeySpec supported for RSA public keys"); } } - KeySpec implGetPrivateKeySpec(P11Key key, Class keySpec, Session[] session) - throws PKCS11Exception, InvalidKeySpecException { + T implGetPrivateKeySpec(P11Key key, Class keySpec, + Session[] session) throws PKCS11Exception, InvalidKeySpecException { if (RSAPrivateCrtKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -305,7 +299,7 @@ attributes[6].getBigInteger(), attributes[7].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else if (RSAPrivateKeySpec.class.isAssignableFrom(keySpec)) { session[0] = token.getObjSession(); CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -317,7 +311,7 @@ attributes[0].getBigInteger(), attributes[1].getBigInteger() ); - return spec; + return keySpec.cast(spec); } else { // PKCS#8 handled in superclass throw new InvalidKeySpecException("Only RSAPrivate(Crt)KeySpec " + "and PKCS8EncodedKeySpec supported for RSA private keys"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -319,7 +319,7 @@ } // see JCE spec - protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) throws InvalidKeySpecException { token.ensureValid(); if ((key == null) || (keySpec == null)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11Signature.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -396,7 +396,7 @@ ensureInitialized(); switch (type) { case T_UPDATE: - buffer[0] = (byte)b; + buffer[0] = b; engineUpdate(buffer, 0, 1); break; case T_DIGEST: diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -98,6 +98,8 @@ // SecretKeySpec does not allow zero length keys, so we define our own class. private static final SecretKey NULL_KEY = new SecretKey() { + private static final long serialVersionUID = -8090049519656411362L; + public byte[] getEncoded() { return new byte[0]; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/P11Util.java --- a/jdk/src/share/classes/sun/security/pkcs11/P11Util.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/P11Util.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -88,7 +88,7 @@ p = Security.getProvider(providerName); if (p == null) { try { - Class clazz = Class.forName(className); + Class clazz = Class.forName(className); p = (Provider)clazz.newInstance(); } catch (Exception e) { throw new ProviderException diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/Secmod.java --- a/jdk/src/share/classes/sun/security/pkcs11/Secmod.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/Secmod.java Mon Aug 29 14:29:23 2011 -0700 @@ -236,6 +236,7 @@ throw new IllegalStateException(e); } if (modules == null) { + @SuppressWarnings("unchecked") List modules = (List)nssGetModuleList(nssHandle, nssLibDir); this.modules = Collections.unmodifiableList(modules); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/Session.java --- a/jdk/src/share/classes/sun/security/pkcs11/Session.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/Session.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -87,7 +87,7 @@ } long id() { - if (token.isPresent(this) == false) { + if (token.isPresent(this.id) == false) { throw new ProviderException("Token has been removed"); } lastAccess = System.currentTimeMillis(); @@ -167,7 +167,9 @@ void dispose() { refList.remove(this); try { - token.p11.C_CloseSession(id); + if (token.isPresent(id)) { + token.p11.C_CloseSession(id); + } } catch (PKCS11Exception e1) { // ignore } catch (ProviderException e2) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/Token.java --- a/jdk/src/share/classes/sun/security/pkcs11/Token.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/Token.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -217,7 +217,7 @@ // return whether a token is present (i.e. token not removed) // returns cached value if current, otherwise performs new check - boolean isPresent(Session session) { + boolean isPresent(long sessionID) { if (removable == false) { return true; } @@ -238,7 +238,7 @@ // the token should return an error CK_SESSION_INFO sessInfo = provider.p11.C_GetSessionInfo - (session.idInternal()); + (sessionID); ok = true; } } catch (PKCS11Exception e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java --- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. */ /* Copyright (c) 2002 Graz University of Technology. All rights reserved. @@ -517,7 +517,7 @@ if (array != null) { for (int i = 0; (i < 4) && (i < array.length); i++) { - hash ^= ((int) (0xFF & array[i])) << ((i%4) << 3); + hash ^= (0xFF & array[i]) << ((i%4) << 3); } } @@ -537,7 +537,7 @@ if (array != null) { for (int i = 0; (i < 4) && (i < array.length); i++) { - hash ^= ((int) (0xFFFF & array[i])) << ((i%2) << 4); + hash ^= (0xFFFF & array[i]) << ((i%2) << 4); } } @@ -557,18 +557,18 @@ if (date != null) { if (date.year.length == 4) { - hash ^= ((int) (0xFFFF & date.year[0])) << 16; - hash ^= (int) (0xFFFF & date.year[1]); - hash ^= ((int) (0xFFFF & date.year[2])) << 16; - hash ^= (int) (0xFFFF & date.year[3]); + hash ^= (0xFFFF & date.year[0]) << 16; + hash ^= 0xFFFF & date.year[1]; + hash ^= (0xFFFF & date.year[2]) << 16; + hash ^= 0xFFFF & date.year[3]; } if (date.month.length == 2) { - hash ^= ((int) (0xFFFF & date.month[0])) << 16; - hash ^= (int) (0xFFFF & date.month[1]); + hash ^= (0xFFFF & date.month[0]) << 16; + hash ^= 0xFFFF & date.month[1]; } if (date.day.length == 2) { - hash ^= ((int) (0xFFFF & date.day[0])) << 16; - hash ^= (int) (0xFFFF & date.day[1]); + hash ^= (0xFFFF & date.day[0]) << 16; + hash ^= 0xFFFF & date.day[1]; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java --- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. */ /* Copyright (c) 2002 Graz University of Technology. All rights reserved. @@ -63,6 +63,7 @@ * @invariants */ public class PKCS11Exception extends Exception { + private static final long serialVersionUID = 4877072363729195L; /** * The code of the error which was the reason for this exception. diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java --- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/PKCS11RuntimeException.java Mon Aug 29 14:29:23 2011 -0700 @@ -57,6 +57,7 @@ * @invariants */ public class PKCS11RuntimeException extends RuntimeException { + private static final long serialVersionUID = 7889842162743590564L; /** * Empty constructor. diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java --- a/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, 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 @@ -41,13 +41,10 @@ import java.security.cert.CertificateException; import java.security.spec.PKCS8EncodedKeySpec; import java.util.*; -import java.math.*; import java.security.AlgorithmParameters; -import java.security.spec.AlgorithmParameterSpec; import javax.crypto.spec.PBEParameterSpec; import javax.crypto.spec.PBEKeySpec; -import javax.crypto.spec.SecretKeySpec; import javax.crypto.SecretKeyFactory; import javax.crypto.SecretKey; import javax.crypto.Cipher; @@ -222,7 +219,7 @@ public Key engineGetKey(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); Key key = null; if (entry == null) { @@ -299,7 +296,7 @@ * key entry without a certificate chain). */ public Certificate[] engineGetCertificateChain(String alias) { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); if (entry != null) { if (entry.chain == null) { return null; @@ -327,7 +324,7 @@ * does not contain a certificate. */ public Certificate engineGetCertificate(String alias) { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); if (entry != null) { if (entry.chain == null) { return null; @@ -348,7 +345,7 @@ * not exist */ public Date engineGetCreationDate(String alias) { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); if (entry != null) { return new Date(entry.date.getTime()); } else { @@ -412,15 +409,13 @@ // set the keyId to current date entry.keyId = ("Time " + (entry.date).getTime()).getBytes("UTF8"); // set the alias - entry.alias = alias.toLowerCase(); + entry.alias = alias.toLowerCase(Locale.ENGLISH); // add the entry - entries.put(alias.toLowerCase(), entry); + entries.put(alias.toLowerCase(Locale.ENGLISH), entry); } catch (Exception nsae) { - KeyStoreException ke = new KeyStoreException("Key protection " + - " algorithm not found: " + nsae); - ke.initCause(nsae); - throw ke; + throw new KeyStoreException("Key protection " + + " algorithm not found: " + nsae, nsae); } } @@ -456,10 +451,8 @@ try { new EncryptedPrivateKeyInfo(key); } catch (IOException ioe) { - KeyStoreException ke = new KeyStoreException("Private key is not" - + " stored as PKCS#8 EncryptedPrivateKeyInfo: " + ioe); - ke.initCause(ioe); - throw ke; + throw new KeyStoreException("Private key is not stored" + + " as PKCS#8 EncryptedPrivateKeyInfo: " + ioe, ioe); } KeyEntry entry = new KeyEntry(); @@ -472,7 +465,7 @@ // Won't happen } // set the alias - entry.alias = alias.toLowerCase(); + entry.alias = alias.toLowerCase(Locale.ENGLISH); entry.protectedPrivKey = key.clone(); if (chain != null) { @@ -480,7 +473,7 @@ } // add the entry - entries.put(alias.toLowerCase(), entry); + entries.put(alias.toLowerCase(Locale.ENGLISH), entry); } @@ -513,11 +506,8 @@ algParams = AlgorithmParameters.getInstance(algorithm); algParams.init(paramSpec); } catch (Exception e) { - IOException ioe = - new IOException("getAlgorithmParameters failed: " + - e.getMessage()); - ioe.initCause(e); - throw ioe; + throw new IOException("getAlgorithmParameters failed: " + + e.getMessage(), e); } return algParams; } @@ -544,11 +534,8 @@ algParams.init(params.toByteArray()); } } catch (Exception e) { - IOException ioe = - new IOException("parseAlgParameters failed: " + - e.getMessage()); - ioe.initCause(e); - throw ioe; + throw new IOException("parseAlgParameters failed: " + + e.getMessage(), e); } return algParams; } @@ -565,10 +552,8 @@ SecretKeyFactory skFac = SecretKeyFactory.getInstance("PBE"); skey = skFac.generateSecret(keySpec); } catch (Exception e) { - IOException ioe = new IOException("getSecretKey failed: " + - e.getMessage()); - ioe.initCause(e); - throw ioe; + throw new IOException("getSecretKey failed: " + + e.getMessage(), e); } return skey; } @@ -633,7 +618,7 @@ public synchronized void engineSetCertificateEntry(String alias, Certificate cert) throws KeyStoreException { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); if (entry != null) { throw new KeyStoreException("Cannot overwrite own certificate"); } else @@ -650,7 +635,7 @@ public synchronized void engineDeleteEntry(String alias) throws KeyStoreException { - entries.remove(alias.toLowerCase()); + entries.remove(alias.toLowerCase(Locale.ENGLISH)); } /** @@ -670,7 +655,7 @@ * @return true if the alias exists, false otherwise */ public boolean engineContainsAlias(String alias) { - return entries.containsKey(alias.toLowerCase()); + return entries.containsKey(alias.toLowerCase(Locale.ENGLISH)); } /** @@ -690,7 +675,7 @@ * key entry, false otherwise. */ public boolean engineIsKeyEntry(String alias) { - KeyEntry entry = entries.get(alias.toLowerCase()); + KeyEntry entry = entries.get(alias.toLowerCase(Locale.ENGLISH)); if (entry != null) { return true; } else { @@ -826,9 +811,7 @@ md.update(data); digest = md.digest(); } catch (Exception e) { - IOException ioe = new IOException("generateHash failed: " + e); - ioe.initCause(e); - throw ioe; + throw new IOException("generateHash failed: " + e, e); } return digest; } @@ -866,9 +849,7 @@ bytes.write(macData.getEncoded()); mData = bytes.toByteArray(); } catch (Exception e) { - IOException ioe = new IOException("calculateMac failed: " + e); - ioe.initCause(e); - throw ioe; + throw new IOException("calculateMac failed: " + e, e); } return mData; } @@ -1149,10 +1130,8 @@ encryptedData = cipher.doFinal(data); } catch (Exception e) { - IOException ioe = new IOException("Failed to encrypt" + - " safe contents entry: " + e); - ioe.initCause(e); - throw ioe; + throw new IOException("Failed to encrypt" + + " safe contents entry: " + e, e); } // create EncryptedContentInfo @@ -1220,7 +1199,7 @@ ContentInfo authSafe = new ContentInfo(s); ObjectIdentifier contentType = authSafe.getContentType(); - if (contentType.equals(ContentInfo.DATA_OID)) { + if (contentType.equals((Object)ContentInfo.DATA_OID)) { authSafeData = authSafe.getData(); } else /* signed data */ { throw new IOException("public key protected PKCS12 not supported"); @@ -1246,7 +1225,7 @@ safeContents = new ContentInfo(sci); contentType = safeContents.getContentType(); safeContentsData = null; - if (contentType.equals(ContentInfo.DATA_OID)) { + if (contentType.equals((Object)ContentInfo.DATA_OID)) { safeContentsData = safeContents.getData(); } else if (contentType.equals(ContentInfo.ENCRYPTED_DATA_OID)) { if (password == null) { @@ -1280,10 +1259,8 @@ safeContentsData = cipher.doFinal(safeContentsData); } catch (Exception e) { - IOException ioe = new IOException("failed to decrypt safe" - + " contents entry: " + e); - ioe.initCause(e); - throw ioe; + throw new IOException("failed to decrypt safe" + + " contents entry: " + e, e); } } else { throw new IOException("public key protected PKCS12" + @@ -1297,7 +1274,8 @@ if (password != null && s.available() > 0) { MacData macData = new MacData(s); try { - String algName = macData.getDigestAlgName().toUpperCase(); + String algName = + macData.getDigestAlgName().toUpperCase(Locale.ENGLISH); if (algName.equals("SHA") || algName.equals("SHA1") || algName.equals("SHA-1")) { @@ -1319,10 +1297,7 @@ " integrity checking"); } } catch (Exception e) { - IOException ioe = - new IOException("Integrity check failed: " + e); - ioe.initCause(e); - throw ioe; + throw new IOException("Integrity check failed: " + e, e); } } @@ -1402,12 +1377,12 @@ + bagValue.tag); } bagValue = bagValue.data.getDerValue(); - if (bagId.equals(PKCS8ShroudedKeyBag_OID)) { + if (bagId.equals((Object)PKCS8ShroudedKeyBag_OID)) { KeyEntry kEntry = new KeyEntry(); kEntry.protectedPrivKey = bagValue.toByteArray(); bagItem = kEntry; privateKeyCount++; - } else if (bagId.equals(CertBag_OID)) { + } else if (bagId.equals((Object)CertBag_OID)) { DerInputStream cs = new DerInputStream(bagValue.toByteArray()); DerValue[] certValues = cs.getSequence(2); ObjectIdentifier certId = certValues[0].getOID(); @@ -1453,9 +1428,9 @@ throw new IOException("Attribute " + attrId + " should have a value " + e.getMessage()); } - if (attrId.equals(PKCS9FriendlyName_OID)) { + if (attrId.equals((Object)PKCS9FriendlyName_OID)) { alias = valSet[0].getBMPString(); - } else if (attrId.equals(PKCS9LocalKeyId_OID)) { + } else if (attrId.equals((Object)PKCS9LocalKeyId_OID)) { keyId = valSet[0].getOctetString(); } else { // log error message for "unknown attr" @@ -1505,7 +1480,7 @@ if (alias == null) alias = getUnfriendlyName(); entry.alias = alias; - entries.put(alias.toLowerCase(), entry); + entries.put(alias.toLowerCase(Locale.ENGLISH), entry); } else if (bagItem instanceof X509Certificate) { X509Certificate cert = (X509Certificate)bagItem; // Insert a localKeyID for the corresponding cert diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java --- a/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/DSAKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,15 +25,12 @@ package sun.security.provider; -import java.util.*; -import java.lang.*; import java.security.Key; import java.security.PublicKey; import java.security.PrivateKey; import java.security.KeyFactorySpi; import java.security.InvalidKeyException; import java.security.AccessController; -import java.security.PrivilegedAction; import java.security.interfaces.DSAParams; import java.security.spec.DSAPublicKeySpec; import java.security.spec.DSAPrivateKeySpec; @@ -194,13 +191,13 @@ java.security.interfaces.DSAPublicKey dsaPubKey = (java.security.interfaces.DSAPublicKey)key; params = dsaPubKey.getParams(); - return (T) new DSAPublicKeySpec(dsaPubKey.getY(), - params.getP(), - params.getQ(), - params.getG()); + return keySpec.cast(new DSAPublicKeySpec(dsaPubKey.getY(), + params.getP(), + params.getQ(), + params.getG())); } else if (x509KeySpec.isAssignableFrom(keySpec)) { - return (T) new X509EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new X509EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException @@ -219,13 +216,13 @@ java.security.interfaces.DSAPrivateKey dsaPrivKey = (java.security.interfaces.DSAPrivateKey)key; params = dsaPrivKey.getParams(); - return (T) new DSAPrivateKeySpec(dsaPrivKey.getX(), - params.getP(), - params.getQ(), - params.getG()); + return keySpec.cast(new DSAPrivateKeySpec(dsaPrivKey.getX(), + params.getP(), + params.getQ(), + params.getG())); } else if (pkcs8KeySpec.isAssignableFrom(keySpec)) { - return (T) new PKCS8EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/DSAParameters.java --- a/jdk/src/share/classes/sun/security/provider/DSAParameters.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/DSAParameters.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,7 +25,6 @@ package sun.security.provider; -import java.util.*; import java.io.*; import java.math.BigInteger; import java.security.AlgorithmParametersSpi; @@ -103,7 +102,8 @@ Class dsaParamSpec = Class.forName ("java.security.spec.DSAParameterSpec"); if (dsaParamSpec.isAssignableFrom(paramSpec)) { - return (T)new DSAParameterSpec(this.p, this.q, this.g); + return paramSpec.cast( + new DSAParameterSpec(this.p, this.q, this.g)); } else { throw new InvalidParameterSpecException ("Inappropriate parameter Specification"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/JavaKeyStore.java --- a/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/JavaKeyStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -54,7 +54,7 @@ // regular JKS public static final class JKS extends JavaKeyStore { String convertAlias(String alias) { - return alias.toLowerCase(); + return alias.toLowerCase(Locale.ENGLISH); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/MD4.java --- a/jdk/src/share/classes/sun/security/provider/MD4.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/MD4.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -65,7 +65,9 @@ private final static Provider md4Provider; static { - md4Provider = new Provider("MD4Provider", 1.0d, "MD4 MessageDigest") {}; + md4Provider = new Provider("MD4Provider", 1.0d, "MD4 MessageDigest") { + private static final long serialVersionUID = -8850464997518327965L; + }; AccessController.doPrivileged(new PrivilegedAction() { public Void run() { md4Provider.put("MessageDigest.MD4", "sun.security.provider.MD4"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/PolicyFile.java --- a/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,27 +26,21 @@ package sun.security.provider; import java.io.*; -import java.lang.RuntimePermission; import java.lang.reflect.*; -import java.lang.ref.*; import java.net.MalformedURLException; import java.net.URL; import java.net.URI; import java.util.*; import java.util.Enumeration; -import java.util.Hashtable; import java.util.List; import java.util.StringTokenizer; -import java.util.PropertyPermission; import java.util.ArrayList; import java.util.ListIterator; -import java.util.WeakHashMap; import java.text.MessageFormat; import com.sun.security.auth.PrincipalComparator; import java.security.*; import java.security.cert.Certificate; import java.security.cert.X509Certificate; -import javax.security.auth.PrivateCredentialPermission; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import java.io.FilePermission; @@ -68,7 +62,6 @@ import sun.misc.JavaSecurityProtectionDomainAccess; import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache; import sun.misc.SharedSecrets; -import sun.security.util.Password; import sun.security.util.PolicyUtil; import sun.security.util.PropertyExpander; import sun.security.util.Debug; @@ -1006,7 +999,7 @@ * via reflection. Keep list short to not penalize non-JDK-defined * permissions. */ - private static final Permission getKnownInstance(Class claz, + private static final Permission getKnownInstance(Class claz, String name, String actions) { // XXX shorten list to most popular ones? if (claz.equals(FilePermission.class)) { @@ -1346,7 +1339,7 @@ "\tActive Principals: " + accPs); } - if (entryPs == null || entryPs.size() == 0) { + if (entryPs == null || entryPs.isEmpty()) { // policy entry has no principals - // add perms regardless of principals in current ACC @@ -1547,7 +1540,7 @@ Principal[] pdp, Permissions perms) { - if (entryPs == null || entryPs.size() == 0) { + if (entryPs == null || entryPs.isEmpty()) { // No principals in the grant to substitute if (debug != null) { debug.println("Ignoring permission " @@ -1890,7 +1883,7 @@ private boolean replacePrincipals( List principals, KeyStore keystore) { - if (principals == null || principals.size() == 0 || keystore == null) + if (principals == null || principals.isEmpty() || keystore == null) return true; ListIterator i = principals.listIterator(); @@ -2403,7 +2396,7 @@ final List identityPolicyEntries; // Maps aliases to certs - final Map aliasMapping; + final Map aliasMapping; // Maps ProtectionDomain to PermissionCollection private final ProtectionDomainCache[] pdMapping; @@ -2413,7 +2406,8 @@ policyEntries = new ArrayList(); identityPolicyEntries = Collections.synchronizedList(new ArrayList(2)); - aliasMapping = Collections.synchronizedMap(new HashMap(11)); + aliasMapping = Collections.synchronizedMap( + new HashMap(11)); pdMapping = new ProtectionDomainCache[numCaches]; JavaSecurityProtectionDomainAccess jspda diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java --- a/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java Mon Aug 29 14:29:23 2011 -0700 @@ -101,7 +101,8 @@ void parseAuthorityKeyIdentifierExtension( AuthorityKeyIdentifierExtension akidext) throws IOException { if (akidext != null) { - KeyIdentifier akid = (KeyIdentifier)akidext.get(akidext.KEY_ID); + KeyIdentifier akid = (KeyIdentifier)akidext.get( + AuthorityKeyIdentifierExtension.KEY_ID); if (akid != null) { // Do not override the previous setting for initial selection. if (isSKIDSensitive || getSubjectKeyIdentifier() == null) { @@ -113,8 +114,8 @@ } } - SerialNumber asn = - (SerialNumber)akidext.get(akidext.SERIAL_NUMBER); + SerialNumber asn = (SerialNumber)akidext.get( + AuthorityKeyIdentifierExtension.SERIAL_NUMBER); if (asn != null) { // Do not override the previous setting for initial selection. if (isSNSensitive || getSerialNumber() == null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/Builder.java --- a/jdk/src/share/classes/sun/security/provider/certpath/Builder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/Builder.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -153,6 +153,7 @@ if (debug != null) { debug.println("Builder.distance(): Names are different types"); } + return incomparable; case GeneralNameInterface.NAME_SAME_TYPE: if (debug != null) { debug.println("Builder.distance(): Names are same type but " + @@ -306,8 +307,8 @@ SubjectAlternativeNameExtension altNameExt = certImpl.getSubjectAlternativeNameExtension(); if (altNameExt != null) { - GeneralNames altNames = - (GeneralNames)altNameExt.get(altNameExt.SUBJECT_NAME); + GeneralNames altNames = altNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); /* see if any alternative name matches target */ if (altNames != null) { for (int j = 0, n = altNames.size(); j < n; j++) { @@ -343,10 +344,10 @@ + String.valueOf(constraints)); } /* reduce permitted by excluded */ - GeneralSubtrees permitted = (GeneralSubtrees) - constraints.get(constraints.PERMITTED_SUBTREES); - GeneralSubtrees excluded = (GeneralSubtrees) - constraints.get(constraints.EXCLUDED_SUBTREES); + GeneralSubtrees permitted = + constraints.get(NameConstraintsExtension.PERMITTED_SUBTREES); + GeneralSubtrees excluded = + constraints.get(NameConstraintsExtension.EXCLUDED_SUBTREES); if (permitted != null) { permitted.reduce(excluded); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java --- a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java Mon Aug 29 14:29:23 2011 -0700 @@ -41,7 +41,6 @@ import java.security.cert.*; import java.security.cert.CertPathValidatorException.BasicReason; import java.security.interfaces.DSAPublicKey; -import javax.security.auth.x500.X500Principal; import sun.security.util.Debug; import sun.security.x509.AccessDescription; import sun.security.x509.AuthorityInfoAccessExtension; @@ -758,8 +757,7 @@ null, null); points = Collections.singletonList(point); } else { - points = (List)ext.get( - CRLDistributionPointsExtension.POINTS); + points = ext.get(CRLDistributionPointsExtension.POINTS); } Set results = new HashSet(); DistributionPointFetcher dpf = diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java --- a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java Mon Aug 29 14:29:23 2011 -0700 @@ -114,8 +114,8 @@ } return Collections.emptySet(); } - List points = (List)ext.get( - CRLDistributionPointsExtension.POINTS); + List points = + ext.get(CRLDistributionPointsExtension.POINTS); Set results = new HashSet(); for (Iterator t = points.iterator(); t.hasNext() && !Arrays.equals(reasonsMask, ALL_REASONS); ) { @@ -570,15 +570,16 @@ AuthorityKeyIdentifierExtension akidext = crlImpl.getAuthKeyIdExtension(); if (akidext != null) { - KeyIdentifier akid = (KeyIdentifier)akidext.get(akidext.KEY_ID); + KeyIdentifier akid = (KeyIdentifier)akidext.get( + AuthorityKeyIdentifierExtension.KEY_ID); if (akid != null) { DerOutputStream derout = new DerOutputStream(); derout.putOctetString(akid.getIdentifier()); certSel.setSubjectKeyIdentifier(derout.toByteArray()); } - SerialNumber asn = - (SerialNumber)akidext.get(akidext.SERIAL_NUMBER); + SerialNumber asn = (SerialNumber)akidext.get( + AuthorityKeyIdentifierExtension.SERIAL_NUMBER); if (asn != null) { certSel.setSerialNumber(asn.getNumber()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java --- a/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java Mon Aug 29 14:29:23 2011 -0700 @@ -30,7 +30,6 @@ import java.security.GeneralSecurityException; import java.security.InvalidKeyException; -import java.security.cert.Certificate; import java.security.cert.CertificateException; import java.security.cert.CertPathValidatorException; import java.security.cert.PKIXReason; @@ -44,22 +43,13 @@ import javax.security.auth.x500.X500Principal; import sun.security.util.Debug; -import sun.security.util.DerOutputStream; import sun.security.x509.AccessDescription; import sun.security.x509.AuthorityInfoAccessExtension; import sun.security.x509.PKIXExtensions; import sun.security.x509.PolicyMappingsExtension; import sun.security.x509.X500Name; import sun.security.x509.X509CertImpl; -import sun.security.x509.X509CRLImpl; import sun.security.x509.AuthorityKeyIdentifierExtension; -import sun.security.x509.KeyIdentifier; -import sun.security.x509.SubjectKeyIdentifierExtension; -import sun.security.x509.SerialNumber; -import sun.security.x509.GeneralNames; -import sun.security.x509.GeneralName; -import sun.security.x509.GeneralNameInterface; -import java.math.BigInteger; /** * This class represents a forward builder, which is able to retrieve @@ -362,6 +352,9 @@ * Download Certificates from the given AIA and add them to the * specified Collection. */ + // cs.getCertificates(caSelector) returns a collection of X509Certificate's + // because of the selector, so the cast is safe + @SuppressWarnings("unchecked") private boolean getCerts(AuthorityInfoAccessExtension aiaExt, Collection certs) { if (Builder.USE_AIA == false) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java --- a/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/ForwardState.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -206,8 +206,8 @@ SubjectAlternativeNameExtension subjAltNameExt = icert.getSubjectAlternativeNameExtension(); if (subjAltNameExt != null) { - GeneralNames gNames = (GeneralNames) - subjAltNameExt.get(SubjectAlternativeNameExtension.SUBJECT_NAME); + GeneralNames gNames = subjAltNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); for (Iterator t = gNames.iterator(); t.hasNext(); ) { GeneralNameInterface gName = t.next().getName(); @@ -236,6 +236,7 @@ * because some of them will * not have their contents modified by subsequent calls to updateState. */ + @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly public Object clone() { try { ForwardState clonedState = (ForwardState) super.clone(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java --- a/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -185,6 +185,7 @@ list.add((X509Certificate)oldEntry); certSubjects.put(subject, list); } else { + @SuppressWarnings("unchecked") // See certSubjects javadoc. List list = (List)oldEntry; if (list.contains(cert) == false) { list.add(cert); @@ -210,6 +211,8 @@ list.add((X509CRL)oldEntry); crlIssuers.put(issuer, list); } else { + // See crlIssuers javadoc. + @SuppressWarnings("unchecked") List list = (List)oldEntry; if (list.contains(crl) == false) { list.add(crl); @@ -279,6 +282,8 @@ return Collections.emptySet(); } } else { + // See certSubjects javadoc. + @SuppressWarnings("unchecked") List list = (List)entry; Set matches = new HashSet(16); for (X509Certificate cert : list) { @@ -309,6 +314,8 @@ matches.add(cert); } } else { + // See certSubjects javadoc. + @SuppressWarnings("unchecked") List list = (List)obj; for (X509Certificate cert : list) { if (selector.match(cert)) { @@ -370,6 +377,8 @@ matches.add(crl); } } else { // List + // See crlIssuers javadoc. + @SuppressWarnings("unchecked") List list = (List)entry; for (X509CRL crl : list) { if (x509Selector.match(crl)) { @@ -398,6 +407,8 @@ matches.add(crl); } } else { + // See crlIssuers javadoc. + @SuppressWarnings("unchecked") List list = (List)obj; for (X509CRL crl : list) { if (selector.match(crl)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/OCSP.java --- a/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSP.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -291,7 +291,7 @@ List descriptions = aia.getAccessDescriptions(); for (AccessDescription description : descriptions) { - if (description.getAccessMethod().equals( + if (description.getAccessMethod().equals((Object) AccessDescription.Ad_OCSP_Id)) { GeneralName generalName = description.getAccessLocation(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java --- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPChecker.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -300,7 +300,7 @@ if (filter != null) { List certStores = pkixParams.getCertStores(); for (CertStore certStore : certStores) { - Iterator i = null; + Iterator i = null; try { i = certStore.getCertificates(filter).iterator(); } catch (CertStoreException cse) { @@ -392,7 +392,7 @@ List descriptions = aia.getAccessDescriptions(); for (AccessDescription description : descriptions) { - if (description.getAccessMethod().equals( + if (description.getAccessMethod().equals((Object) AccessDescription.Ad_OCSP_Id)) { GeneralName generalName = description.getAccessLocation(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java --- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -26,7 +26,6 @@ package sun.security.provider.certpath; import java.io.*; -import java.math.BigInteger; import java.security.*; import java.security.cert.CertificateException; import java.security.cert.CertificateParsingException; @@ -206,7 +205,7 @@ // responseType derIn = tmp.data; ObjectIdentifier responseType = derIn.getOID(); - if (responseType.equals(OCSP_BASIC_RESPONSE_OID)) { + if (responseType.equals((Object)OCSP_BASIC_RESPONSE_OID)) { if (DEBUG != null) { DEBUG.println("OCSP response type: basic"); } @@ -301,7 +300,7 @@ if (DEBUG != null) { DEBUG.println("OCSP extension: " + responseExtension); } - if (responseExtension.getExtensionId().equals( + if (responseExtension.getExtensionId().equals((Object) OCSP_NONCE_EXTENSION_OID)) { /* ocspNonce = diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java --- a/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,6 @@ package sun.security.provider.certpath; -import java.io.IOException; import java.security.AccessController; import java.security.InvalidAlgorithmParameterException; import java.security.cert.CertPath; @@ -40,13 +39,11 @@ import java.security.cert.PolicyNode; import java.security.cert.TrustAnchor; import java.security.cert.X509Certificate; -import java.security.cert.X509CertSelector; import java.util.Collections; import java.util.List; import java.util.ArrayList; import java.util.Date; import java.util.Set; -import javax.security.auth.x500.X500Principal; import sun.security.action.GetBooleanSecurityPropertyAction; import sun.security.util.Debug; @@ -130,6 +127,9 @@ // Must copy elements of certList into a new modifiable List before // calling Collections.reverse(). + // If cp is not an X.509 or X509 certpath, an + // InvalidAlgorithmParameterException will have been thrown by now. + @SuppressWarnings("unchecked") ArrayList certList = new ArrayList ((List)cp.getCertificates()); if (debug != null) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java --- a/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/PolicyChecker.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -274,8 +274,8 @@ = currCert.getPolicyConstraintsExtension(); if (polConstExt == null) return explicitPolicy; - int require = ((Integer) - polConstExt.get(PolicyConstraintsExtension.REQUIRE)).intValue(); + int require = + polConstExt.get(PolicyConstraintsExtension.REQUIRE).intValue(); if (debug != null) { debug.println("PolicyChecker.mergeExplicitPolicy() " + "require Index from cert = " + require); @@ -328,8 +328,8 @@ if (polConstExt == null) return policyMapping; - int inhibit = ((Integer) - polConstExt.get(PolicyConstraintsExtension.INHIBIT)).intValue(); + int inhibit = + polConstExt.get(PolicyConstraintsExtension.INHIBIT).intValue(); if (debug != null) debug.println("PolicyChecker.mergePolicyMapping() " + "inhibit Index from cert = " + inhibit); @@ -376,8 +376,8 @@ if (inhAnyPolExt == null) return inhibitAnyPolicy; - int skipCerts = ((Integer) - inhAnyPolExt.get(InhibitAnyPolicyExtension.SKIP_CERTS)).intValue(); + int skipCerts = + inhAnyPolExt.get(InhibitAnyPolicyExtension.SKIP_CERTS).intValue(); if (debug != null) debug.println("PolicyChecker.mergeInhibitAnyPolicy() " + "skipCerts Index from cert = " + skipCerts); @@ -448,8 +448,7 @@ + "policiesCritical = " + policiesCritical); try { - policyInfo = (List) - currCertPolicies.get(CertificatePoliciesExtension.POLICIES); + policyInfo = currCertPolicies.get(CertificatePoliciesExtension.POLICIES); } catch (IOException ioe) { throw new CertPathValidatorException("Exception while " + "retrieving policyOIDs", ioe); @@ -751,8 +750,7 @@ List maps = null; try { - maps = (List)polMappingsExt.get - (PolicyMappingsExtension.MAP); + maps = polMappingsExt.get(PolicyMappingsExtension.MAP); } catch (IOException e) { if (debug != null) { debug.println("PolicyChecker.processPolicyMappings() " @@ -860,8 +858,7 @@ { List policyInfo = null; try { - policyInfo = (List) - currCertPolicies.get(CertificatePoliciesExtension.POLICIES); + policyInfo = currCertPolicies.get(CertificatePoliciesExtension.POLICIES); } catch (IOException ioe) { throw new CertPathValidatorException("Exception while " + "retrieving policyOIDs", ioe); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java --- a/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/ReverseState.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -365,6 +365,7 @@ * because some of them (e.g., subjKeyId) will * not have their contents modified by subsequent calls to updateState. */ + @SuppressWarnings("unchecked") // Safe casts assuming clone() works correctly public Object clone() { try { ReverseState clonedState = (ReverseState) super.clone(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java --- a/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/URICertStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2011, 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 @@ -209,7 +209,8 @@ * object of a certificate's Authority Information Access Extension. */ static CertStore getInstance(AccessDescription ad) { - if (!ad.getAccessMethod().equals(AccessDescription.Ad_CAISSUERS_Id)) { + if (!ad.getAccessMethod().equals((Object) + AccessDescription.Ad_CAISSUERS_Id)) { return null; } GeneralNameInterface gn = ad.getAccessLocation().getName(); @@ -241,6 +242,7 @@ * match the specified selector * @throws CertStoreException if an exception occurs */ + @SuppressWarnings("unchecked") public synchronized Collection engineGetCertificates (CertSelector selector) throws CertStoreException { @@ -255,6 +257,7 @@ } // Fetch the certificates via LDAP. LDAPCertStore has its own // caching mechanism, see the class description for more info. + // Safe cast since xsel is an X509 certificate selector. return (Collection) ldapCertStore.getCertificates(xsel); } @@ -300,6 +303,7 @@ if (debug != null) { debug.println("Downloading new certificates..."); } + // Safe cast since factory is an X.509 certificate factory certs = (Collection) factory.generateCertificates(in); return getMatchingCerts(certs, selector); @@ -361,6 +365,7 @@ * match the specified selector * @throws CertStoreException if an exception occurs */ + @SuppressWarnings("unchecked") public synchronized Collection engineGetCRLs(CRLSelector selector) throws CertStoreException { @@ -375,6 +380,7 @@ } // Fetch the CRLs via LDAP. LDAPCertStore has its own // caching mechanism, see the class description for more info. + // Safe cast since xsel is an X509 certificate selector. return (Collection) ldapCertStore.getCRLs(xsel); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/Vertex.java --- a/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/Vertex.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -171,7 +171,8 @@ try { sKeyID = x509Cert.getSubjectKeyIdentifierExtension(); if (sKeyID != null) { - KeyIdentifier keyID = (KeyIdentifier)sKeyID.get(sKeyID.KEY_ID); + KeyIdentifier keyID = sKeyID.get( + SubjectKeyIdentifierExtension.KEY_ID); out = out + "SubjKeyID: " + keyID.toString(); } } catch (Exception e) { @@ -184,7 +185,8 @@ try { aKeyID = x509Cert.getAuthorityKeyIdentifierExtension(); if (aKeyID != null) { - KeyIdentifier keyID = (KeyIdentifier)aKeyID.get(aKeyID.KEY_ID); + KeyIdentifier keyID = (KeyIdentifier)aKeyID.get( + AuthorityKeyIdentifierExtension.KEY_ID); out = out + "AuthKeyID: " + keyID.toString(); } } catch (Exception e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java --- a/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -25,7 +25,6 @@ package sun.security.provider.certpath; -import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -101,11 +100,18 @@ * @exception CertificateException if certs contains an element * that is not an X509Certificate */ + @SuppressWarnings("unchecked") public X509CertPath(List certs) throws CertificateException { super("X.509"); // Ensure that the List contains only X509Certificates - for (Object obj : (List)certs) { + // + // Note; The certs parameter is not necessarily to be of Certificate + // for some old code. For compatibility, to make sure the exception + // is CertificateException, rather than ClassCastException, please + // don't use + // for (Certificate obj : certs) + for (Object obj : certs) { if (obj instanceof X509Certificate == false) { throw new CertificateException ("List is not all X509Certificates: " @@ -147,12 +153,15 @@ throws CertificateException { super("X.509"); - if (PKIPATH_ENCODING.equals(encoding)) { - certs = parsePKIPATH(is); - } else if (PKCS7_ENCODING.equals(encoding)) { - certs = parsePKCS7(is); - } else { - throw new CertificateException("unsupported encoding"); + switch (encoding) { + case PKIPATH_ENCODING: + certs = parsePKIPATH(is); + break; + case PKCS7_ENCODING: + certs = parsePKCS7(is); + break; + default: + throw new CertificateException("unsupported encoding"); } } @@ -192,10 +201,8 @@ return Collections.unmodifiableList(certList); } catch (IOException ioe) { - CertificateException ce = new CertificateException("IOException" + - " parsing PkiPath data: " + ioe); - ce.initCause(ioe); - throw ce; + throw new CertificateException("IOException parsing PkiPath data: " + + ioe, ioe); } } @@ -220,7 +227,7 @@ // Copy the entire input stream into an InputStream that does // support mark is = new ByteArrayInputStream(readAllBytes(is)); - }; + } PKCS7 pkcs7 = new PKCS7(is); X509Certificate[] certArray = pkcs7.getCertificates(); @@ -301,10 +308,8 @@ return derout.toByteArray(); } catch (IOException ioe) { - CertificateEncodingException ce = new CertificateEncodingException - ("IOException encoding PkiPath data: " + ioe); - ce.initCause(ioe); - throw ce; + throw new CertificateEncodingException("IOException encoding " + + "PkiPath data: " + ioe, ioe); } } @@ -339,12 +344,13 @@ */ public byte[] getEncoded(String encoding) throws CertificateEncodingException { - if (PKIPATH_ENCODING.equals(encoding)) { - return encodePKIPATH(); - } else if (PKCS7_ENCODING.equals(encoding)) { - return encodePKCS7(); - } else { - throw new CertificateEncodingException("unsupported encoding"); + switch (encoding) { + case PKIPATH_ENCODING: + return encodePKIPATH(); + case PKCS7_ENCODING: + return encodePKCS7(); + default: + throw new CertificateEncodingException("unsupported encoding"); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java --- a/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -879,7 +879,8 @@ if (hashCode == 0) { int result = 17; result = 37*result + getPort(); - result = 37*result + getServerName().toLowerCase().hashCode(); + result = 37*result + + getServerName().toLowerCase(Locale.ENGLISH).hashCode(); hashCode = result; } return hashCode; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java --- a/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/rsa/RSAKeyFactory.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -351,12 +351,12 @@ if (key instanceof RSAPublicKey) { RSAPublicKey rsaKey = (RSAPublicKey)key; if (rsaPublicKeySpecClass.isAssignableFrom(keySpec)) { - return (T) new RSAPublicKeySpec( + return keySpec.cast(new RSAPublicKeySpec( rsaKey.getModulus(), rsaKey.getPublicExponent() - ); + )); } else if (x509KeySpecClass.isAssignableFrom(keySpec)) { - return (T) new X509EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new X509EncodedKeySpec(key.getEncoded())); } else { throw new InvalidKeySpecException ("KeySpec must be RSAPublicKeySpec or " @@ -364,11 +364,11 @@ } } else if (key instanceof RSAPrivateKey) { if (pkcs8KeySpecClass.isAssignableFrom(keySpec)) { - return (T) new PKCS8EncodedKeySpec(key.getEncoded()); + return keySpec.cast(new PKCS8EncodedKeySpec(key.getEncoded())); } else if (rsaPrivateCrtKeySpecClass.isAssignableFrom(keySpec)) { if (key instanceof RSAPrivateCrtKey) { RSAPrivateCrtKey crtKey = (RSAPrivateCrtKey)key; - return (T) new RSAPrivateCrtKeySpec( + return keySpec.cast(new RSAPrivateCrtKeySpec( crtKey.getModulus(), crtKey.getPublicExponent(), crtKey.getPrivateExponent(), @@ -377,17 +377,17 @@ crtKey.getPrimeExponentP(), crtKey.getPrimeExponentQ(), crtKey.getCrtCoefficient() - ); + )); } else { throw new InvalidKeySpecException ("RSAPrivateCrtKeySpec can only be used with CRT keys"); } } else if (rsaPrivateKeySpecClass.isAssignableFrom(keySpec)) { RSAPrivateKey rsaKey = (RSAPrivateKey)key; - return (T) new RSAPrivateKeySpec( + return keySpec.cast(new RSAPrivateKeySpec( rsaKey.getModulus(), rsaKey.getPrivateExponent() - ); + )); } else { throw new InvalidKeySpecException ("KeySpec must be RSAPrivate(Crt)KeySpec or " diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/rsa/RSASignature.java --- a/jdk/src/share/classes/sun/security/rsa/RSASignature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/rsa/RSASignature.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -27,7 +27,6 @@ import java.io.IOException; import java.nio.ByteBuffer; -import java.math.BigInteger; import java.util.Arrays; import java.security.*; @@ -202,8 +201,6 @@ // return false rather than propagating the exception for // compatibility/ease of use return false; - } catch (GeneralSecurityException e) { - throw new SignatureException("Signature verification failed", e); } catch (IOException e) { throw new SignatureException("Signature encoding error", e); } @@ -235,7 +232,7 @@ throw new IOException("SEQUENCE length error"); } AlgorithmId algId = AlgorithmId.parse(values[0]); - if (algId.getOID().equals(oid) == false) { + if (algId.getOID().equals((Object)oid) == false) { throw new IOException("ObjectIdentifier mismatch: " + algId.getOID()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/CipherSuite.java --- a/jdk/src/share/classes/sun/security/ssl/CipherSuite.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/CipherSuite.java Mon Aug 29 14:29:23 2011 -0700 @@ -65,7 +65,7 @@ * unavailable or disabled at compile time * */ -final class CipherSuite implements Comparable { +final class CipherSuite implements Comparable { // minimum priority for supported CipherSuites final static int SUPPORTED_SUITES_PRIORITY = 1; @@ -202,8 +202,8 @@ * Note that for unsupported CipherSuites parsed from a handshake * message we violate the equals() contract. */ - public int compareTo(Object o) { - return ((CipherSuite)o).priority - priority; + public int compareTo(CipherSuite o) { + return o.priority - priority; } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java --- a/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Mon Aug 29 14:29:23 2011 -0700 @@ -811,13 +811,16 @@ sig = JsseJce.getSignature( preferableSignatureAlgorithm.getAlgorithmName()); } else { - if (algorithm.equals("DSA")) { - sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA); - } else if (algorithm.equals("RSA")) { - sig = RSASignature.getInstance(); - } else { - throw new SSLKeyException("neither an RSA or a DSA key"); - } + switch (algorithm) { + case "DSA": + sig = JsseJce.getSignature(JsseJce.SIGNATURE_DSA); + break; + case "RSA": + sig = RSASignature.getInstance(); + break; + default: + throw new SSLKeyException("neither an RSA or a DSA key"); + } } sig.initVerify(publicKey); @@ -1097,13 +1100,14 @@ private static Signature getSignature(String keyAlgorithm) throws NoSuchAlgorithmException { - if (keyAlgorithm.equals("EC")) { - return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA); - } else if (keyAlgorithm.equals("RSA")) { - return RSASignature.getInstance(); - } else { - throw new NoSuchAlgorithmException("neither an RSA or a EC key"); - } + switch (keyAlgorithm) { + case "EC": + return JsseJce.getSignature(JsseJce.SIGNATURE_ECDSA); + case "RSA": + return RSASignature.getInstance(); + default: + throw new NoSuchAlgorithmException("neither an RSA or a EC key"); + } } private void updateSignature(Signature sig, byte clntNonce[], @@ -1611,16 +1615,17 @@ */ private static Signature getSignature(ProtocolVersion protocolVersion, String algorithm) throws GeneralSecurityException { - if (algorithm.equals("RSA")) { - return RSASignature.getInternalInstance(); - } else if (algorithm.equals("DSA")) { - return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA); - } else if (algorithm.equals("EC")) { - return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA); - } else { - throw new SignatureException("Unrecognized algorithm: " - + algorithm); - } + switch (algorithm) { + case "RSA": + return RSASignature.getInternalInstance(); + case "DSA": + return JsseJce.getSignature(JsseJce.SIGNATURE_RAWDSA); + case "EC": + return JsseJce.getSignature(JsseJce.SIGNATURE_RAWECDSA); + default: + throw new SignatureException("Unrecognized algorithm: " + + algorithm); + } } /* @@ -1696,7 +1701,7 @@ md.update(temp); } - private final static Class delegate; + private final static Class delegate; private final static Field spiField; static { @@ -1724,7 +1729,7 @@ // cache Method objects per Spi class // Note that this will prevent the Spi classes from being GC'd. We assume // that is not a problem. - private final static Map methodCache = + private final static Map,Object> methodCache = new ConcurrentHashMap<>(); private static void digestKey(MessageDigest md, SecretKey key) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/Handshaker.java --- a/jdk/src/share/classes/sun/security/ssl/Handshaker.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java Mon Aug 29 14:29:23 2011 -0700 @@ -154,7 +154,7 @@ * Data is protected by the SSLEngine.this lock. */ private volatile boolean taskDelegated = false; - private volatile DelegatedTask delegatedTask = null; + private volatile DelegatedTask delegatedTask = null; private volatile Exception thrown = null; // Could probably use a java.util.concurrent.atomic.AtomicReference @@ -1316,7 +1316,7 @@ thrown = null; } - DelegatedTask getTask() { + DelegatedTask getTask() { if (!taskDelegated) { taskDelegated = true; return delegatedTask; @@ -1358,8 +1358,7 @@ thrown = null; if (e instanceof RuntimeException) { - throw (RuntimeException) - new RuntimeException(msg).initCause(e); + throw new RuntimeException(msg, e); } else if (e instanceof SSLHandshakeException) { throw (SSLHandshakeException) new SSLHandshakeException(msg).initCause(e); @@ -1377,8 +1376,7 @@ * If it's SSLException or any other Exception, * we'll wrap it in an SSLException. */ - throw (SSLException) - new SSLException(msg).initCause(e); + throw new SSLException(msg, e); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/JsseJce.java --- a/jdk/src/share/classes/sun/security/ssl/JsseJce.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/JsseJce.java Mon Aug 29 14:29:23 2011 -0700 @@ -30,7 +30,6 @@ import java.security.*; import java.security.interfaces.RSAPublicKey; -import java.security.spec.RSAPublicKeySpec; import java.security.spec.*; import javax.crypto.*; @@ -110,6 +109,8 @@ } private static final class SunCertificates extends Provider { + private static final long serialVersionUID = -3284138292032213752L; + SunCertificates(final Provider p) { super("SunCertificates", 1.0d, "SunJSSE internal"); AccessController.doPrivileged(new PrivilegedAction() { @@ -372,7 +373,7 @@ KeyFactory factory = JsseJce.getKeyFactory("RSA"); return factory.getKeySpec(key, RSAPublicKeySpec.class); } catch (Exception e) { - throw (RuntimeException)new RuntimeException().initCause(e); + throw new RuntimeException(e); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java --- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -27,8 +27,6 @@ import java.io.*; import java.nio.*; -import java.nio.ReadOnlyBufferException; -import java.util.LinkedList; import java.security.*; import javax.crypto.BadPaddingException; @@ -36,7 +34,6 @@ import javax.net.ssl.*; import javax.net.ssl.SSLEngineResult.*; -import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager; /** * Implementation of an non-blocking SSLEngine. @@ -574,8 +571,7 @@ readMAC = handshaker.newReadMAC(); } catch (GeneralSecurityException e) { // "can't happen" - throw (SSLException)new SSLException - ("Algorithm missing: ").initCause(e); + throw new SSLException("Algorithm missing: ", e); } /* @@ -611,8 +607,7 @@ writeMAC = handshaker.newWriteMAC(); } catch (GeneralSecurityException e) { // "can't happen" - throw (SSLException)new SSLException - ("Algorithm missing: ").initCause(e); + throw new SSLException("Algorithm missing: ", e); } // See comment above. @@ -877,9 +872,7 @@ } catch (SSLException e) { throw e; } catch (IOException e) { - SSLException ex = new SSLException("readRecord"); - ex.initCause(e); - throw ex; + throw new SSLException("readRecord", e); } /* @@ -1151,7 +1144,7 @@ * For now, force it to be large enough to handle any * valid SSL/TLS record. */ - if (netData.remaining() < outputRecord.maxRecordSize) { + if (netData.remaining() < EngineOutputRecord.maxRecordSize) { return new SSLEngineResult( Status.BUFFER_OVERFLOW, getHSStatus(null), 0, 0); } @@ -1248,9 +1241,7 @@ } catch (SSLException e) { throw e; } catch (IOException e) { - SSLException ex = new SSLException("Write problems"); - ex.initCause(e); - throw ex; + throw new SSLException("Write problems", e); } /* @@ -1624,10 +1615,7 @@ } else if (cause instanceof SSLException) { throw (SSLException)cause; } else if (cause instanceof Exception) { - SSLException ssle = new SSLException( - "fatal SSLEngine condition"); - ssle.initCause(cause); - throw ssle; + throw new SSLException("fatal SSLEngine condition", cause); } } @@ -1875,6 +1863,7 @@ * client or server mode. Must be called before any SSL * traffic has started. */ + @SuppressWarnings("fallthrough") synchronized public void setUseClientMode(boolean flag) { switch (connectionState) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java --- a/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/SSLSessionContextImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -33,6 +33,7 @@ import java.util.Hashtable; import java.util.NoSuchElementException; import java.util.Vector; +import java.util.Locale; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSessionContext; @@ -166,7 +167,8 @@ } private String getKey(String hostname, int port) { - return (hostname + ":" + String.valueOf(port)).toLowerCase(); + return (hostname + ":" + + String.valueOf(port)).toLowerCase(Locale.ENGLISH); } // cache a SSLSession diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java --- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -41,8 +41,6 @@ import javax.net.ssl.*; -import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager; - /** * Implementation of an SSL socket. This is a normal connection type * socket, implementing SSL over some lower level socket, such as TCP. @@ -1996,8 +1994,7 @@ readMAC = handshaker.newReadMAC(); } catch (GeneralSecurityException e) { // "can't happen" - throw (SSLException)new SSLException - ("Algorithm missing: ").initCause(e); + throw new SSLException("Algorithm missing: ", e); } /* @@ -2028,8 +2025,7 @@ writeMAC = handshaker.newWriteMAC(); } catch (GeneralSecurityException e) { // "can't happen" - throw (SSLException)new SSLException - ("Algorithm missing: ").initCause(e); + throw new SSLException("Algorithm missing: ", e); } // See comment above. @@ -2217,6 +2213,7 @@ * client or server mode. Must be called before any SSL * traffic has started. */ + @SuppressWarnings("fallthrough") synchronized public void setUseClientMode(boolean flag) { switch (connectionState) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java --- a/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -84,7 +84,7 @@ * * Map: String(keyType) -> String[](alias) */ - private Map serverAliasCache; + private final Map serverAliasCache; /* * Basic container for credentials implemented as an inner class. @@ -113,11 +113,13 @@ } } - SunX509KeyManagerImpl(KeyStore ks, char[] password) throws KeyStoreException, + SunX509KeyManagerImpl(KeyStore ks, char[] password) + throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException { credentialsMap = new HashMap(); - serverAliasCache = new HashMap(); + serverAliasCache = Collections.synchronizedMap( + new HashMap()); if (ks == null) { return; } @@ -352,15 +354,17 @@ if (sigType != null) { if (certs.length > 1) { // if possible, check the public key in the issuer cert - if (!sigType.equals(certs[1].getPublicKey().getAlgorithm())) { + if (!sigType.equals( + certs[1].getPublicKey().getAlgorithm())) { continue; } } else { // Check the signature algorithm of the certificate itself. // Look for the "withRSA" in "SHA1withRSA", etc. String sigAlgName = - certs[0].getSigAlgName().toUpperCase(Locale.ENGLISH); - String pattern = "WITH" + sigType.toUpperCase(Locale.ENGLISH); + certs[0].getSigAlgName().toUpperCase(Locale.ENGLISH); + String pattern = "WITH" + + sigType.toUpperCase(Locale.ENGLISH); if (sigAlgName.contains(pattern) == false) { continue; } @@ -412,5 +416,4 @@ } return list.toArray(new X500Principal[list.size()]); } - } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java --- a/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/ssl/X509KeyManagerImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -91,6 +91,8 @@ // LinkedHashMap with a max size of 10 // see LinkedHashMap JavaDocs private static class SizedMap extends LinkedHashMap { + private static final long serialVersionUID = -8211222668790986062L; + @Override protected boolean removeEldestEntry(Map.Entry eldest) { return size() > 10; } @@ -247,7 +249,7 @@ return null; } entry = (PrivateKeyEntry)newEntry; - entryCacheMap.put(alias, new SoftReference(entry)); + entryCacheMap.put(alias, new SoftReference(entry)); return entry; } catch (Exception e) { // ignore @@ -329,7 +331,7 @@ */ private String chooseAlias(List keyTypeList, Principal[] issuers, CheckType checkType, AlgorithmConstraints constraints) { - if (keyTypeList == null || keyTypeList.size() == 0) { + if (keyTypeList == null || keyTypeList.isEmpty()) { return null; } @@ -403,7 +405,7 @@ // ignore } } - if (allResults == null || allResults.size() == 0) { + if (allResults == null || allResults.isEmpty()) { if (useDebug) { debug.println("KeyMgr: no matching alias found"); } @@ -523,38 +525,43 @@ if (ku != null) { String algorithm = cert.getPublicKey().getAlgorithm(); boolean kuSignature = getBit(ku, 0); - if (algorithm.equals("RSA")) { - // require either signature bit - // or if server also allow key encipherment bit - if (kuSignature == false) { - if ((this == CLIENT) || (getBit(ku, 2) == false)) { + switch (algorithm) { + case "RSA": + // require either signature bit + // or if server also allow key encipherment bit + if (kuSignature == false) { + if ((this == CLIENT) || (getBit(ku, 2) == false)) { + return CheckResult.EXTENSION_MISMATCH; + } + } + break; + case "DSA": + // require signature bit + if (kuSignature == false) { return CheckResult.EXTENSION_MISMATCH; } - } - } else if (algorithm.equals("DSA")) { - // require signature bit - if (kuSignature == false) { - return CheckResult.EXTENSION_MISMATCH; - } - } else if (algorithm.equals("DH")) { - // require keyagreement bit - if (getBit(ku, 4) == false) { - return CheckResult.EXTENSION_MISMATCH; - } - } else if (algorithm.equals("EC")) { - // require signature bit - if (kuSignature == false) { - return CheckResult.EXTENSION_MISMATCH; - } - // For servers, also require key agreement. - // This is not totally accurate as the keyAgreement bit - // is only necessary for static ECDH key exchange and - // not ephemeral ECDH. We leave it in for now until - // there are signs that this check causes problems - // for real world EC certificates. - if ((this == SERVER) && (getBit(ku, 4) == false)) { - return CheckResult.EXTENSION_MISMATCH; - } + break; + case "DH": + // require keyagreement bit + if (getBit(ku, 4) == false) { + return CheckResult.EXTENSION_MISMATCH; + } + break; + case "EC": + // require signature bit + if (kuSignature == false) { + return CheckResult.EXTENSION_MISMATCH; + } + // For servers, also require key agreement. + // This is not totally accurate as the keyAgreement bit + // is only necessary for static ECDH key exchange and + // not ephemeral ECDH. We leave it in for now until + // there are signs that this check causes problems + // for real world EC certificates. + if ((this == SERVER) && (getBit(ku, 4) == false)) { + return CheckResult.EXTENSION_MISMATCH; + } + break; } } } catch (CertificateException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/timestamp/HttpTimestamper.java --- a/jdk/src/share/classes/sun/security/timestamp/HttpTimestamper.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/timestamp/HttpTimestamper.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -30,12 +30,11 @@ import java.io.IOException; import java.net.URL; import java.net.HttpURLConnection; -import java.util.Iterator; +import java.util.List; +import java.util.Map; import java.util.Set; -import java.util.Arrays; import sun.misc.IOUtils; -import sun.security.pkcs.*; /** * A timestamper that communicates with a Timestamping Authority (TSA) @@ -95,11 +94,12 @@ connection.setConnectTimeout(CONNECT_TIMEOUT); if (DEBUG) { - Set headers = connection.getRequestProperties().entrySet(); + Set>> headers = + connection.getRequestProperties().entrySet(); System.out.println(connection.getRequestMethod() + " " + tsaUrl + " HTTP/1.1"); - for (Iterator i = headers.iterator(); i.hasNext(); ) { - System.out.println(" " + i.next()); + for (Map.Entry> entry : headers) { + System.out.println(" " + entry); } System.out.println(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/timestamp/TSResponse.java --- a/jdk/src/share/classes/sun/security/timestamp/TSResponse.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/timestamp/TSResponse.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -26,15 +26,8 @@ package sun.security.timestamp; import java.io.IOException; -import java.math.BigInteger; import sun.security.pkcs.PKCS7; -import sun.security.pkcs.PKCS9Attribute; -import sun.security.pkcs.PKCS9Attributes; -import sun.security.pkcs.ParsingException; -import sun.security.pkcs.SignerInfo; import sun.security.util.DerValue; -import sun.security.x509.AlgorithmId; -import sun.security.x509.X500Name; /** * This class provides the response corresponding to a timestamp request, @@ -376,9 +369,11 @@ } } -final static class TimestampException extends IOException { - TimestampException(String message) { - super(message); + final static class TimestampException extends IOException { + private static final long serialVersionUID = -1631631794891940953L; + + TimestampException(String message) { + super(message); + } } } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/tools/JarSigner.java --- a/jdk/src/share/classes/sun/security/tools/JarSigner.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/tools/JarSigner.java Mon Aug 29 14:29:23 2011 -0700 @@ -1425,6 +1425,7 @@ * lines of attributes plus an empty line. The empty line is included * in the header. */ + @SuppressWarnings("fallthrough") private int findHeaderEnd(byte[] bs) { // Initial state true to deal with empty header boolean newline = true; // just met a newline @@ -1739,8 +1740,7 @@ NetscapeCertTypeExtension extn = new NetscapeCertTypeExtension(encoded); - Boolean val = (Boolean)extn.get( - NetscapeCertTypeExtension.OBJECT_SIGNING); + Boolean val = extn.get(NetscapeCertTypeExtension.OBJECT_SIGNING); if (!val) { if (bad != null) { bad[2] = true; @@ -2054,7 +2054,7 @@ ClassLoader appClassLoader = new URLClassLoader(urls); // attempt to find signer - Class signerClass = appClassLoader.loadClass(signerClassName); + Class signerClass = appClassLoader.loadClass(signerClassName); // Check that it implements ContentSigner Object signer = signerClass.newInstance(); @@ -2297,9 +2297,7 @@ tsaUri = new URI(tsaUrl); } } catch (URISyntaxException e) { - IOException ioe = new IOException(); - ioe.initCause(e); - throw ioe; + throw new IOException(e); } // Assemble parameters for the signing mechanism diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java --- a/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,6 +25,8 @@ package sun.security.tools; +import java.util.Locale; + /** *

      This class provides several utilities to KeyStore. * @@ -63,7 +65,7 @@ } else if(storetype.equalsIgnoreCase("Windows-ROOT")) { return "Windows-ROOT"; } else { - return storetype.toUpperCase(); + return storetype.toUpperCase(Locale.ENGLISH); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/tools/KeyTool.java --- a/jdk/src/share/classes/sun/security/tools/KeyTool.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java Mon Aug 29 14:29:23 2011 -0700 @@ -1197,7 +1197,7 @@ new CertificateVersion(CertificateVersion.V3)); info.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId( - AlgorithmId.getAlgorithmId(sigAlgName))); + AlgorithmId.get(sigAlgName))); info.set(X509CertInfo.ISSUER, new CertificateIssuerName(issuer)); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); @@ -1227,7 +1227,7 @@ Iterator attrs = req.getAttributes().getAttributes().iterator(); while (attrs.hasNext()) { PKCS10Attribute attr = attrs.next(); - if (attr.getAttributeId().equals(PKCS9Attribute.EXTENSION_REQUEST_OID)) { + if (attr.getAttributeId().equals((Object)PKCS9Attribute.EXTENSION_REQUEST_OID)) { reqex = (CertificateExtensions)attr.getAttributeValue(); } } @@ -1266,7 +1266,7 @@ Date firstDate = getStartDate(startDate); Date lastDate = (Date) firstDate.clone(); - lastDate.setTime(lastDate.getTime() + (long)validity*1000*24*60*60); + lastDate.setTime(lastDate.getTime() + validity*1000*24*60*60); CertificateValidity interval = new CertificateValidity(firstDate, lastDate); @@ -2093,8 +2093,9 @@ CRLDistributionPointsExtension ext = X509CertImpl.toImpl(cert).getCRLDistributionPointsExtension(); if (ext == null) return crls; - for (DistributionPoint o: (List) - ext.get(CRLDistributionPointsExtension.POINTS)) { + List distPoints = + ext.get(CRLDistributionPointsExtension.POINTS); + for (DistributionPoint o: distPoints) { GeneralNames names = o.getFullName(); if (names != null) { for (GeneralName name: names.names()) { @@ -2199,7 +2200,7 @@ req.getSubjectName(), pkey.getFormat(), pkey.getAlgorithm()); for (PKCS10Attribute attr: req.getAttributes().getAttributes()) { ObjectIdentifier oid = attr.getAttributeId(); - if (oid.equals(PKCS9Attribute.EXTENSION_REQUEST_OID)) { + if (oid.equals((Object)PKCS9Attribute.EXTENSION_REQUEST_OID)) { CertificateExtensions exts = (CertificateExtensions)attr.getAttributeValue(); if (exts != null) { printExtensions(rb.getString("Extension.Request."), exts, out); @@ -2314,7 +2315,7 @@ } } jf.close(); - if (ss.size() == 0) { + if (ss.isEmpty()) { out.println(rb.getString("Not.a.signed.jar.file")); } } else if (sslserver != null) { @@ -3745,7 +3746,7 @@ } String n = reqex.getNameByOid(findOidForExtName(type)); if (add) { - Extension e = (Extension)reqex.get(n); + Extension e = reqex.get(n); if (!e.isCritical() && action == 0 || e.isCritical() && action == 1) { e = Extension.newExtension( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/tools/TimestampedSigner.java --- a/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/tools/TimestampedSigner.java Mon Aug 29 14:29:23 2011 -0700 @@ -275,7 +275,8 @@ URIName uri; for (int i = 0; i < derValue.length; i++) { description = new AccessDescription(derValue[i]); - if (description.getAccessMethod().equals(AD_TIMESTAMPING_Id)) { + if (description.getAccessMethod() + .equals((Object)AD_TIMESTAMPING_Id)) { location = description.getAccessLocation(); if (location.getType() == GeneralNameInterface.NAME_URI) { uri = (URIName) location.getName(); @@ -351,7 +352,7 @@ } if (!Arrays.equals(tst.getHashedMessage(), digest)) { throw new IOException("Digest octets changed in timestamp token"); - }; + } BigInteger replyNonce = tst.getNonce(); if (replyNonce == null && nonce != null) { @@ -374,7 +375,7 @@ throw new CertificateException( "Certificate is not valid for timestamping"); } - List keyPurposes = cert.getExtendedKeyUsage(); + List keyPurposes = cert.getExtendedKeyUsage(); if (keyPurposes == null || ! keyPurposes.contains(KP_TIMESTAMPING_OID)) { throw new CertificateException( diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java --- a/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java Mon Aug 29 14:29:23 2011 -0700 @@ -123,7 +123,7 @@ * set the PolicyFileName */ void setPolicyFileName(String policyFileName) { - this.policyFileName = policyFileName; + PolicyTool.policyFileName = policyFileName; } /** @@ -605,7 +605,7 @@ if (type.equals(PolicyParser.PrincipalEntry.WILDCARD_CLASS) || type.equals(PolicyParser.REPLACE_NAME)) { return; - }; + } Class PRIN = Class.forName("java.security.Principal"); Class pc = Class.forName(type, true, Thread.currentThread().getContextClassLoader()); @@ -629,6 +629,7 @@ /** * Check to see if the Permission contents are OK */ + @SuppressWarnings("fallthrough") void verifyPermission(String type, String name, String actions) @@ -655,6 +656,7 @@ // proceed to the one-param constructor objects.add(null); } + /* fall through */ case 1: try { c = pc.getConstructor(ONEPARAMS); @@ -663,6 +665,7 @@ // proceed to the two-param constructor objects.add(null); } + /* fall through */ case 2: c = pc.getConstructor(TWOPARAMS); break; @@ -1553,16 +1556,15 @@ if (edit) { // get the selected item entries = tool.getEntry(); - List policyList = (List)tw.getComponent(tw.MW_POLICY_LIST); + List policyList = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); listIndex = policyList.getSelectedIndex(); // get principal list - LinkedList principals = + LinkedList principals = entries[listIndex].getGrantEntry().principals; for (int i = 0; i < principals.size(); i++) { String prinString = null; - PolicyParser.PrincipalEntry nextPrin = - (PolicyParser.PrincipalEntry)principals.get(i); + PolicyParser.PrincipalEntry nextPrin = principals.get(i); prinList.addTaggedItem(PrincipalEntryToUserFriendlyString(nextPrin), nextPrin); } @@ -1631,10 +1633,10 @@ label = new Label(PolicyTool.rb.getString("Principals.")); tw.addNewComponent(this, label, PE_PRIN_LABEL, 0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); tw.addNewComponent(this, prinList, PE_PRIN_LIST, 1, 3, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // panel for permission buttons panel = new Panel(); @@ -1661,12 +1663,12 @@ tw.addNewComponent(this, panel, PE_PANEL1, 0, 4, 2, 1, 0.0, 0.0, GridBagConstraints.HORIZONTAL, - tw.LITE_BOTTOM_PADDING); + ToolWindow.LITE_BOTTOM_PADDING); // permission list tw.addNewComponent(this, permList, PE_PERM_LIST, 0, 5, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // panel for Done and Cancel buttons @@ -1679,14 +1681,14 @@ (new AddEntryDoneButtonListener(tool, tw, this, edit)); tw.addNewComponent(panel, button, PE_DONE_BUTTON, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // Cancel Button button = new Button(PolicyTool.rb.getString("Cancel")); button.addActionListener(new CancelButtonListener(this)); tw.addNewComponent(panel, button, PE_CANCEL_BUTTON, 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // add the panel tw.addNewComponent(this, panel, PE_PANEL2, @@ -1760,7 +1762,7 @@ (PolicyTool.rb.getString("KeyStore.URL.")); tw.addNewComponent(this, label, KSD_NAME_LABEL, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); TextField tf = new TextField(tool.getKeyStoreName(), 30); // URL to U R L, so that accessibility reader will pronounce well @@ -1768,45 +1770,45 @@ PolicyTool.rb.getString("KeyStore.U.R.L.")); tw.addNewComponent(this, tf, KSD_NAME_TEXTFIELD, 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // KeyStore type and textfield label = new Label(PolicyTool.rb.getString("KeyStore.Type.")); tw.addNewComponent(this, label, KSD_TYPE_LABEL, 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); tf = new TextField(tool.getKeyStoreType(), 30); tf.getAccessibleContext().setAccessibleName( PolicyTool.rb.getString("KeyStore.Type.")); tw.addNewComponent(this, tf, KSD_TYPE_TEXTFIELD, 1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // KeyStore provider and textfield label = new Label(PolicyTool.rb.getString ("KeyStore.Provider.")); tw.addNewComponent(this, label, KSD_PROVIDER_LABEL, 0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); tf = new TextField(tool.getKeyStoreProvider(), 30); tf.getAccessibleContext().setAccessibleName( PolicyTool.rb.getString("KeyStore.Provider.")); tw.addNewComponent(this, tf, KSD_PROVIDER_TEXTFIELD, 1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // KeyStore password URL and textfield label = new Label(PolicyTool.rb.getString ("KeyStore.Password.URL.")); tw.addNewComponent(this, label, KSD_PWD_URL_LABEL, 0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); tf = new TextField(tool.getKeyStorePwdURL(), 30); tf.getAccessibleContext().setAccessibleName( PolicyTool.rb.getString("KeyStore.Password.U.R.L.")); tw.addNewComponent(this, tf, KSD_PWD_URL_TEXTFIELD, 1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // OK button Button okButton = new Button(PolicyTool.rb.getString("OK")); @@ -1862,7 +1864,7 @@ new Label(PolicyTool.rb.getString(".Add.New.Principal."))); tw.addNewComponent(newTD, label, PRD_DESC_LABEL, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); // principal choice Choice choice = new Choice(); @@ -1888,7 +1890,7 @@ tw.addNewComponent(newTD, choice, PRD_PRIN_CHOICE, 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // principal textfield TextField tf; @@ -1898,7 +1900,7 @@ tf.getAccessibleContext().setAccessibleName(PRIN_TYPE); tw.addNewComponent(newTD, tf, PRD_PRIN_TEXTFIELD, 1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // name label and textfield label = new Label(PRIN_NAME); @@ -1909,10 +1911,10 @@ tw.addNewComponent(newTD, label, PRD_NAME_LABEL, 0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); tw.addNewComponent(newTD, tf, PRD_NAME_TEXTFIELD, 1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // OK button Button okButton = new Button(PolicyTool.rb.getString("OK")); @@ -1921,13 +1923,13 @@ (tool, tw, this, newTD, edit)); tw.addNewComponent(newTD, okButton, PRD_OK_BUTTON, 0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); // cancel button Button cancelButton = new Button(PolicyTool.rb.getString("Cancel")); cancelButton.addActionListener(new CancelButtonListener(newTD)); tw.addNewComponent(newTD, cancelButton, PRD_CANCEL_BUTTON, 1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); newTD.setVisible(true); } @@ -1969,7 +1971,7 @@ new Label(PolicyTool.rb.getString(".Add.New.Permission."))); tw.addNewComponent(newTD, label, PD_DESC_LABEL, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); // permission choice (added in alphabetical order) Choice choice = new Choice(); @@ -1982,7 +1984,7 @@ choice.addItemListener(new PermissionMenuListener(newTD)); tw.addNewComponent(newTD, choice, PD_PERM_CHOICE, 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // permission textfield TextField tf; @@ -1996,7 +1998,7 @@ } tw.addNewComponent(newTD, tf, PD_PERM_TEXTFIELD, 1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // name label and textfield choice = new Choice(); @@ -2010,10 +2012,10 @@ } tw.addNewComponent(newTD, choice, PD_NAME_CHOICE, 0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); tw.addNewComponent(newTD, tf, PD_NAME_TEXTFIELD, 1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // actions label and textfield choice = new Choice(); @@ -2027,22 +2029,22 @@ } tw.addNewComponent(newTD, choice, PD_ACTIONS_CHOICE, 0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); tw.addNewComponent(newTD, tf, PD_ACTIONS_TEXTFIELD, 1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // signedby label and textfield label = new Label(PolicyTool.rb.getString("Signed.By.")); tw.addNewComponent(newTD, label, PD_SIGNEDBY_LABEL, 0, 4, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); tf = (edit ? new TextField(editMe.signedBy, 40) : new TextField(40)); tf.getAccessibleContext().setAccessibleName( PolicyTool.rb.getString("Signed.By.")); tw.addNewComponent(newTD, tf, PD_SIGNEDBY_TEXTFIELD, 1, 4, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.LR_PADDING); + ToolWindow.LR_PADDING); // OK button Button okButton = new Button(PolicyTool.rb.getString("OK")); @@ -2051,14 +2053,14 @@ (tool, tw, this, newTD, edit)); tw.addNewComponent(newTD, okButton, PD_OK_BUTTON, 0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); // cancel button Button cancelButton = new Button(PolicyTool.rb.getString("Cancel")); cancelButton.addActionListener(new CancelButtonListener(newTD)); tw.addNewComponent(newTD, cancelButton, PD_CANCEL_BUTTON, 1, 5, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.TOP_BOTTOM_PADDING); + ToolWindow.TOP_BOTTOM_PADDING); newTD.setVisible(true); } @@ -2205,7 +2207,7 @@ void displayConfirmRemovePolicyEntry() { // find the entry to be removed - List list = (List)tw.getComponent(tw.MW_POLICY_LIST); + List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); int index = list.getSelectedIndex(); PolicyEntry entries[] = tool.getEntry(); @@ -2219,7 +2221,7 @@ (PolicyTool.rb.getString("Remove.this.Policy.Entry.")); tw.addNewComponent(this, label, CRPE_LABEL1, 0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.BOTTOM_PADDING); + ToolWindow.BOTTOM_PADDING); // display the policy entry label = new Label(entries[index].codebaseToString()); @@ -2237,7 +2239,8 @@ if (i == (perms.size()-1)) { tw.addNewComponent(this, label, CRPE_LABEL2 + 2 + i, 1, 3 + i, 1, 1, 0.0, 0.0, - GridBagConstraints.BOTH, tw.BOTTOM_PADDING); + GridBagConstraints.BOTH, + ToolWindow.BOTTOM_PADDING); } else { tw.addNewComponent(this, label, CRPE_LABEL2 + 2 + i, 1, 3 + i, 1, 1, 0.0, 0.0, @@ -2256,18 +2259,18 @@ (new ConfirmRemovePolicyEntryOKButtonListener(tool, tw, this)); tw.addNewComponent(panel, okButton, CRPE_PANEL_OK, 0, 0, 1, 1, 0.0, 0.0, - GridBagConstraints.VERTICAL, tw.LR_PADDING); + GridBagConstraints.VERTICAL, ToolWindow.LR_PADDING); // cancel button Button cancelButton = new Button(PolicyTool.rb.getString("Cancel")); cancelButton.addActionListener(new CancelButtonListener(this)); tw.addNewComponent(panel, cancelButton, CRPE_PANEL_CANCEL, 1, 0, 1, 1, 0.0, 0.0, - GridBagConstraints.VERTICAL, tw.LR_PADDING); + GridBagConstraints.VERTICAL, ToolWindow.LR_PADDING); tw.addNewComponent(this, panel, CRPE_LABEL2 + 2 + perms.size(), 0, 3 + perms.size(), 2, 1, 0.0, 0.0, - GridBagConstraints.VERTICAL, tw.TOP_BOTTOM_PADDING); + GridBagConstraints.VERTICAL, ToolWindow.TOP_BOTTOM_PADDING); pack(); setVisible(true); @@ -2310,7 +2313,7 @@ // display the new policy filename TextField newFilename = (TextField)tw.getComponent - (tw.MW_FILENAME_TEXTFIELD); + (ToolWindow.MW_FILENAME_TEXTFIELD); newFilename.setText(filename); tw.setVisible(true); @@ -2346,7 +2349,7 @@ (PolicyTool.rb.getString("Save.changes.")); tw.addNewComponent(this, label, USC_LABEL, 0, 0, 3, 1, 0.0, 0.0, GridBagConstraints.BOTH, - tw.L_TOP_BOTTOM_PADDING); + ToolWindow.L_TOP_BOTTOM_PADDING); Panel panel = new Panel(); panel.setLayout(new GridBagLayout()); @@ -2357,21 +2360,21 @@ tw.addNewComponent(panel, yesButton, USC_YES_BUTTON, 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.LR_BOTTOM_PADDING); + ToolWindow.LR_BOTTOM_PADDING); Button noButton = new Button(PolicyTool.rb.getString("No")); noButton.addActionListener (new UserSaveNoButtonListener(this, tool, tw, select)); tw.addNewComponent(panel, noButton, USC_NO_BUTTON, 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.LR_BOTTOM_PADDING); + ToolWindow.LR_BOTTOM_PADDING); Button cancelButton = new Button(PolicyTool.rb.getString("Cancel")); cancelButton.addActionListener (new UserSaveCancelButtonListener(this)); tw.addNewComponent(panel, cancelButton, USC_CANCEL_BUTTON, 2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.VERTICAL, - tw.LR_BOTTOM_PADDING); + ToolWindow.LR_BOTTOM_PADDING); tw.addNewComponent(this, panel, USC_PANEL, 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.BOTH); @@ -2391,6 +2394,7 @@ * (either QUITting, opening NEW policy file, or OPENing an existing * policy file. do that now. */ + @SuppressWarnings("fallthrough") void userSaveContinue(PolicyTool tool, ToolWindow tw, ToolDialog us, int select) { @@ -2417,8 +2421,8 @@ tw.replacePolicyList(list); // display null policy filename and keystore - TextField newFilename = (TextField) - tw.getComponent(tw.MW_FILENAME_TEXTFIELD); + TextField newFilename = (TextField)tw.getComponent( + ToolWindow.MW_FILENAME_TEXTFIELD); newFilename.setText(""); tw.setVisible(true); break; @@ -2459,8 +2463,8 @@ tool.modified = false; // display the new policy filename - newFilename = (TextField) - tw.getComponent(tw.MW_FILENAME_TEXTFIELD); + newFilename = (TextField)tw.getComponent( + ToolWindow.MW_FILENAME_TEXTFIELD); newFilename.setText(policyFile); tw.setVisible(true); @@ -2479,8 +2483,8 @@ tool.modified = false; // display a null policy filename - newFilename = (TextField) - tw.getComponent(tw.MW_FILENAME_TEXTFIELD); + newFilename = (TextField)tw.getComponent( + ToolWindow.MW_FILENAME_TEXTFIELD); newFilename.setText(""); tw.setVisible(true); @@ -2658,51 +2662,52 @@ public void actionPerformed(ActionEvent e) { - if (PolicyTool.collator.compare(e.getActionCommand(), tw.QUIT) == 0) { + if (PolicyTool.collator.compare(e.getActionCommand(), + ToolWindow.QUIT) == 0) { // ask user if they want to save changes ToolDialog td = new ToolDialog (PolicyTool.rb.getString("Save.Changes"), tool, tw, true); - td.displayUserSave(td.QUIT); + td.displayUserSave(ToolDialog.QUIT); // the above method will perform the QUIT as long as the // user does not CANCEL the request } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.NEW_POLICY_FILE) == 0) { + ToolWindow.NEW_POLICY_FILE) == 0) { // ask user if they want to save changes ToolDialog td = new ToolDialog (PolicyTool.rb.getString("Save.Changes"), tool, tw, true); - td.displayUserSave(td.NEW); + td.displayUserSave(ToolDialog.NEW); // the above method will perform the NEW as long as the // user does not CANCEL the request } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.OPEN_POLICY_FILE) == 0) { + ToolWindow.OPEN_POLICY_FILE) == 0) { // ask user if they want to save changes ToolDialog td = new ToolDialog (PolicyTool.rb.getString("Save.Changes"), tool, tw, true); - td.displayUserSave(td.OPEN); + td.displayUserSave(ToolDialog.OPEN); // the above method will perform the OPEN as long as the // user does not CANCEL the request } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.SAVE_POLICY_FILE) == 0) { + ToolWindow.SAVE_POLICY_FILE) == 0) { // get the previously entered filename - String filename = ((TextField) - tw.getComponent(tw.MW_FILENAME_TEXTFIELD)).getText(); + String filename = ((TextField)tw.getComponent( + ToolWindow.MW_FILENAME_TEXTFIELD)).getText(); // if there is no filename, do a SAVE_AS if (filename == null || filename.length() == 0) { // user wants to SAVE AS ToolDialog td = new ToolDialog (PolicyTool.rb.getString("Save.As"), tool, tw, true); - td.displaySaveAsDialog(td.NOACTION); + td.displaySaveAsDialog(ToolDialog.NOACTION); } else { try { // save the policy entries to a file @@ -2726,15 +2731,15 @@ } } } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.SAVE_AS_POLICY_FILE) == 0) { + ToolWindow.SAVE_AS_POLICY_FILE) == 0) { // user wants to SAVE AS ToolDialog td = new ToolDialog (PolicyTool.rb.getString("Save.As"), tool, tw, true); - td.displaySaveAsDialog(td.NOACTION); + td.displaySaveAsDialog(ToolDialog.NOACTION); } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.VIEW_WARNINGS) == 0) { + ToolWindow.VIEW_WARNINGS) == 0) { tw.displayWarningLog(null); } } @@ -2756,7 +2761,7 @@ public void actionPerformed(ActionEvent e) { if (PolicyTool.collator.compare(e.getActionCommand(), - tw.ADD_POLICY_ENTRY) == 0) { + ToolWindow.ADD_POLICY_ENTRY) == 0) { // display a dialog box for the user to enter policy info ToolDialog td = new ToolDialog @@ -2764,10 +2769,10 @@ td.displayPolicyEntryDialog(false); } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.REMOVE_POLICY_ENTRY) == 0) { + ToolWindow.REMOVE_POLICY_ENTRY) == 0) { // get the selected entry - List list = (List)tw.getComponent(tw.MW_POLICY_LIST); + List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); int index = list.getSelectedIndex(); if (index < 0) { tw.displayErrorDialog(null, new Exception @@ -2781,10 +2786,10 @@ td.displayConfirmRemovePolicyEntry(); } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.EDIT_POLICY_ENTRY) == 0) { + ToolWindow.EDIT_POLICY_ENTRY) == 0) { // get the selected entry - List list = (List)tw.getComponent(tw.MW_POLICY_LIST); + List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); int index = list.getSelectedIndex(); if (index < 0) { tw.displayErrorDialog(null, new Exception @@ -2798,12 +2803,12 @@ td.displayPolicyEntryDialog(true); } else if (PolicyTool.collator.compare(e.getActionCommand(), - tw.EDIT_KEYSTORE) == 0) { + ToolWindow.EDIT_KEYSTORE) == 0) { // display a dialog box for the user to enter keystore info ToolDialog td = new ToolDialog (PolicyTool.rb.getString("KeyStore"), tool, tw, true); - td.keyStoreDialog(td.EDIT_KEYSTORE); + td.keyStoreDialog(ToolDialog.EDIT_KEYSTORE); } } } @@ -2855,7 +2860,7 @@ } // add the entry - List policyList = (List)tw.getComponent(tw.MW_POLICY_LIST); + List policyList = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); if (edit) { int listIndex = policyList.getSelectedIndex(); tool.addEntry(newEntry, listIndex); @@ -2896,14 +2901,14 @@ public void actionPerformed(ActionEvent e) { - String URLString = ((TextField) - td.getComponent(td.KSD_NAME_TEXTFIELD)).getText().trim(); - String type = ((TextField) - td.getComponent(td.KSD_TYPE_TEXTFIELD)).getText().trim(); - String provider = ((TextField) - td.getComponent(td.KSD_PROVIDER_TEXTFIELD)).getText().trim(); - String pwdURL = ((TextField) - td.getComponent(td.KSD_PWD_URL_TEXTFIELD)).getText().trim(); + String URLString = ((TextField)td.getComponent( + ToolDialog.KSD_NAME_TEXTFIELD)).getText().trim(); + String type = ((TextField)td.getComponent( + ToolDialog.KSD_TYPE_TEXTFIELD)).getText().trim(); + String provider = ((TextField)td.getComponent( + ToolDialog.KSD_PROVIDER_TEXTFIELD)).getText().trim(); + String pwdURL = ((TextField)td.getComponent( + ToolDialog.KSD_PWD_URL_TEXTFIELD)).getText().trim(); try { tool.openKeyStore @@ -3018,7 +3023,7 @@ // add the principal to the GUI principal list TaggedList prinList = - (TaggedList)listDialog.getComponent(listDialog.PE_PRIN_LIST); + (TaggedList)listDialog.getComponent(ToolDialog.PE_PRIN_LIST); String prinString = ToolDialog.PrincipalEntryToUserFriendlyString(pppe); if (edit) { @@ -3079,7 +3084,7 @@ // add the permission to the GUI permission list TaggedList permList = - (TaggedList)listDialog.getComponent(listDialog.PE_PERM_LIST); + (TaggedList)listDialog.getComponent(ToolDialog.PE_PERM_LIST); String permString = ToolDialog.PermissionEntryToUserFriendlyString(pppe); if (edit) { @@ -3121,7 +3126,8 @@ public void actionPerformed(ActionEvent e) { // get the Principal selected from the Principal List - TaggedList prinList = (TaggedList)td.getComponent(td.PE_PRIN_LIST); + TaggedList prinList = (TaggedList)td.getComponent( + ToolDialog.PE_PRIN_LIST); int prinIndex = prinList.getSelectedIndex(); if (prinIndex < 0) { @@ -3155,7 +3161,8 @@ public void actionPerformed(ActionEvent e) { // get the Permission selected from the Permission List - TaggedList permList = (TaggedList)td.getComponent(td.PE_PERM_LIST); + TaggedList permList = (TaggedList)td.getComponent( + ToolDialog.PE_PERM_LIST); int permIndex = permList.getSelectedIndex(); if (permIndex < 0) { @@ -3196,7 +3203,8 @@ public void actionPerformed(ActionEvent e) { // get the Principal selected from the Principal List - TaggedList list = (TaggedList)td.getComponent(td.PE_PRIN_LIST); + TaggedList list = (TaggedList)td.getComponent( + ToolDialog.PE_PRIN_LIST); int prinIndex = list.getSelectedIndex(); if (prinIndex < 0) { @@ -3235,7 +3243,7 @@ public void actionPerformed(ActionEvent e) { // get the Permission selected from the Permission List - List list = (List)td.getComponent(td.PE_PERM_LIST); + List list = (List)td.getComponent(ToolDialog.PE_PERM_LIST); int permIndex = list.getSelectedIndex(); if (permIndex < 0) { @@ -3260,19 +3268,19 @@ public void itemStateChanged(ItemEvent e) { - Choice prin = (Choice)td.getComponent(td.PRD_PRIN_CHOICE); - TextField prinField = - (TextField)td.getComponent(td.PRD_PRIN_TEXTFIELD); - TextField nameField = - (TextField)td.getComponent(td.PRD_NAME_TEXTFIELD); + Choice prin = (Choice)td.getComponent(ToolDialog.PRD_PRIN_CHOICE); + TextField prinField = (TextField)td.getComponent( + ToolDialog.PRD_PRIN_TEXTFIELD); + TextField nameField = (TextField)td.getComponent( + ToolDialog.PRD_NAME_TEXTFIELD); prin.getAccessibleContext().setAccessibleName( PolicyTool.splitToWords((String)e.getItem())); - if (((String)e.getItem()).equals(td.PRIN_TYPE)) { + if (((String)e.getItem()).equals(ToolDialog.PRIN_TYPE)) { // ignore if they choose "Principal Type:" item if (prinField.getText() != null && prinField.getText().length() > 0) { - Prin inputPrin = td.getPrin(prinField.getText(), true); + Prin inputPrin = ToolDialog.getPrin(prinField.getText(), true); prin.select(inputPrin.CLASS); } return; @@ -3286,7 +3294,7 @@ // set the text in the textfield and also modify the // pull-down choice menus to reflect the correct possible // set of names and actions - Prin inputPrin = td.getPrin((String)e.getItem(), false); + Prin inputPrin = ToolDialog.getPrin((String)e.getItem(), false); if (inputPrin != null) { prinField.setText(inputPrin.FULL_CLASS); } @@ -3306,26 +3314,31 @@ public void itemStateChanged(ItemEvent e) { - Choice perms = (Choice)td.getComponent(td.PD_PERM_CHOICE); - Choice names = (Choice)td.getComponent(td.PD_NAME_CHOICE); - Choice actions = (Choice)td.getComponent(td.PD_ACTIONS_CHOICE); - TextField nameField = - (TextField)td.getComponent(td.PD_NAME_TEXTFIELD); - TextField actionsField = - (TextField)td.getComponent(td.PD_ACTIONS_TEXTFIELD); - TextField permField = (TextField)td.getComponent(td.PD_PERM_TEXTFIELD); - TextField signedbyField = - (TextField)td.getComponent(td.PD_SIGNEDBY_TEXTFIELD); + Choice perms = (Choice)td.getComponent( + ToolDialog.PD_PERM_CHOICE); + Choice names = (Choice)td.getComponent( + ToolDialog.PD_NAME_CHOICE); + Choice actions = (Choice)td.getComponent( + ToolDialog.PD_ACTIONS_CHOICE); + TextField nameField = (TextField)td.getComponent( + ToolDialog.PD_NAME_TEXTFIELD); + TextField actionsField = (TextField)td.getComponent( + ToolDialog.PD_ACTIONS_TEXTFIELD); + TextField permField = (TextField)td.getComponent( + ToolDialog.PD_PERM_TEXTFIELD); + TextField signedbyField = (TextField)td.getComponent( + ToolDialog.PD_SIGNEDBY_TEXTFIELD); perms.getAccessibleContext().setAccessibleName( PolicyTool.splitToWords((String)e.getItem())); // ignore if they choose the 'Permission:' item - if (PolicyTool.collator.compare((String)e.getItem(), td.PERM) == 0) { + if (PolicyTool.collator.compare((String)e.getItem(), + ToolDialog.PERM) == 0) { if (permField.getText() != null && permField.getText().length() > 0) { - Perm inputPerm = td.getPerm(permField.getText(), true); + Perm inputPerm = ToolDialog.getPerm(permField.getText(), true); if (inputPerm != null) { perms.select(inputPerm.CLASS); } @@ -3344,7 +3357,7 @@ // pull-down choice menus to reflect the correct possible // set of names and actions - Perm inputPerm = td.getPerm((String)e.getItem(), false); + Perm inputPerm = ToolDialog.getPerm((String)e.getItem(), false); if (inputPerm == null) { permField.setText(""); } else { @@ -3368,14 +3381,14 @@ public void itemStateChanged(ItemEvent e) { - Choice names = (Choice)td.getComponent(td.PD_NAME_CHOICE); + Choice names = (Choice)td.getComponent(ToolDialog.PD_NAME_CHOICE); names.getAccessibleContext().setAccessibleName( PolicyTool.splitToWords((String)e.getItem())); - if (((String)e.getItem()).indexOf(td.PERM_NAME) != -1) + if (((String)e.getItem()).indexOf(ToolDialog.PERM_NAME) != -1) return; - TextField tf = (TextField)td.getComponent(td.PD_NAME_TEXTFIELD); + TextField tf = (TextField)td.getComponent(ToolDialog.PD_NAME_TEXTFIELD); tf.setText((String)e.getItem()); } } @@ -3393,13 +3406,15 @@ public void itemStateChanged(ItemEvent e) { - Choice actions = (Choice)td.getComponent(td.PD_ACTIONS_CHOICE); + Choice actions = (Choice)td.getComponent( + ToolDialog.PD_ACTIONS_CHOICE); actions.getAccessibleContext().setAccessibleName((String)e.getItem()); - if (((String)e.getItem()).indexOf(td.PERM_ACTIONS) != -1) + if (((String)e.getItem()).indexOf(ToolDialog.PERM_ACTIONS) != -1) return; - TextField tf = (TextField)td.getComponent(td.PD_ACTIONS_TEXTFIELD); + TextField tf = (TextField)td.getComponent( + ToolDialog.PD_ACTIONS_TEXTFIELD); if (tf.getText() == null || tf.getText().equals("")) { tf.setText((String)e.getItem()); } else { @@ -3521,8 +3536,8 @@ us.dispose(); try { - String filename = ((TextField) - tw.getComponent(tw.MW_FILENAME_TEXTFIELD)).getText(); + String filename = ((TextField)tw.getComponent( + ToolWindow.MW_FILENAME_TEXTFIELD)).getText(); if (filename == null || filename.equals("")) { us.displaySaveAsDialog(select); @@ -3616,7 +3631,7 @@ public void actionPerformed(ActionEvent e) { // remove the entry - List list = (List)tw.getComponent(tw.MW_POLICY_LIST); + List list = (List)tw.getComponent(ToolWindow.MW_POLICY_LIST); int index = list.getSelectedIndex(); PolicyEntry entries[] = tool.getEntry(); tool.removeEntry(entries[index]); @@ -3640,13 +3655,15 @@ * it's special, and does not pop out a warning box. */ class NoDisplayException extends RuntimeException { - + private static final long serialVersionUID = -4611761427108719794L; } /** * This is a java.awt.List that bind an Object to each String it holds. */ class TaggedList extends List { + private static final long serialVersionUID = -5676238110427785853L; + private java.util.List data = new LinkedList<>(); public TaggedList(int i, boolean b) { super(i, b); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/util/Cache.java --- a/jdk/src/share/classes/sun/security/util/Cache.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/util/Cache.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -251,7 +251,7 @@ private final Map cacheMap; private int maxSize; private long lifetime; - private final ReferenceQueue queue; + private final ReferenceQueue queue; public MemoryCache(boolean soft, int maxSize) { this(soft, maxSize, 0); @@ -260,7 +260,7 @@ public MemoryCache(boolean soft, int maxSize, int lifetime) { this.maxSize = maxSize; this.lifetime = lifetime * 1000; - this.queue = soft ? new ReferenceQueue() : null; + this.queue = soft ? new ReferenceQueue() : null; int buckets = (int)(maxSize / LOAD_FACTOR) + 1; cacheMap = new LinkedHashMap(buckets, LOAD_FACTOR, true); @@ -449,7 +449,7 @@ } protected CacheEntry newEntry(Object key, Object value, - long expirationTime, ReferenceQueue queue) { + long expirationTime, ReferenceQueue queue) { if (queue != null) { return new SoftCacheEntry(key, value, expirationTime, queue); } else { @@ -504,13 +504,13 @@ } private static class SoftCacheEntry - extends SoftReference implements CacheEntry { + extends SoftReference implements CacheEntry { private Object key; private long expirationTime; SoftCacheEntry(Object key, Object value, long expirationTime, - ReferenceQueue queue) { + ReferenceQueue queue) { super(value, queue); this.key = key; this.expirationTime = expirationTime; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/util/HostnameChecker.java --- a/jdk/src/share/classes/sun/security/util/HostnameChecker.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/util/HostnameChecker.java Mon Aug 29 14:29:23 2011 -0700 @@ -266,8 +266,8 @@ */ private static boolean matchAllWildcards(String name, String template) { - name = name.toLowerCase(); - template = template.toLowerCase(); + name = name.toLowerCase(Locale.ENGLISH); + template = template.toLowerCase(Locale.ENGLISH); StringTokenizer nameSt = new StringTokenizer(name, "."); StringTokenizer templateSt = new StringTokenizer(template, "."); @@ -296,8 +296,8 @@ */ private static boolean matchLeftmostWildcard(String name, String template) { - name = name.toLowerCase(); - template = template.toLowerCase(); + name = name.toLowerCase(Locale.ENGLISH); + template = template.toLowerCase(Locale.ENGLISH); // Retreive leftmost component int templateIdx = template.indexOf("."); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/util/ManifestDigester.java --- a/jdk/src/share/classes/sun/security/util/ManifestDigester.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/util/ManifestDigester.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -62,6 +62,7 @@ * @returns false if end of bytes has been reached, otherwise returns * true */ + @SuppressWarnings("fallthrough") private boolean findSection(int offset, Position pos) { int i = offset, len = rawBytes.length; @@ -79,6 +80,7 @@ pos.endOfFirstLine = i-1; if ((i < len) && (rawBytes[i+1] == '\n')) i++; + /* fall through */ case '\n': if (pos.endOfFirstLine == -1) pos.endOfFirstLine = i-1; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/util/Password.java --- a/jdk/src/share/classes/sun/security/util/Password.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/util/Password.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -43,6 +43,7 @@ /** Reads user password from given input stream. * @param isEchoOn true if the password should be echoed on the screen */ + @SuppressWarnings("fallthrough") public static char[] readPassword(InputStream in, boolean isEchoOn) throws IOException { @@ -95,7 +96,7 @@ done = true; break; } - + /* fall through */ default: if (--room < 0) { buf = new char[offset + 128]; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java --- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java Mon Aug 29 14:29:23 2011 -0700 @@ -181,7 +181,7 @@ * */ public void process(Hashtable signers, - List manifestDigests) + List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException { @@ -198,7 +198,7 @@ } private void processImpl(Hashtable signers, - List manifestDigests) + List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException { @@ -277,7 +277,7 @@ private boolean verifyManifestHash(Manifest sf, ManifestDigester md, BASE64Decoder decoder, - List manifestDigests) + List manifestDigests) throws IOException { Attributes mattr = sf.getMainAttributes(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/validator/SimpleValidator.java --- a/jdk/src/share/classes/sun/security/validator/SimpleValidator.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/validator/SimpleValidator.java Mon Aug 29 14:29:23 2011 -0700 @@ -37,7 +37,6 @@ import sun.security.x509.NetscapeCertTypeExtension; import sun.security.util.DerValue; import sun.security.util.DerInputStream; -import sun.security.util.DerOutputStream; import sun.security.util.ObjectIdentifier; import sun.security.provider.certpath.AlgorithmChecker; @@ -275,7 +274,7 @@ .toByteArray(); ext = new NetscapeCertTypeExtension(encoded); } - Boolean val = (Boolean)ext.get(type); + Boolean val = ext.get(type); return val.booleanValue(); } catch (IOException e) { return false; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/AVA.java --- a/jdk/src/share/classes/sun/security/x509/AVA.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/AVA.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -42,7 +42,7 @@ * X.500 Attribute-Value-Assertion (AVA): an attribute, as identified by * some attribute ID, has some particular value. Values are as a rule ASN.1 * printable strings. A conventional set of type IDs is recognized when - * parsing (and generating) RFC 1779 or RFC 2253 syntax strings. + * parsing (and generating) RFC 1779, 2253 or 4514 syntax strings. * *

      AVAs are components of X.500 relative names. Think of them as being * individual fields of a database record. The attribute ID is how you @@ -92,18 +92,20 @@ * Leading and trailing spaces, also multiple internal spaces, also * call for quoting the whole string. */ - private static final String specialChars = ",+=\n<>#;"; + private static final String specialChars1779 = ",=\n+<>#;\\\""; /* * In RFC2253, if the value has any of these characters in it, it * must be quoted by a preceding \. */ - private static final String specialChars2253 = ",+\"\\<>;"; + private static final String specialChars2253 = ",=+<>#;\\\""; /* - * includes special chars from RFC1779 and RFC2253, as well as ' ' + * includes special chars from RFC1779 and RFC2253, as well as ' ' from + * RFC 4514. */ - private static final String specialCharsAll = ",=\n+<>#;\\\" "; + private static final String specialCharsDefault = ",=\n+<>#;\\\" "; + private static final String escapedDefault = ",+<>;\""; /* * Values that aren't printable strings are emitted as BER-encoded @@ -120,26 +122,26 @@ } /** - * Parse an RFC 1779 or RFC 2253 style AVA string: CN=fee fie foe fum + * Parse an RFC 1779, 2253 or 4514 style AVA string: CN=fee fie foe fum * or perhaps with quotes. Not all defined AVA tags are supported; * of current note are X.400 related ones (PRMD, ADMD, etc). * * This terminates at unescaped AVA separators ("+") or RDN - * separators (",", ";"), or DN terminators (">"), and removes - * cosmetic whitespace at the end of values. + * separators (",", ";"), and removes cosmetic whitespace at the end of + * values. */ AVA(Reader in) throws IOException { this(in, DEFAULT); } /** - * Parse an RFC 1779 or RFC 2253 style AVA string: CN=fee fie foe fum + * Parse an RFC 1779, 2253 or 4514 style AVA string: CN=fee fie foe fum * or perhaps with quotes. Additional keywords can be specified in the * keyword/OID map. * * This terminates at unescaped AVA separators ("+") or RDN - * separators (",", ";"), or DN terminators (">"), and removes - * cosmetic whitespace at the end of values. + * separators (",", ";"), and removes cosmetic whitespace at the end of + * values. */ AVA(Reader in, Map keywordMap) throws IOException { this(in, DEFAULT, keywordMap); @@ -147,9 +149,6 @@ /** * Parse an AVA string formatted according to format. - * - * XXX format RFC1779 should only allow RFC1779 syntax but is - * actually DEFAULT with RFC1779 keywords. */ AVA(Reader in, int format) throws IOException { this(in, format, Collections.emptyMap()); @@ -158,9 +157,6 @@ /** * Parse an AVA string formatted according to format. * - * XXX format RFC1779 should only allow RFC1779 syntax but is - * actually DEFAULT with RFC1779 keywords. - * * @param in Reader containing AVA String * @param format parsing format * @param keywordMap a Map where a keyword String maps to a corresponding @@ -168,11 +164,11 @@ * If an entry does not exist, it will fallback to the builtin * keyword/OID mapping. * @throws IOException if the AVA String is not valid in the specified - * standard or an OID String from the keywordMap is improperly formatted + * format or an OID String from the keywordMap is improperly formatted */ AVA(Reader in, int format, Map keywordMap) throws IOException { - // assume format is one of DEFAULT, RFC1779, RFC2253 + // assume format is one of DEFAULT or RFC2253 StringBuilder temp = new StringBuilder(); int c; @@ -193,7 +189,7 @@ /* * Now parse the value. "#hex", a quoted string, or a string - * terminated by "+", ",", ";", ">". Whitespace before or after + * terminated by "+", ",", ";". Whitespace before or after * the value is stripped away unless format is RFC2253. */ temp.setLength(0); @@ -202,7 +198,7 @@ c = in.read(); if (c == ' ') { throw new IOException("Incorrect AVA RFC2253 format - " + - "leading space must be escaped"); + "leading space must be escaped"); } } else { // read next character skipping whitespace @@ -331,8 +327,7 @@ continue; } - if (c != '\\' && c != '"' && - specialChars.indexOf((char)c) < 0) { + if (specialChars1779.indexOf((char)c) < 0) { throw new IOException ("Invalid escaped character in AVA: " + (char)c); @@ -369,8 +364,8 @@ // encode as PrintableString unless value contains // non-PrintableString chars - if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) || - (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) && + if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) || + (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) && PRESERVE_OLD_DC_ENCODING == false)) { // EmailAddress and DomainComponent must be IA5String return new DerValue(DerValue.tag_IA5String, @@ -386,7 +381,7 @@ private DerValue parseString (Reader in, int c, int format, StringBuilder temp) throws IOException { - List embeddedHex = new ArrayList(); + List embeddedHex = new ArrayList<>(); boolean isPrintableString = true; boolean escape = false; boolean leadingChar = true; @@ -413,24 +408,19 @@ } // check if character was improperly escaped - if ((format == DEFAULT && - specialCharsAll.indexOf((char)c) == -1) || - (format == RFC1779 && - specialChars.indexOf((char)c) == -1 && - c != '\\' && c != '\"')) { - + if (format == DEFAULT && + specialCharsDefault.indexOf((char)c) == -1) { throw new IOException ("Invalid escaped character in AVA: '" + (char)c + "'"); - } else if (format == RFC2253) { if (c == ' ') { // only leading/trailing space can be escaped if (!leadingChar && !trailingSpace(in)) { - throw new IOException - ("Invalid escaped space character " + - "in AVA. Only a leading or trailing " + - "space character can be escaped."); + throw new IOException + ("Invalid escaped space character " + + "in AVA. Only a leading or trailing " + + "space character can be escaped."); } } else if (c == '#') { // only leading '#' can be escaped @@ -443,18 +433,20 @@ throw new IOException ("Invalid escaped character in AVA: '" + (char)c + "'"); - } } - } else { // check if character should have been escaped if (format == RFC2253) { if (specialChars2253.indexOf((char)c) != -1) { throw new IOException ("Character '" + (char)c + - "' in AVA appears without escape"); + "' in AVA appears without escape"); } + } else if (escapedDefault.indexOf((char)c) != -1) { + throw new IOException + ("Character '" + (char)c + + "' in AVA appears without escape"); } } @@ -503,8 +495,8 @@ // encode as PrintableString unless value contains // non-PrintableString chars - if (this.oid.equals(PKCS9Attribute.EMAIL_ADDRESS_OID) || - (this.oid.equals(X500Name.DOMAIN_COMPONENT_OID) && + if (this.oid.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID) || + (this.oid.equals((Object)X500Name.DOMAIN_COMPONENT_OID) && PRESERVE_OLD_DC_ENCODING == false)) { // EmailAddress and DomainComponent must be IA5String return new DerValue(DerValue.tag_IA5String, temp.toString()); @@ -551,7 +543,6 @@ case ',': return true; case ';': - case '>': return format != RFC2253; default: return false; @@ -1204,18 +1195,6 @@ * Get an object identifier representing the specified keyword (or * string encoded object identifier) in the given standard. * - * @throws IOException If the keyword is not valid in the specified standard - */ - static ObjectIdentifier getOID(String keyword, int standard) - throws IOException { - return getOID - (keyword, standard, Collections.emptyMap()); - } - - /** - * Get an object identifier representing the specified keyword (or - * string encoded object identifier) in the given standard. - * * @param keywordMap a Map where a keyword String maps to a corresponding * OID String. Each AVA keyword will be mapped to the corresponding OID. * If an entry does not exist, it will fallback to the builtin @@ -1249,19 +1228,11 @@ return new ObjectIdentifier(oidString); } - // no keyword found or not standard compliant, check if OID string + // no keyword found, check if OID string + if (standard == AVA.DEFAULT && keyword.startsWith("OID.")) { + keyword = keyword.substring(4); + } - // RFC1779 requires, DEFAULT allows OID. prefix - if (standard == AVA.RFC1779) { - if (keyword.startsWith("OID.") == false) { - throw new IOException("Invalid RFC1779 keyword: " + keyword); - } - keyword = keyword.substring(4); - } else if (standard == AVA.DEFAULT) { - if (keyword.startsWith("OID.")) { - keyword = keyword.substring(4); - } - } boolean number = false; if (keyword.length() != 0) { char ch = keyword.charAt(0); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/AccessDescription.java --- a/jdk/src/share/classes/sun/security/x509/AccessDescription.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/AccessDescription.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -25,7 +25,6 @@ package sun.security.x509; -import java.security.cert.*; import java.io.IOException; import sun.security.util.*; @@ -96,19 +95,19 @@ if (this == that) { return true; } - return (accessMethod.equals(that.getAccessMethod()) && + return (accessMethod.equals((Object)that.getAccessMethod()) && accessLocation.equals(that.getAccessLocation())); } public String toString() { String method = null; - if (accessMethod.equals(Ad_CAISSUERS_Id)) { + if (accessMethod.equals((Object)Ad_CAISSUERS_Id)) { method = "caIssuers"; - } else if (accessMethod.equals(Ad_CAREPOSITORY_Id)) { + } else if (accessMethod.equals((Object)Ad_CAREPOSITORY_Id)) { method = "caRepository"; - } else if (accessMethod.equals(Ad_TIMESTAMPING_Id)) { + } else if (accessMethod.equals((Object)Ad_TIMESTAMPING_Id)) { method = "timeStamping"; - } else if (accessMethod.equals(Ad_OCSP_Id)) { + } else if (accessMethod.equals((Object)Ad_OCSP_Id)) { method = "ocsp"; } else { method = accessMethod.toString(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/AlgorithmId.java --- a/jdk/src/share/classes/sun/security/x509/AlgorithmId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/AlgorithmId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -236,7 +236,7 @@ if (algName != null) { return algName; } - if ((params != null) && algid.equals(specifiedWithECDSA_oid)) { + if ((params != null) && algid.equals((Object)specifiedWithECDSA_oid)) { try { AlgorithmId paramsId = AlgorithmId.parse(new DerValue(getEncodedParams())); @@ -273,7 +273,7 @@ public boolean equals(AlgorithmId other) { boolean paramsEqual = (params == null ? other.params == null : params.equals(other.params)); - return (algid.equals(other.algid) && paramsEqual); + return (algid.equals((Object)other.algid) && paramsEqual); } /** @@ -301,7 +301,7 @@ * they are the same algorithm, ignoring algorithm parameters. */ public final boolean equals(ObjectIdentifier id) { - return algid.equals(id); + return algid.equals((Object)id); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java --- a/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -163,6 +163,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with an instanceof check public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(DESCRIPTIONS)) { if (!(obj instanceof List)) { @@ -180,7 +181,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public List get(String name) throws IOException { if (name.equalsIgnoreCase(DESCRIPTIONS)) { return accessDescriptions; } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java --- a/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -222,6 +222,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with instanceof public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(POINTS)) { if (!(obj instanceof List)) { @@ -239,7 +240,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public List get(String name) throws IOException { if (name.equalsIgnoreCase(POINTS)) { return distributionPoints; } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CRLExtensions.java --- a/jdk/src/share/classes/sun/security/x509/CRLExtensions.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CRLExtensions.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -36,7 +36,6 @@ import java.util.Hashtable; import sun.security.util.*; -import sun.misc.HexDumpEncoder; /** * This class defines the CRL Extensions. @@ -109,7 +108,7 @@ // Parse the encoded extension private void parseExtension(Extension ext) throws CRLException { try { - Class extClass = OIDMap.getClass(ext.getExtensionId()); + Class extClass = OIDMap.getClass(ext.getExtensionId()); if (extClass == null) { // Unsupported extension if (ext.isCritical()) unsupportedCritExt = true; @@ -117,10 +116,10 @@ throw new CRLException("Duplicate extensions not allowed"); return; } - Constructor cons = ((Class)extClass).getConstructor(PARAMS); + Constructor cons = extClass.getConstructor(PARAMS); Object[] passed = new Object[] {Boolean.valueOf(ext.isCritical()), ext.getExtensionValue()}; - CertAttrSet crlExt = (CertAttrSet)cons.newInstance(passed); + CertAttrSet crlExt = (CertAttrSet)cons.newInstance(passed); if (map.put(crlExt.getName(), (Extension)crlExt) != null) { throw new CRLException("Duplicate extensions not allowed"); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java --- a/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CRLNumberExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -155,7 +155,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public BigInteger get(String name) throws IOException { if (name.equalsIgnoreCase(NUMBER)) { if (crlNumber == null) return null; else return crlNumber; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java --- a/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CRLReasonCodeExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -155,7 +155,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Integer get(String name) throws IOException { if (name.equalsIgnoreCase(REASON)) { return new Integer(reasonCode); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java --- a/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertAndKeyGen.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -229,7 +229,7 @@ new CertificateVersion(CertificateVersion.V3)); info.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber( new java.util.Random().nextInt() & 0x7fffffff)); - AlgorithmId algID = AlgorithmId.getAlgorithmId(sigAlg); + AlgorithmId algID = AlgorithmId.get(sigAlg); info.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId(algID)); info.set(X509CertInfo.SUBJECT, new CertificateSubjectName(myname)); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java --- a/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateAlgorithmId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -130,7 +130,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public AlgorithmId get(String name) throws IOException { if (name.equalsIgnoreCase(ALGORITHM)) { return (algId); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateExtensions.java --- a/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateExtensions.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -93,7 +93,7 @@ // Parse the encoded extension private void parseExtension(Extension ext) throws IOException { try { - Class extClass = OIDMap.getClass(ext.getExtensionId()); + Class extClass = OIDMap.getClass(ext.getExtensionId()); if (extClass == null) { // Unsupported extension if (ext.isCritical()) { unsupportedCritExt = true; @@ -104,11 +104,12 @@ throw new IOException("Duplicate extensions not allowed"); } } - Constructor cons = ((Class)extClass).getConstructor(PARAMS); + Constructor cons = extClass.getConstructor(PARAMS); Object[] passed = new Object[] {Boolean.valueOf(ext.isCritical()), ext.getExtensionValue()}; - CertAttrSet certExt = (CertAttrSet)cons.newInstance(passed); + CertAttrSet certExt = (CertAttrSet) + cons.newInstance(passed); if (map.put(certExt.getName(), (Extension)certExt) != null) { throw new IOException("Duplicate extensions not allowed"); } @@ -132,12 +133,12 @@ if (e instanceof IOException) { throw (IOException)e; } else { - throw (IOException)new IOException(e.toString()).initCause(e); + throw new IOException(e); } } catch (IOException e) { throw e; } catch (Exception e) { - throw (IOException)new IOException(e.toString()).initCause(e); + throw new IOException(e); } } @@ -210,8 +211,8 @@ * @param name the extension name used in the lookup. * @exception IOException if named extension is not found. */ - public Object get(String name) throws IOException { - Object obj = map.get(name); + public Extension get(String name) throws IOException { + Extension obj = map.get(name); if (obj == null) { throw new IOException("No extension found with name " + name); } @@ -233,7 +234,7 @@ public String getNameByOid(ObjectIdentifier oid) throws IOException { for (String name: map.keySet()) { - if (map.get(name).getExtensionId().equals(oid)) { + if (map.get(name).getExtensionId().equals((Object)oid)) { return name; } } @@ -353,7 +354,7 @@ name = ""; try { - Class extClass = OIDMap.getClass(ext.getExtensionId()); + Class extClass = OIDMap.getClass(ext.getExtensionId()); if (extClass != null) { Field field = extClass.getDeclaredField("NAME"); name = (String)(field.get(null)) + " "; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java --- a/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateIssuerExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -141,7 +141,7 @@ * * @throws IOException on error */ - public Object get(String name) throws IOException { + public GeneralNames get(String name) throws IOException { if (name.equalsIgnoreCase(ISSUER)) { return names; } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java --- a/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -136,7 +136,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public UniqueIdentity get(String name) throws IOException { if (name.equalsIgnoreCase(ID)) { return (id); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java --- a/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificatePoliciesExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -189,6 +189,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with an instanceof check public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(POLICIES)) { if (!(obj instanceof List)) { @@ -206,7 +207,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public List get(String name) throws IOException { if (name.equalsIgnoreCase(POLICIES)) { //XXXX May want to consider cloning this return certPolicies; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java --- a/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificatePolicyId.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -93,7 +93,8 @@ */ public boolean equals(Object other) { if (other instanceof CertificatePolicyId) - return id.equals(((CertificatePolicyId) other).getIdentifier()); + return id.equals((Object) + ((CertificatePolicyId) other).getIdentifier()); else return false; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java --- a/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateSerialNumber.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -141,7 +141,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public SerialNumber get(String name) throws IOException { if (name.equalsIgnoreCase(NUMBER)) { return (serial); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java --- a/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -135,7 +135,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public UniqueIdentity get(String name) throws IOException { if (name.equalsIgnoreCase(ID)) { return(id); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateValidity.java --- a/jdk/src/share/classes/sun/security/x509/CertificateValidity.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateValidity.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -190,7 +190,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Date get(String name) throws IOException { if (name.equalsIgnoreCase(NOT_BEFORE)) { return (getNotBefore()); } else if (name.equalsIgnoreCase(NOT_AFTER)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateVersion.java --- a/jdk/src/share/classes/sun/security/x509/CertificateVersion.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateVersion.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -191,7 +191,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Integer get(String name) throws IOException { if (name.equalsIgnoreCase(VERSION)) { return(new Integer(getVersion())); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/CertificateX509Key.java --- a/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/CertificateX509Key.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -122,7 +122,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public PublicKey get(String name) throws IOException { if (name.equalsIgnoreCase(KEY)) { return(key); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/DNSName.java --- a/jdk/src/share/classes/sun/security/x509/DNSName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/DNSName.java Mon Aug 29 14:29:23 2011 -0700 @@ -159,7 +159,7 @@ * @return a hash code value for this object. */ public int hashCode() { - return name.toUpperCase().hashCode(); + return name.toUpperCase(Locale.ENGLISH).hashCode(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java --- a/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -241,6 +241,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with instanceof public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(USAGES)) { if (!(obj instanceof Vector)) { @@ -258,7 +259,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Vector get(String name) throws IOException { if (name.equalsIgnoreCase(USAGES)) { //XXXX May want to consider cloning this return keyUsages; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/Extension.java --- a/jdk/src/share/classes/sun/security/x509/Extension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/Extension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -269,7 +269,7 @@ Extension otherExt = (Extension) other; if (critical != otherExt.critical) return false; - if (!extensionId.equals(otherExt.extensionId)) + if (!extensionId.equals((Object)otherExt.extensionId)) return false; return Arrays.equals(extensionValue, otherExt.extensionValue); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java --- a/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -215,7 +215,7 @@ * Integer. * @throws IOException on error */ - public Object get(String name) throws IOException { + public Integer get(String name) throws IOException { if (name.equalsIgnoreCase(SKIP_CERTS)) return (new Integer(skipCerts)); else diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java --- a/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/InvalidityDateExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011, 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 @@ -138,7 +138,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Date get(String name) throws IOException { if (name.equalsIgnoreCase(DATE)) { if (date == null) { return null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java --- a/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -190,7 +190,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public GeneralNames get(String name) throws IOException { if (name.equalsIgnoreCase(ISSUER_NAME)) { return (names); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java --- a/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/KeyUsageExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -217,7 +217,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Boolean get(String name) throws IOException { if (name.equalsIgnoreCase(DIGITAL_SIGNATURE)) { return Boolean.valueOf(isSet(0)); } else if (name.equalsIgnoreCase(NON_REPUDIATION)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java --- a/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/NameConstraintsExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -27,10 +27,7 @@ import java.io.IOException; import java.io.OutputStream; -import java.security.Principal; -import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; -import java.security.cert.CertificateParsingException; import java.security.cert.X509Certificate; import java.util.*; @@ -268,7 +265,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public GeneralSubtrees get(String name) throws IOException { if (name.equalsIgnoreCase(PERMITTED_SUBTREES)) { return (permitted); } else if (name.equalsIgnoreCase(EXCLUDED_SUBTREES)) { @@ -349,8 +346,7 @@ * value and the value indicated in the extension field. */ - GeneralSubtrees newExcluded = - (GeneralSubtrees)newConstraints.get(EXCLUDED_SUBTREES); + GeneralSubtrees newExcluded = newConstraints.get(EXCLUDED_SUBTREES); if (excluded == null) { excluded = (newExcluded != null) ? (GeneralSubtrees)newExcluded.clone() : null; @@ -367,8 +363,7 @@ * previous value and the value indicated in the extension field. */ - GeneralSubtrees newPermitted = - (GeneralSubtrees)newConstraints.get(PERMITTED_SUBTREES); + GeneralSubtrees newPermitted = newConstraints.get(PERMITTED_SUBTREES); if (permitted == null) { permitted = (newPermitted != null) ? (GeneralSubtrees)newPermitted.clone() : null; @@ -455,8 +450,8 @@ if (altNameExt != null) { // extract altNames from extension; this call does not // return an IOException on null altnames - altNames = (GeneralNames) - (altNameExt.get(altNameExt.SUBJECT_NAME)); + altNames = altNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); } } catch (CertificateException ce) { throw new IOException("Unable to extract extensions from " + @@ -575,10 +570,9 @@ * @throws IOException on error */ public boolean verifyRFC822SpecialCase(X500Name subject) throws IOException { - for (Iterator t = subject.allAvas().iterator(); t.hasNext(); ) { - AVA ava = (AVA)t.next(); + for (AVA ava : subject.allAvas()) { ObjectIdentifier attrOID = ava.getObjectIdentifier(); - if (attrOID.equals(PKCS9Attribute.EMAIL_ADDRESS_OID)) { + if (attrOID.equals((Object)PKCS9Attribute.EMAIL_ADDRESS_OID)) { String attrValue = ava.getValueString(); if (attrValue != null) { RFC822Name emailName; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java --- a/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -220,7 +220,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Boolean get(String name) throws IOException { return Boolean.valueOf(isSet(getPosition(name))); } @@ -306,15 +306,15 @@ if (isSet(getPosition(SSL_CLIENT)) || isSet(getPosition(S_MIME)) || isSet(getPosition(OBJECT_SIGNING))) - keyUsage.set(keyUsage.DIGITAL_SIGNATURE, val); + keyUsage.set(KeyUsageExtension.DIGITAL_SIGNATURE, val); if (isSet(getPosition(SSL_SERVER))) - keyUsage.set(keyUsage.KEY_ENCIPHERMENT, val); + keyUsage.set(KeyUsageExtension.KEY_ENCIPHERMENT, val); if (isSet(getPosition(SSL_CA)) || isSet(getPosition(S_MIME_CA)) || isSet(getPosition(OBJECT_SIGNING_CA))) - keyUsage.set(keyUsage.KEY_CERTSIGN, val); + keyUsage.set(KeyUsageExtension.KEY_CERTSIGN, val); } catch (IOException e) { } return keyUsage.getBits(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/OIDMap.java --- a/jdk/src/share/classes/sun/security/x509/OIDMap.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/OIDMap.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -29,7 +29,6 @@ import java.io.IOException; import java.security.cert.CertificateException; -import java.security.cert.CertificateParsingException; import sun.security.util.*; @@ -186,7 +185,7 @@ final ObjectIdentifier oid; final String name; final String className; - private volatile Class clazz; + private volatile Class clazz; OIDInfo(String name, ObjectIdentifier oid, String className) { this.name = name; @@ -194,7 +193,7 @@ this.className = className; } - OIDInfo(String name, ObjectIdentifier oid, Class clazz) { + OIDInfo(String name, ObjectIdentifier oid, Class clazz) { this.name = name; this.oid = oid; this.className = clazz.getName(); @@ -204,17 +203,16 @@ /** * Return the Class object associated with this attribute. */ - Class getClazz() throws CertificateException { + Class getClazz() throws CertificateException { try { - Class c = clazz; + Class c = clazz; if (c == null) { c = Class.forName(className); clazz = c; } return c; } catch (ClassNotFoundException e) { - throw (CertificateException)new CertificateException - ("Could not load class: " + e).initCause(e); + throw new CertificateException("Could not load class: " + e, e); } } } @@ -228,7 +226,7 @@ * @param clazz the Class object associated with this attribute * @exception CertificateException on errors. */ - public static void addAttribute(String name, String oid, Class clazz) + public static void addAttribute(String name, String oid, Class clazz) throws CertificateException { ObjectIdentifier objId; try { @@ -277,7 +275,7 @@ * @param name the user friendly name. * @exception CertificateException if class cannot be instantiated. */ - public static Class getClass(String name) throws CertificateException { + public static Class getClass(String name) throws CertificateException { OIDInfo info = nameMap.get(name); return (info == null) ? null : info.getClazz(); } @@ -288,7 +286,7 @@ * @param oid the name of the object identifier to be returned. * @exception CertificateException if class cannot be instatiated. */ - public static Class getClass(ObjectIdentifier oid) + public static Class getClass(ObjectIdentifier oid) throws CertificateException { OIDInfo info = oidMap.get(oid); return (info == null) ? null : info.getClazz(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/OIDName.java --- a/jdk/src/share/classes/sun/security/x509/OIDName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/OIDName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -120,7 +120,7 @@ OIDName other = (OIDName)obj; - return oid.equals(other.oid); + return oid.equals((Object)other.oid); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/OtherName.java --- a/jdk/src/share/classes/sun/security/x509/OtherName.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/OtherName.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -120,19 +120,19 @@ private GeneralNameInterface getGNI(ObjectIdentifier oid, byte[] nameValue) throws IOException { try { - Class extClass = OIDMap.getClass(oid); + Class extClass = OIDMap.getClass(oid); if (extClass == null) { // Unsupported OtherName return null; } - Class[] params = { Object.class }; - Constructor cons = ((Class)extClass).getConstructor(params); + Class[] params = { Object.class }; + Constructor cons = extClass.getConstructor(params); Object[] passed = new Object[] { nameValue }; GeneralNameInterface gni = (GeneralNameInterface)cons.newInstance(passed); return gni; } catch (Exception e) { - throw (IOException)new IOException("Instantiation error: " + e).initCause(e); + throw new IOException("Instantiation error: " + e, e); } } @@ -176,7 +176,7 @@ return false; } OtherName otherOther = (OtherName)other; - if (!(otherOther.oid.equals(oid))) { + if (!(otherOther.oid.equals((Object)oid))) { return false; } GeneralNameInterface otherGNI = null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java --- a/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/PolicyConstraintsExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -231,7 +231,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public Integer get(String name) throws IOException { if (name.equalsIgnoreCase(REQUIRE)) { return new Integer(require); } else if (name.equalsIgnoreCase(INHIBIT)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/PolicyInformation.java --- a/jdk/src/share/classes/sun/security/x509/PolicyInformation.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/PolicyInformation.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -186,6 +186,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with instanceof public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(ID)) { if (obj instanceof CertificatePolicyId) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java --- a/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/PolicyMappingsExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -29,8 +29,6 @@ import java.io.OutputStream; import java.util.*; -import java.security.cert.CertificateException; - import sun.security.util.*; /** @@ -165,6 +163,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with instanceof public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(MAP)) { if (!(obj instanceof List)) { @@ -182,7 +181,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public List get(String name) throws IOException { if (name.equalsIgnoreCase(MAP)) { return (maps); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java --- a/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -262,7 +262,7 @@ * Get the attribute value. * @exception CertificateException on attribute handling errors. */ - public Object get(String name) throws CertificateException { + public Date get(String name) throws CertificateException { if (name.equalsIgnoreCase(NOT_BEFORE)) { return (new Date(notBefore.getTime())); } else if (name.equalsIgnoreCase(NOT_AFTER)) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/RDN.java --- a/jdk/src/share/classes/sun/security/x509/RDN.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/RDN.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -25,17 +25,11 @@ package sun.security.x509; -import java.lang.reflect.*; import java.io.IOException; import java.io.StringReader; -import java.security.PrivilegedExceptionAction; -import java.security.AccessController; -import java.security.Principal; import java.util.*; import sun.security.util.*; -import sun.security.pkcs.PKCS9Attribute; -import javax.security.auth.x500.X500Principal; /** * RDNs are a set of {attribute = value} assertions. Some of those @@ -327,7 +321,7 @@ */ DerValue findAttribute(ObjectIdentifier oid) { for (int i = 0; i < assertion.length; i++) { - if (assertion[i].oid.equals(oid)) { + if (assertion[i].oid.equals((Object)oid)) { return assertion[i].value; } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/RFC822Name.java --- a/jdk/src/share/classes/sun/security/x509/RFC822Name.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/RFC822Name.java Mon Aug 29 14:29:23 2011 -0700 @@ -153,7 +153,7 @@ * @return a hash code value for this object. */ public int hashCode() { - return name.toUpperCase().hashCode(); + return name.toUpperCase(Locale.ENGLISH).hashCode(); } /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java --- a/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -195,7 +195,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public GeneralNames get(String name) throws IOException { if (name.equalsIgnoreCase(SUBJECT_NAME)) { return (names); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java --- a/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -167,6 +167,7 @@ /** * Set the attribute value. */ + @SuppressWarnings("unchecked") // Checked with instanceof public void set(String name, Object obj) throws IOException { if (name.equalsIgnoreCase(DESCRIPTIONS)) { if (!(obj instanceof List)) { @@ -184,7 +185,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public List get(String name) throws IOException { if (name.equalsIgnoreCase(DESCRIPTIONS)) { return accessDescriptions; } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java --- a/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -156,7 +156,7 @@ /** * Get the attribute value. */ - public Object get(String name) throws IOException { + public KeyIdentifier get(String name) throws IOException { if (name.equalsIgnoreCase(KEY_ID)) { return (id); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X500Name.java --- a/jdk/src/share/classes/sun/security/x509/X500Name.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X500Name.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -27,14 +27,12 @@ import java.lang.reflect.*; import java.io.IOException; -import java.io.StringReader; import java.security.PrivilegedExceptionAction; import java.security.AccessController; import java.security.Principal; import java.util.*; import sun.security.util.*; -import sun.security.pkcs.PKCS9Attribute; import javax.security.auth.x500.X500Principal; /** @@ -144,9 +142,9 @@ /** * Constructs a name from a conventionally formatted string, such * as "CN=Dave, OU=JavaSoft, O=Sun Microsystems, C=US". - * (RFC 1779 or RFC 2253 style). + * (RFC 1779, 2253, or 4514 style). * - * @param DN X.500 Distinguished Name + * @param dname the X.500 Distinguished Name */ public X500Name(String dname) throws IOException { this(dname, Collections.emptyMap()); @@ -155,9 +153,9 @@ /** * Constructs a name from a conventionally formatted string, such * as "CN=Dave, OU=JavaSoft, O=Sun Microsystems, C=US". - * (RFC 1779 or RFC 2253 style). + * (RFC 1779, 2253, or 4514 style). * - * @param DN X.500 Distinguished Name + * @param dname the X.500 Distinguished Name * @param keywordMap an additional keyword/OID map */ public X500Name(String dname, Map keywordMap) @@ -169,10 +167,11 @@ * Constructs a name from a string formatted according to format. * Currently, the formats DEFAULT and RFC2253 are supported. * DEFAULT is the default format used by the X500Name(String) - * constructor. RFC2253 is format strictly according to RFC2253 + * constructor. RFC2253 is the format strictly according to RFC2253 * without extensions. * - * @param DN X.500 Distinguished Name + * @param dname the X.500 Distinguished Name + * @param format the specified format of the String DN */ public X500Name(String dname, String format) throws IOException { if (dname == null) { @@ -867,8 +866,8 @@ * O="Sue, Grabbit and Runn" or * O=Sue\, Grabbit and Runn * - * This method can parse 1779 or 2253 DNs and non-standard 3280 keywords. - * Additional keywords can be specified in the keyword/OID map. + * This method can parse RFC 1779, 2253 or 4514 DNs and non-standard 3280 + * keywords. Additional keywords can be specified in the keyword/OID map. */ private void parseDN(String input, Map keywordMap) throws IOException { @@ -877,7 +876,7 @@ return; } - List dnVector = new ArrayList(); + List dnVector = new ArrayList<>(); int dnOffset = 0; int rdnEnd; String rdnString; @@ -947,52 +946,51 @@ if (dnString.length() == 0) { names = new RDN[0]; return; - } - - List dnVector = new ArrayList(); - int dnOffset = 0; - String rdnString; + } - int searchOffset = 0; - int rdnEnd = dnString.indexOf(','); - while (rdnEnd >=0) { - /* - * We have encountered an RDN delimiter (comma). - * If the comma in the RDN under consideration is - * preceded by a backslash (escape), it - * is part of the RDN. Otherwise, it is used as a separator, to - * delimit the RDN under consideration from any subsequent RDNs. - */ - if (rdnEnd > 0 && !escaped(rdnEnd, searchOffset, dnString)) { + List dnVector = new ArrayList<>(); + int dnOffset = 0; + String rdnString; + int searchOffset = 0; + int rdnEnd = dnString.indexOf(','); + while (rdnEnd >=0) { + /* + * We have encountered an RDN delimiter (comma). + * If the comma in the RDN under consideration is + * preceded by a backslash (escape), it + * is part of the RDN. Otherwise, it is used as a separator, to + * delimit the RDN under consideration from any subsequent RDNs. + */ + if (rdnEnd > 0 && !escaped(rdnEnd, searchOffset, dnString)) { - /* - * Comma is a separator - */ - rdnString = dnString.substring(dnOffset, rdnEnd); + /* + * Comma is a separator + */ + rdnString = dnString.substring(dnOffset, rdnEnd); - // Parse RDN, and store it in vector - RDN rdn = new RDN(rdnString, "RFC2253"); - dnVector.add(rdn); + // Parse RDN, and store it in vector + RDN rdn = new RDN(rdnString, "RFC2253"); + dnVector.add(rdn); - // Increase the offset - dnOffset = rdnEnd + 1; - } + // Increase the offset + dnOffset = rdnEnd + 1; + } - searchOffset = rdnEnd + 1; - rdnEnd = dnString.indexOf(',', searchOffset); - } + searchOffset = rdnEnd + 1; + rdnEnd = dnString.indexOf(',', searchOffset); + } - // Parse last or only RDN, and store it in vector - rdnString = dnString.substring(dnOffset); - RDN rdn = new RDN(rdnString, "RFC2253"); - dnVector.add(rdn); + // Parse last or only RDN, and store it in vector + rdnString = dnString.substring(dnOffset); + RDN rdn = new RDN(rdnString, "RFC2253"); + dnVector.add(rdn); - /* - * Store the vector elements as an array of RDNs - * NOTE: It's only on output that little-endian ordering is used. - */ - Collections.reverse(dnVector); - names = dnVector.toArray(new RDN[dnVector.size()]); + /* + * Store the vector elements as an array of RDNs + * NOTE: It's only on output that little-endian ordering is used. + */ + Collections.reverse(dnVector); + names = dnVector.toArray(new RDN[dnVector.size()]); } /* @@ -1371,7 +1369,7 @@ /** * Constructor object for use by asX500Principal(). */ - private static final Constructor principalConstructor; + private static final Constructor principalConstructor; /** * Field object for use by asX500Name(). @@ -1386,9 +1384,9 @@ PrivilegedExceptionAction pa = new PrivilegedExceptionAction() { public Object[] run() throws Exception { - Class pClass = X500Principal.class; - Class[] args = new Class[] {X500Name.class}; - Constructor cons = ((Class)pClass).getDeclaredConstructor(args); + Class pClass = X500Principal.class; + Class[] args = new Class[] { X500Name.class }; + Constructor cons = pClass.getDeclaredConstructor(args); cons.setAccessible(true); Field field = pClass.getDeclaredField("thisX500Name"); field.setAccessible(true); @@ -1397,11 +1395,13 @@ }; try { Object[] result = AccessController.doPrivileged(pa); - principalConstructor = (Constructor)result[0]; + @SuppressWarnings("unchecked") + Constructor constr = + (Constructor)result[0]; + principalConstructor = constr; principalField = (Field)result[1]; } catch (Exception e) { - throw (InternalError)new InternalError("Could not obtain " - + "X500Principal access").initCause(e); + throw new InternalError("Could not obtain X500Principal access", e); } } @@ -1415,8 +1415,7 @@ if (x500Principal == null) { try { Object[] args = new Object[] {this}; - x500Principal = - (X500Principal)principalConstructor.newInstance(args); + x500Principal = principalConstructor.newInstance(args); } catch (Exception e) { throw new RuntimeException("Unexpected exception", e); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java --- a/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -25,11 +25,9 @@ package sun.security.x509; -import java.io.InputStream; import java.io.IOException; import java.security.cert.CRLException; import java.security.cert.CRLReason; -import java.security.cert.CertificateException; import java.security.cert.X509CRLEntry; import java.math.BigInteger; import java.util.Collection; @@ -281,7 +279,7 @@ if (obj == null) return null; CRLReasonCodeExtension reasonCode = (CRLReasonCodeExtension)obj; - return (Integer)(reasonCode.get(reasonCode.REASON)); + return reasonCode.get(CRLReasonCodeExtension.REASON); } /** @@ -299,13 +297,13 @@ sb.append("\n Certificate issuer: " + certIssuer); } if (extensions != null) { - Collection allEntryExts = extensions.getAllExtensions(); - Object[] objs = allEntryExts.toArray(); + Collection allEntryExts = extensions.getAllExtensions(); + Extension[] exts = allEntryExts.toArray(new Extension[0]); - sb.append("\n CRL Entry Extensions: " + objs.length); - for (int i = 0; i < objs.length; i++) { + sb.append("\n CRL Entry Extensions: " + exts.length); + for (int i = 0; i < exts.length; i++) { sb.append("\n [" + (i+1) + "]: "); - Extension ext = (Extension)objs[i]; + Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { sb.append(ext.toString()); @@ -409,7 +407,7 @@ e.hasMoreElements();) { ex = e.nextElement(); inCertOID = ex.getExtensionId(); - if (inCertOID.equals(findOID)) { + if (inCertOID.equals((Object)findOID)) { crlExt = ex; break; } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X509CRLImpl.java --- a/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -32,7 +32,6 @@ import java.security.Principal; import java.security.PublicKey; import java.security.PrivateKey; -import java.security.Security; import java.security.Signature; import java.security.NoSuchAlgorithmException; import java.security.InvalidKeyException; @@ -782,7 +781,8 @@ public KeyIdentifier getAuthKeyId() throws IOException { AuthorityKeyIdentifierExtension aki = getAuthKeyIdExtension(); if (aki != null) { - KeyIdentifier keyId = (KeyIdentifier)aki.get(aki.KEY_ID); + KeyIdentifier keyId = (KeyIdentifier)aki.get( + AuthorityKeyIdentifierExtension.KEY_ID); return keyId; } else { return null; @@ -821,7 +821,7 @@ public BigInteger getCRLNumber() throws IOException { CRLNumberExtension numExt = getCRLNumberExtension(); if (numExt != null) { - BigInteger num = (BigInteger)numExt.get(numExt.NUMBER); + BigInteger num = numExt.get(CRLNumberExtension.NUMBER); return num; } else { return null; @@ -850,7 +850,7 @@ public BigInteger getBaseCRLNumber() throws IOException { DeltaCRLIndicatorExtension dciExt = getDeltaCRLIndicatorExtension(); if (dciExt != null) { - BigInteger num = (BigInteger)dciExt.get(dciExt.NUMBER); + BigInteger num = dciExt.get(DeltaCRLIndicatorExtension.NUMBER); return num; } else { return null; @@ -961,7 +961,7 @@ e.hasMoreElements();) { ex = e.nextElement(); inCertOID = ex.getExtensionId(); - if (inCertOID.equals(findOID)) { + if (inCertOID.equals((Object)findOID)) { crlExt = ex; break; } @@ -1189,8 +1189,7 @@ CertificateIssuerExtension ciExt = entry.getCertificateIssuerExtension(); if (ciExt != null) { - GeneralNames names = (GeneralNames) - ciExt.get(CertificateIssuerExtension.ISSUER); + GeneralNames names = ciExt.get(CertificateIssuerExtension.ISSUER); X500Name issuerDN = (X500Name) names.get(0).getName(); return issuerDN.asX500Principal(); } else { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X509CertImpl.java --- a/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X509CertImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -196,10 +196,7 @@ parse(new DerValue(certData)); } catch (IOException e) { signedCert = null; - CertificateException ce = new - CertificateException("Unable to initialize, " + e); - ce.initCause(e); - throw ce; + throw new CertificateException("Unable to initialize, " + e, e); } } @@ -231,25 +228,19 @@ inBuffered.reset(); der = new DerValue(inBuffered); } catch (IOException ioe1) { - CertificateException ce = new - CertificateException("Input stream must be " + - "either DER-encoded bytes " + - "or RFC1421 hex-encoded " + - "DER-encoded bytes: " + - ioe1.getMessage()); - ce.initCause(ioe1); - throw ce; + throw new CertificateException("Input stream must be " + + "either DER-encoded bytes " + + "or RFC1421 hex-encoded " + + "DER-encoded bytes: " + + ioe1.getMessage(), ioe1); } } try { parse(der); } catch (IOException ioe) { signedCert = null; - CertificateException ce = new - CertificateException("Unable to parse DER value of " + - "certificate, " + ioe); - ce.initCause(ioe); - throw ce; + throw new CertificateException("Unable to parse DER value of " + + "certificate, " + ioe, ioe); } } @@ -320,10 +311,7 @@ parse(derVal); } catch (IOException e) { signedCert = null; - CertificateException ce = new - CertificateException("Unable to initialize, " + e); - ce.initCause(e); - throw ce; + throw new CertificateException("Unable to initialize, " + e, e); } } @@ -1279,7 +1267,7 @@ return null; } else { for (Extension ex : extensions.getAllExtensions()) { - if (ex.getExtensionId().equals(oid)) { + if (ex.getExtensionId().equals((Object)oid)) { //XXXX May want to consider cloning this return ex; } @@ -1434,10 +1422,7 @@ new ExtendedKeyUsageExtension(Boolean.FALSE, data); return Collections.unmodifiableList(ekuExt.getExtendedKeyUsage()); } catch (IOException ioe) { - CertificateParsingException cpe = - new CertificateParsingException(); - cpe.initCause(ioe); - throw cpe; + throw new CertificateParsingException(ioe); } } @@ -1578,8 +1563,8 @@ } GeneralNames names; try { - names = (GeneralNames) subjectAltNameExt.get - (SubjectAlternativeNameExtension.SUBJECT_NAME); + names = subjectAltNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); } catch (IOException ioe) { // should not occur return Collections.>emptySet(); @@ -1610,18 +1595,15 @@ GeneralNames names; try { - names = (GeneralNames) subjectAltNameExt.get - (SubjectAlternativeNameExtension.SUBJECT_NAME); + names = subjectAltNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); } catch (IOException ioe) { // should not occur return Collections.>emptySet(); } return makeAltNames(names); } catch (IOException ioe) { - CertificateParsingException cpe = - new CertificateParsingException(); - cpe.initCause(ioe); - throw cpe; + throw new CertificateParsingException(ioe); } } @@ -1644,8 +1626,8 @@ } GeneralNames names; try { - names = (GeneralNames) issuerAltNameExt.get - (IssuerAlternativeNameExtension.ISSUER_NAME); + names = issuerAltNameExt.get( + IssuerAlternativeNameExtension.ISSUER_NAME); } catch (IOException ioe) { // should not occur return Collections.>emptySet(); @@ -1676,18 +1658,15 @@ data); GeneralNames names; try { - names = (GeneralNames) issuerAltNameExt.get - (IssuerAlternativeNameExtension.ISSUER_NAME); + names = issuerAltNameExt.get( + IssuerAlternativeNameExtension.ISSUER_NAME); } catch (IOException ioe) { // should not occur return Collections.>emptySet(); } return makeAltNames(names); } catch (IOException ioe) { - CertificateParsingException cpe = - new CertificateParsingException(); - cpe.initCause(ioe); - throw cpe; + throw new CertificateParsingException(ioe); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X509CertInfo.java --- a/jdk/src/share/classes/sun/security/x509/X509CertInfo.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X509CertInfo.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -149,10 +149,7 @@ parse(in); } catch (IOException e) { - CertificateParsingException parseException = - new CertificateParsingException(e.toString()); - parseException.initCause(e); - throw parseException; + throw new CertificateParsingException(e); } } @@ -168,10 +165,7 @@ try { parse(derVal); } catch (IOException e) { - CertificateParsingException parseException = - new CertificateParsingException(e.toString()); - parseException.initCause(e); - throw parseException; + throw new CertificateParsingException(e); } } @@ -319,12 +313,12 @@ sb.append(" Subject Id:\n" + subjectUniqueId.toString() + "\n"); } if (extensions != null) { - Collection allExts = extensions.getAllExtensions(); - Object[] objs = allExts.toArray(); - sb.append("\nCertificate Extensions: " + objs.length); - for (int i = 0; i < objs.length; i++) { + Collection allExts = extensions.getAllExtensions(); + Extension[] exts = allExts.toArray(new Extension[0]); + sb.append("\nCertificate Extensions: " + exts.length); + for (int i = 0; i < exts.length; i++) { sb.append("\n[" + (i+1) + "]: "); - Extension ext = (Extension)objs[i]; + Extension ext = exts[i]; try { if (OIDMap.getClass(ext.getExtensionId()) == null) { sb.append(ext.toString()); @@ -766,8 +760,8 @@ try { subjectAltNameExt = (SubjectAlternativeNameExtension) extensions.get(SubjectAlternativeNameExtension.NAME); - names = (GeneralNames) subjectAltNameExt.get - (SubjectAlternativeNameExtension.SUBJECT_NAME); + names = subjectAltNameExt.get( + SubjectAlternativeNameExtension.SUBJECT_NAME); } catch (IOException e) { throw new CertificateParsingException("X.509 Certificate is " + "incomplete: subject field is empty, and " + diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/security/x509/X509Key.java --- a/jdk/src/share/classes/sun/security/x509/X509Key.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/security/x509/X509Key.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -31,7 +31,6 @@ import java.security.Key; import java.security.PublicKey; import java.security.KeyFactory; -import java.security.KeyRep; import java.security.Security; import java.security.Provider; import java.security.InvalidKeyException; @@ -245,7 +244,7 @@ throw new InstantiationException(); } - Class keyClass = null; + Class keyClass = null; try { keyClass = Class.forName(classname); } catch (ClassNotFoundException e) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java --- a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java Mon Aug 29 14:29:23 2011 -0700 @@ -208,7 +208,7 @@ serverStubClass = Class.forName(rmiServerImplStubClassName).asSubclass(Remote.class); } catch (ClassNotFoundException e) { // should never reach here - throw (InternalError) new InternalError(e.getMessage()).initCause(e); + throw new InternalError(e.getMessage(), e); } rmiServerImplStubClass = serverStubClass; } @@ -395,18 +395,10 @@ } catch (MalformedObjectNameException e) { // should not reach here throw new InternalError(e.getMessage()); - } catch (IntrospectionException e) { - InternalError ie = new InternalError(e.getMessage()); - ie.initCause(e); - throw ie; - } catch (InstanceNotFoundException e) { - InternalError ie = new InternalError(e.getMessage()); - ie.initCause(e); - throw ie; - } catch (ReflectionException e) { - InternalError ie = new InternalError(e.getMessage()); - ie.initCause(e); - throw ie; + } catch (IntrospectionException | + InstanceNotFoundException | + ReflectionException e) { + throw new InternalError(e.getMessage(), e); } if (hasPlatformMXBeans) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java --- a/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/share/demo/nio/zipfs/src/com/sun/nio/zipfs/ZipFileSystem.java Mon Aug 29 14:29:23 2011 -0700 @@ -31,6 +31,7 @@ package com.sun.nio.zipfs; +import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.EOFException; @@ -1165,7 +1166,6 @@ // sync the zip file system, if there is any udpate private void sync() throws IOException { //System.out.printf("->sync(%s) starting....!%n", toString()); - // check ex-closer if (!exChClosers.isEmpty()) { for (ExChannelCloser ecc : exChClosers) { @@ -1179,84 +1179,84 @@ if (!hasUpdate) return; Path tmpFile = createTempFileInSameDirectoryAs(zfpath); - OutputStream os = Files.newOutputStream(tmpFile, WRITE); - ArrayList elist = new ArrayList<>(inodes.size()); - long written = 0; - byte[] buf = new byte[8192]; - Entry e = null; + try (OutputStream os = new BufferedOutputStream(Files.newOutputStream(tmpFile, WRITE))) + { + ArrayList elist = new ArrayList<>(inodes.size()); + long written = 0; + byte[] buf = new byte[8192]; + Entry e = null; - // write loc - for (IndexNode inode : inodes.values()) { - if (inode instanceof Entry) { // an updated inode - e = (Entry)inode; - try { - if (e.type == Entry.COPY) { - // entry copy: the only thing changed is the "name" - // and "nlen" in LOC header, so we udpate/rewrite the - // LOC in new file and simply copy the rest (data and - // ext) without enflating/deflating from the old zip - // file LOC entry. - written += copyLOCEntry(e, true, os, written, buf); - } else { // NEW, FILECH or CEN - e.locoff = written; - written += e.writeLOC(os); // write loc header - if (e.bytes != null) { // in-memory, deflated - os.write(e.bytes); // already - written += e.bytes.length; - } else if (e.file != null) { // tmp file - try (InputStream is = Files.newInputStream(e.file)) { - int n; - if (e.type == Entry.NEW) { // deflated already - while ((n = is.read(buf)) != -1) { - os.write(buf, 0, n); - written += n; + // write loc + for (IndexNode inode : inodes.values()) { + if (inode instanceof Entry) { // an updated inode + e = (Entry)inode; + try { + if (e.type == Entry.COPY) { + // entry copy: the only thing changed is the "name" + // and "nlen" in LOC header, so we udpate/rewrite the + // LOC in new file and simply copy the rest (data and + // ext) without enflating/deflating from the old zip + // file LOC entry. + written += copyLOCEntry(e, true, os, written, buf); + } else { // NEW, FILECH or CEN + e.locoff = written; + written += e.writeLOC(os); // write loc header + if (e.bytes != null) { // in-memory, deflated + os.write(e.bytes); // already + written += e.bytes.length; + } else if (e.file != null) { // tmp file + try (InputStream is = Files.newInputStream(e.file)) { + int n; + if (e.type == Entry.NEW) { // deflated already + while ((n = is.read(buf)) != -1) { + os.write(buf, 0, n); + written += n; + } + } else if (e.type == Entry.FILECH) { + // the data are not deflated, use ZEOS + try (OutputStream os2 = new EntryOutputStream(e, os)) { + while ((n = is.read(buf)) != -1) { + os2.write(buf, 0, n); + } + } + written += e.csize; + if ((e.flag & FLAG_DATADESCR) != 0) + written += e.writeEXT(os); } - } else if (e.type == Entry.FILECH) { - // the data are not deflated, use ZEOS - try (OutputStream os2 = new EntryOutputStream(e, os)) { - while ((n = is.read(buf)) != -1) { - os2.write(buf, 0, n); - } - } - written += e.csize; - if ((e.flag & FLAG_DATADESCR) != 0) - written += e.writeEXT(os); } + Files.delete(e.file); + tmppaths.remove(e.file); + } else { + // dir, 0-length data } - Files.delete(e.file); - tmppaths.remove(e.file); - } else { - // dir, 0-length data } + elist.add(e); + } catch (IOException x) { + x.printStackTrace(); // skip any in-accurate entry } - elist.add(e); - } catch (IOException x) { - x.printStackTrace(); // skip any in-accurate entry - } - } else { // unchanged inode - if (inode.pos == -1) { - continue; // pseudo directory node - } - e = Entry.readCEN(this, inode.pos); - try { - written += copyLOCEntry(e, false, os, written, buf); - elist.add(e); - } catch (IOException x) { - x.printStackTrace(); // skip any wrong entry + } else { // unchanged inode + if (inode.pos == -1) { + continue; // pseudo directory node + } + e = Entry.readCEN(this, inode.pos); + try { + written += copyLOCEntry(e, false, os, written, buf); + elist.add(e); + } catch (IOException x) { + x.printStackTrace(); // skip any wrong entry + } } } + + // now write back the cen and end table + end.cenoff = written; + for (Entry entry : elist) { + written += entry.writeCEN(os); + } + end.centot = elist.size(); + end.cenlen = written - end.cenoff; + end.write(os, written); } - - // now write back the cen and end table - end.cenoff = written; - for (Entry entry : elist) { - written += entry.writeCEN(os); - } - end.centot = elist.size(); - end.cenlen = written - end.cenoff; - end.write(os, written); - os.close(); - if (!streams.isEmpty()) { // // TBD: ExChannelCloser should not be necessary if we only @@ -1959,7 +1959,7 @@ writeBytes(os, name); if (elen64 != 0) { writeShort(os, EXTID_ZIP64);// Zip64 extra - writeShort(os, elen64); // size of "this" extra block + writeShort(os, elen64 - 4); // size of "this" extra block if (size0 == ZIP64_MINVAL) writeLong(os, size); if (csize0 == ZIP64_MINVAL) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java --- a/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/solaris/classes/sun/nio/ch/InheritedChannel.java Mon Aug 29 14:29:23 2011 -0700 @@ -166,8 +166,8 @@ // is implemented. Class paramTypes[] = { int.class }; - Constructor ctr = Reflect.lookupConstructor("java.io.FileDescriptor", - paramTypes); + Constructor ctr = Reflect.lookupConstructor("java.io.FileDescriptor", + paramTypes); Object args[] = { new Integer(fdVal) }; FileDescriptor fd = (FileDescriptor)Reflect.invoke(ctr, args); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java --- a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java Mon Aug 29 14:29:23 2011 -0700 @@ -58,7 +58,10 @@ try { ifd = inotifyInit(); } catch (UnixException x) { - throw new IOException(x.errorString()); + String msg = (x.errno() == EMFILE) ? + "User limit of inotify instances reached or too many open files" : + x.errorString(); + throw new IOException(msg); } // configure inotify to be non-blocking diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/solaris/lib/content-types.properties --- a/jdk/src/solaris/lib/content-types.properties Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/solaris/lib/content-types.properties Mon Aug 29 14:29:23 2011 -0700 @@ -225,6 +225,10 @@ icon=png;\ action=browser +image/bmp: \ + description=Bitmap Image;\ + file_extensions=.bmp; + text/html: \ description=HTML Document;\ file_extensions=.htm,.html;\ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c --- a/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c Mon Aug 29 14:29:23 2011 -0700 @@ -108,6 +108,7 @@ DEF(EROFS); DEF(ENODATA); DEF(ERANGE); + DEF(EMFILE); // flags used with openat/unlinkat/etc. #if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java --- a/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java Mon Aug 29 14:29:23 2011 -0700 @@ -55,9 +55,7 @@ try { return new Iocp(null, ThreadPool.createDefault()).start(); } catch (IOException ioe) { - InternalError e = new InternalError(); - e.initCause(ioe); - throw e; + throw new InternalError(ioe); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/KeyStore.java --- a/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java Mon Aug 29 14:29:23 2011 -0700 @@ -29,7 +29,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.math.BigInteger; import java.security.AccessController; import java.security.InvalidKeyException; import java.security.KeyStoreSpi; @@ -40,7 +39,6 @@ import java.security.cert.X509Certificate; import java.security.cert.Certificate; import java.security.cert.CertificateException; -import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateFactory; import java.security.interfaces.RSAPrivateCrtKey; import java.util.ArrayList; @@ -564,20 +562,20 @@ * * @return enumeration of the alias names */ - public Enumeration engineAliases() { + public Enumeration engineAliases() { - final Iterator iter = entries.iterator(); + final Iterator iter = entries.iterator(); - return new Enumeration() + return new Enumeration() { public boolean hasMoreElements() { return iter.hasNext(); } - public Object nextElement() + public String nextElement() { - KeyEntry entry = (KeyEntry) iter.next(); + KeyEntry entry = iter.next(); return entry.getAlias(); } }; @@ -591,10 +589,10 @@ * @return true if the alias exists, false otherwise */ public boolean engineContainsAlias(String alias) { - for (Enumeration enumerator = engineAliases(); + for (Enumeration enumerator = engineAliases(); enumerator.hasMoreElements();) { - String a = (String) enumerator.nextElement(); + String a = enumerator.nextElement(); if (a.equals(alias)) return true; @@ -774,7 +772,8 @@ * certificates and stores the result into a key entry. */ private void generateCertificateChain(String alias, - Collection certCollection, Collection entries) + Collection certCollection, + Collection entries) { try { @@ -782,7 +781,8 @@ new X509Certificate[certCollection.size()]; int i = 0; - for (Iterator iter=certCollection.iterator(); iter.hasNext(); i++) + for (Iterator iter = + certCollection.iterator(); iter.hasNext(); i++) { certChain[i] = (X509Certificate) iter.next(); } @@ -805,7 +805,8 @@ */ private void generateRSAKeyAndCertificateChain(String alias, long hCryptProv, long hCryptKey, int keyLength, - Collection certCollection, Collection entries) + Collection certCollection, + Collection entries) { try { @@ -813,7 +814,8 @@ new X509Certificate[certCollection.size()]; int i = 0; - for (Iterator iter=certCollection.iterator(); iter.hasNext(); i++) + for (Iterator iter = + certCollection.iterator(); iter.hasNext(); i++) { certChain[i] = (X509Certificate) iter.next(); } @@ -837,8 +839,8 @@ * @param data Byte data. * @param certCollection Collection of certificates. */ - private void generateCertificate(byte[] data, Collection certCollection) - { + private void generateCertificate(byte[] data, + Collection certCollection) { try { ByteArrayInputStream bis = new ByteArrayInputStream(data); @@ -849,7 +851,8 @@ } // Generate certificate - Collection c = certificateFactory.generateCertificates(bis); + Collection c = + certificateFactory.generateCertificates(bis); certCollection.addAll(c); } catch (CertificateException e) diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/PRNG.java --- a/jdk/src/windows/classes/sun/security/mscapi/PRNG.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/PRNG.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -37,8 +37,7 @@ public final class PRNG extends SecureRandomSpi implements java.io.Serializable { - // TODO - generate the serialVersionUID - //private static final long serialVersionUID = XXX; + private static final long serialVersionUID = 4129268715132691532L; /* * The CryptGenRandom function fills a buffer with cryptographically random diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java --- a/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPrivateKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -35,6 +35,8 @@ */ class RSAPrivateKey extends Key implements PrivateKey { + private static final long serialVersionUID = 8113152807912338063L; + /** * Construct an RSAPrivateKey object. */ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java --- a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,11 +26,9 @@ package sun.security.mscapi; import java.math.BigInteger; -import java.security.InvalidKeyException; import java.security.KeyException; import java.security.KeyRep; import java.security.ProviderException; -import java.security.PublicKey; import sun.security.rsa.RSAPublicKeyImpl; @@ -41,6 +39,8 @@ */ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey { + private static final long serialVersionUID = -2289561342425825391L; + private byte[] publicKeyBlob = null; private byte[] encoding = null; private BigInteger modulus = null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/RSASignature.java --- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java Mon Aug 29 14:29:23 2011 -0700 @@ -30,14 +30,10 @@ import java.security.PrivateKey; import java.security.InvalidKeyException; import java.security.InvalidParameterException; -import java.security.InvalidAlgorithmParameterException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.ProviderException; import java.security.MessageDigest; -import java.security.SecureRandom; -import java.security.Signature; -import java.security.SignatureSpi; import java.security.SignatureException; import java.math.BigInteger; @@ -474,6 +470,7 @@ * #engineSetParameter(java.security.spec.AlgorithmParameterSpec) * engineSetParameter}. */ + @Deprecated protected void engineSetParameter(String param, Object value) throws InvalidParameterException { @@ -503,6 +500,7 @@ * * @deprecated */ + @Deprecated protected Object engineGetParameter(String param) throws InvalidParameterException { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java --- a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,7 +28,6 @@ import java.security.AccessController; import java.security.PrivilegedAction; import java.security.Provider; -import java.security.ProviderException; import java.util.HashMap; import java.util.Map; @@ -62,8 +61,9 @@ // if there is no security manager installed, put directly into // the provider. Otherwise, create a temporary map and use a // doPrivileged() call at the end to transfer the contents - final Map map = (System.getSecurityManager() == null) - ? (Map)this : new HashMap(); + final Map map = + (System.getSecurityManager() == null) + ? this : new HashMap(); /* * Secure random diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/lib/content-types.properties --- a/jdk/src/windows/lib/content-types.properties Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/lib/content-types.properties Mon Aug 29 14:29:23 2011 -0700 @@ -222,6 +222,10 @@ icon=png;\ action=browser +image/bmp: \ + description=Bitmap Image;\ + file_extensions=.bmp; + text/html: \ description=HTML Document;\ file_extensions=.htm,.html;\ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/src/windows/native/java/lang/java_props_md.c --- a/jdk/src/windows/native/java/lang/java_props_md.c Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/src/windows/native/java/lang/java_props_md.c Mon Aug 29 14:29:23 2011 -0700 @@ -563,6 +563,18 @@ { char * display_encoding; + // Windows UI Language selection list only cares "language" + // information of the UI Language. For example, the list + // just lists "English" but it actually means "en_US", and + // the user cannot select "en_GB" (if exists) in the list. + // So, this hack is to use the user LCID region information + // for the UI Language, if the "language" portion of those + // two locales are the same. + if (PRIMARYLANGID(LANGIDFROMLCID(userDefaultLCID)) == + PRIMARYLANGID(LANGIDFROMLCID(userDefaultUILang))) { + userDefaultUILang = userDefaultLCID; + } + SetupI18nProps(userDefaultUILang, &sprops.language, &sprops.script, diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/Makefile --- a/jdk/test/Makefile Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/Makefile Mon Aug 29 14:29:23 2011 -0700 @@ -544,7 +544,7 @@ jdk_security3: $(call TestDirs, com/sun/security lib/security \ javax/security sun/security) $(call SharedLibraryPermissions,sun/security) - $(call RunOthervmBatch) + $(call RunSamevmBatch) # All security tests jdk_security: jdk_security1 jdk_security2 jdk_security3 diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/ProblemList.txt --- a/jdk/test/ProblemList.txt Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/ProblemList.txt Mon Aug 29 14:29:23 2011 -0700 @@ -198,10 +198,19 @@ # requires junit java/lang/invoke/InvokeDynamicPrintArgs.java generic-all +# 7079093 +java/lang/instrument/ManifestTest.sh windows-all + ############################################################################ # jdk_management +# 6944188 +java/lang/management/ThreadMXBean/ThreadStateTest.java generic-all + +# 7067973 +java/lang/management/MemoryMXBean/CollectionUsageThreshold.java generic-all + # Failing, bug was filed: 6959636 javax/management/loading/LibraryLoader/LibraryLoaderTest.java generic-all @@ -362,6 +371,15 @@ # Filed 7036666 com/sun/net/httpserver/Test9a.java generic-all +# 7079145 java/net/ipv6tests/UdpTest.java hang at IPv6 only data exchange +java/net/ipv6tests/UdpTest.java linux-all + +# 7079012 +java/net/NetworkInterface/NetParamsTest.java solaris-all + +# 7081476 +java/net/InetSocketAddress/B6469803.java generic-all + ############################################################################ # jdk_io @@ -369,6 +387,12 @@ # 6962637 java/io/File/MaxPathLength.java windows-all +# 6671616 +java/io/File/BlockIsDirectory.java solaris-all + +# 7076644 +java/io/File/Basic.java windows-all + ############################################################################ # jdk_nio @@ -376,6 +400,9 @@ # 6963118 java/nio/channels/Selector/Wakeup.java windows-all +# 7076700 +java/nio/channels/SocketChannel/AdaptSocket.java generic-all + ############################################################################ # jdk_rmi @@ -450,73 +477,20 @@ # jdk_security -# Filed 6986868 -sun/security/tools/jarsigner/crl.sh generic-all - -# Filed 6951285, not sure how often this fails, last was Linux 64bit Fedora 9 -sun/security/krb5/auto/MaxRetries.java generic-all - -# Filed 6950930, fails on windows 32bit c1 and windows 64bit -sun/security/krb5/auto/IgnoreChannelBinding.java windows-all - -# Filed 6950931, failing on all windows systems -sun/security/tools/jarsigner/crl.sh windows-all - -# Filed 6950929, only seemed to fail on solaris sparcv9 (-d64) -# Failed on Linux -server 32bit too, making generic -sun/security/krb5/auto/BadKdc4.java generic-all - # Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3) sun/security/pkcs11/Secmod/AddPrivateKey.java solaris-i586 sun/security/pkcs11/ec/ReadCertificates.java solaris-i586 sun/security/pkcs11/ec/ReadPKCS12.java solaris-i586 sun/security/pkcs11/ec/TestCurves.java solaris-i586 sun/security/pkcs11/ec/TestECDSA.java solaris-i586 -sun/security/pkcs11/ec/TestECGenSpec.java solaris-i586 -sun/security/pkcs11/ec/TestKeyFactory.java solaris-i586 - -# Failing on Solaris X64 (-d64 -server) with: -# GSSException: Failure unspecified at GSS-API level -# (Mechanism level: Specified version of key is not available (44)) -sun/security/krb5/auto/BasicKrb5Test.java generic-all - -# Solaris X86 failures, readjar.jks: No such file or directory -sun/security/tools/keytool/readjar.sh generic-all - -# Fails with -ea -esa, but only on Solaris sparc? Suspect it is timing out -sun/security/tools/keytool/standard.sh generic-all - -# Fails on Solaris 10 X64, address already in use -sun/security/krb5/auto/HttpNegotiateServer.java generic-all - -# Fails on almost all platforms -# java.lang.UnsupportedClassVersionError: SerialTest : -# Unsupported major.minor version 51.0 -# at java.lang.ClassLoader.defineClass1(Native Method) -sun/security/util/Oid/S11N.sh generic-all +#sun/security/pkcs11/ec/TestECGenSpec.java solaris-i586 +#sun/security/pkcs11/ec/TestKeyFactory.java solaris-i586 +sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java solaris-i586 -# Fails on Fedora 9 32bit -# GSSException: Failure unspecified at GSS-API level (Mechanism level: -# Invalid argument (400) - Cannot find key of appropriate type to decrypt -# AP REP - DES CBC mode with MD5) -# at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:778) -sun/security/krb5/auto/NonMutualSpnego.java generic-all - -# Fails on Solaris 10 sparc, GSSException: Failure unspecified at GSS-API level -# Also fails on Windows 2000 similar way -sun/security/krb5/auto/ok-as-delegate.sh generic-all +# Directly references PKCS11 class +sun/security/pkcs11/Provider/Absolute.java windows-x64 -# Fails on Windows 2000, GSSException: Failure unspecified at GSS-API level -# (Mechanism level: Request is a replay (34)) -sun/security/krb5/auto/ok-as-delegate-xrealm.sh generic-all - -# Fails on Windows 2000, ExceptionInInitializerError -sun/security/mscapi/AccessKeyStore.sh generic-all - -# Fails on Solaris 10, KrbException: Additional pre-authentication required (25) -sun/security/krb5/auto/basic.sh generic-all - -# Fails on Fedora 9 64bit, PKCS11Exception: CKR_DEVICE_ERROR +# Fails on Fedora 9/Ubuntu 10.04 64bit, PKCS11Exception: CKR_DEVICE_ERROR sun/security/pkcs11/KeyAgreement/TestDH.java generic-all # Run too slow on Solaris 10 sparc @@ -525,18 +499,10 @@ sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java solaris-sparc sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java solaris-sparc sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh solaris-sparc -sun/security/tools/keytool/AltProviderPath.sh solaris-sparc # Solaris 10 sparc, passed/failed confusion? java.security.ProviderException: update() failed sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java generic-all -# Seem really slow on Solaris sparc, being excluded just for timing reasons -sun/security/tools/jarsigner/AlgOptions.sh solaris-sparc -sun/security/tools/jarsigner/nameclash.sh solaris-sparc -sun/security/krb5/auto/basic.sh solaris-sparc -sun/security/provider/PolicyFile/getinstance/getinstance.sh solaris-sparc -sun/security/tools/jarsigner/samename.sh solaris-sparc - # Othervm, sparc, NoRouteToHostException: Cannot assign requested address sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java generic-all @@ -544,48 +510,21 @@ # Solaris sparc and sparcv9 -server, timeout sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java generic-all -# Failed on solaris 10 sparc, othervm mode, "js.jks: No such file or directory" -# Also, cannot verify signature on solaris i586 -server -sun/security/tools/jarsigner/concise_jarsigner.sh generic-all - # Various failures on Linux Fedora 9 X64, othervm mode -lib/security/cacerts/VerifyCACerts.java generic-all sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java generic-all sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java generic-all -sun/security/tools/jarsigner/oldsig.sh generic-all # Various failures on Linux Fedora 9 X64, othervm mode sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all -# Solaris sparcv9: Failed to parse input emptysubject.jks: No such file or directory -sun/security/tools/keytool/emptysubject.sh generic-all - -# Fails on OpenSolaris, missing classes, slow on Solaris sparc -sun/security/ec/TestEC.java generic-all - -# Problems with windows x64 -sun/security/mscapi/IsSunMSCAPIAvailable.sh windows-x64 -sun/security/mscapi/RSAEncryptDecrypt.sh windows-x64 - -# Exception in test solaris-sparc -client -server, no windows -sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java solaris-all +# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout +sun/security/tools/keytool/printssl.sh solaris-all -# Solaris sparc client, fails to compile? -sun/security/pkcs11/KeyStore/SecretKeysBasic.sh solaris-all - -# Fails on OpenSolaris java.net.BindException: Address already in use -sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java generic-all +# 7054637 +sun/security/tools/jarsigner/ec.sh solaris-all -# Timeout on solaris-sparcv9 or ArrayIndexOutOfBoundsException? -sun/security/rsa/TestKeyPairGeneratorLength.java solaris-all -sun/security/rsa/TestSignatures.java solaris-all - -# Do not seem to run on windows machines? dll missing? -sun/security/tools/jarsigner/emptymanifest.sh windows-all - -# Files does not exist or no encoding? solaris-sparcv9 -sun/security/tools/keytool/importreadall.sh solaris-all -sun/security/tools/keytool/selfissued.sh solaris-all +# 7081817 +sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java generic-all ############################################################################ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java --- a/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/com/sun/security/auth/login/ConfigFile/IllegalURL.java Mon Aug 29 14:29:23 2011 -0700 @@ -43,8 +43,9 @@ static void use(String f) throws Exception { System.out.println("Testing " + f + "..."); System.setProperty("java.security.auth.login.config", f); - try { - new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar)); + try (FileInputStream fis = + new FileInputStream(new URL(f).getFile().replace('/', File.separatorChar))) { + // do nothing } catch (Exception e) { System.out.println("Even old implementation does not support it. Ignored."); return; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/com/sun/security/sasl/ntlm/Conformance.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/security/sasl/ntlm/Conformance.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +/* + * @test + * @bug 7043847 7043860 7043882 7043938 7043959 + * @summary NTML impl of SaslServer conformance errors + */ +import java.io.IOException; +import javax.security.sasl.*; +import java.util.*; +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +public class Conformance { + + public static void main(String[] args) throws Exception { + try { + Sasl.createSaslClient(new String[] {"NTLM"}, "abc", "ldap", + "server", new HashMap(), null); + } catch (SaslException se) { + System.out.println(se); + } + try { + Sasl.createSaslServer("NTLM", "ldap", + "server", new HashMap(), null); + } catch (SaslException se) { + System.out.println(se); + } + try { + Sasl.createSaslClient(new String[] {"NTLM"}, "abc", "ldap", + "server", null, new CallbackHandler() { + @Override + public void handle(Callback[] callbacks) throws + IOException, UnsupportedCallbackException { } + }); + } catch (SaslException se) { + System.out.println(se); + } + try { + SaslServer saslServer = + Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() { + @Override + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { } + }); + System.err.println("saslServer = " + saslServer); + System.err.println("saslServer.isComplete() = " + saslServer.isComplete()); + // IllegalStateException is expected here + saslServer.getNegotiatedProperty("prop"); + System.err.println("No IllegalStateException"); + } catch (IllegalStateException se) { + System.out.println(se); + } + try { + SaslServer saslServer = + Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() { + @Override + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { } + }); + System.err.println("saslServer = " + saslServer); + System.err.println("saslServer.isComplete() = " + saslServer.isComplete()); + // IllegalStateException is expected here + saslServer.getAuthorizationID(); + System.err.println("No IllegalStateException"); + } catch (IllegalStateException se) { + System.out.println(se); + } + try { + SaslServer saslServer = + Sasl.createSaslServer("NTLM", "ldap", "abc", null, new CallbackHandler() { + @Override + public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { } + }); + System.err.println("saslServer = " + saslServer); + System.err.println("saslServer.isComplete() = " + saslServer.isComplete()); + // IllegalStateException is expected here + saslServer.wrap(new byte[0], 0, 0); + System.err.println("No IllegalStateException"); + } catch (IllegalStateException se) { + System.out.println(se); + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/io/IOException/LastErrorString.java --- a/jdk/test/java/io/IOException/LastErrorString.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/io/IOException/LastErrorString.java Mon Aug 29 14:29:23 2011 -0700 @@ -23,6 +23,7 @@ /* @test @bug 4167937 + @ignore Test truncates system files when run as root, see 7042603 @summary Test code paths that use the JVM_LastErrorString procedure */ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/io/etc/FailingFlushAndClose.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/io/etc/FailingFlushAndClose.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,268 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +import java.io.*; + +/** + * @test + * @bug 7015589 + * @summary Test that buffering streams are considered closed even when the + * close or flush from the underlying stream fails. + */ + +public class FailingFlushAndClose { + + static int failed; + + static void fail(String msg) { + System.err.println("FAIL: " + msg); + failed++; + } + + static void failWithIOE(String msg) throws IOException { + fail(msg); + throw new IOException(msg); + } + + static class FailingCloseInputStream extends InputStream { + boolean closed; + @Override + public int read()throws IOException { + if (closed) + failWithIOE("input stream is closed"); + return 1; + } + @Override + public void close() throws IOException { + if (!closed) { + closed = true; + throw new IOException("close failed"); + } + } + } + + static class FailingCloseOutputStream extends OutputStream { + boolean closed; + @Override + public void write(int b) throws IOException { + if (closed) + failWithIOE("output stream is closed"); + } + @Override + public void flush() throws IOException { + if (closed) + failWithIOE("output stream is closed"); + } + @Override + public void close() throws IOException { + if (!closed) { + closed = true; + throw new IOException("close failed"); + } + } + } + + static class FailingFlushOutputStream extends OutputStream { + boolean closed; + @Override + public void write(int b) throws IOException { + if (closed) + failWithIOE("output stream is closed"); + } + @Override + public void flush() throws IOException { + if (closed) { + failWithIOE("output stream is closed"); + } else { + throw new IOException("flush failed"); + } + } + @Override + public void close() throws IOException { + closed = true; + } + } + + static class FailingCloseReader extends Reader { + boolean closed; + @Override + public int read(char[] cbuf, int off, int len) throws IOException { + if (closed) + failWithIOE("reader is closed"); + return 1; + } + @Override + public void close() throws IOException { + if (!closed) { + closed = true; + throw new IOException("close failed"); + } + } + } + + static class FailingCloseWriter extends Writer { + boolean closed; + @Override + public void write(char[] cbuf, int off, int len) throws IOException { + if (closed) + failWithIOE("writer is closed"); + } + @Override + public void flush() throws IOException { + if (closed) + failWithIOE("writer is closed"); + } + @Override + public void close() throws IOException { + if (!closed) { + closed = true; + throw new IOException("close failed"); + } + } + } + + static class FailingFlushWriter extends Writer { + boolean closed; + @Override + public void write(char[] cbuf, int off, int len) throws IOException { + if (closed) + failWithIOE("writer is closed"); + } + @Override + public void flush() throws IOException { + if (closed) { + failWithIOE("writer is closed"); + } else { + throw new IOException("flush failed"); + } + } + @Override + public void close() throws IOException { + if (!closed) { + closed = true; + throw new IOException("close failed"); + } + } + } + + static void testFailingClose(InputStream in) throws IOException { + System.out.println(in.getClass()); + in.read(new byte[100]); + try { + in.close(); + fail("close did not fail"); + } catch (IOException expected) { } + try { + in.read(new byte[100]); + fail("read did not fail"); + } catch (IOException expected) { } + } + + static void testFailingClose(OutputStream out) throws IOException { + System.out.println(out.getClass()); + out.write(1); + try { + out.close(); + fail("close did not fail"); + } catch (IOException expected) { } + try { + out.write(1); + if (!(out instanceof BufferedOutputStream)) + fail("write did not fail"); + } catch (IOException expected) { } + } + + static void testFailingFlush(OutputStream out) throws IOException { + System.out.println(out.getClass()); + out.write(1); + try { + out.flush(); + fail("flush did not fail"); + } catch (IOException expected) { } + if (out instanceof BufferedOutputStream) { + out.write(1); + try { + out.close(); + fail("close did not fail"); + } catch (IOException expected) { } + } + } + + static void testFailingClose(Reader r) throws IOException { + System.out.println(r.getClass()); + r.read(new char[100]); + try { + r.close(); + fail("close did not fail"); + } catch (IOException expected) { } + try { + r.read(new char[100]); + fail("read did not fail"); + } catch (IOException expected) { } + } + + static void testFailingClose(Writer w) throws IOException { + System.out.println(w.getClass()); + w.write("message"); + try { + w.close(); + fail("close did not fail"); + } catch (IOException expected) { } + try { + w.write("another message"); + fail("write did not fail"); + } catch (IOException expected) { } + } + + static void testFailingFlush(Writer w) throws IOException { + System.out.println(w.getClass()); + w.write("message"); + try { + w.flush(); + fail("flush did not fail"); + } catch (IOException expected) { } + if (w instanceof BufferedWriter) { + // assume this message will be buffered + w.write("another message"); + try { + w.close(); + fail("close did not fail"); + } catch (IOException expected) { } + } + } + + public static void main(String[] args) throws IOException { + + testFailingClose(new BufferedInputStream(new FailingCloseInputStream())); + testFailingClose(new BufferedOutputStream(new FailingCloseOutputStream())); + + testFailingClose(new BufferedReader(new FailingCloseReader())); + testFailingClose(new BufferedWriter(new FailingCloseWriter())); + + testFailingFlush(new BufferedOutputStream(new FailingFlushOutputStream())); + testFailingFlush(new BufferedWriter(new FailingFlushWriter())); + + if (failed > 0) + throw new RuntimeException(failed + " test(s) failed - see log for details"); + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/Math/Tests.java --- a/jdk/test/java/lang/Math/Tests.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/lang/Math/Tests.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011 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 @@ -35,20 +35,30 @@ public class Tests { private Tests(){}; // do not instantiate - private static String toHexString(float f) { + public static String toHexString(float f) { if (!Float.isNaN(f)) return Float.toHexString(f); else return "NaN(0x" + Integer.toHexString(Float.floatToRawIntBits(f)) + ")"; } - private static String toHexString(double d) { + public static String toHexString(double d) { if (!Double.isNaN(d)) return Double.toHexString(d); else return "NaN(0x" + Long.toHexString(Double.doubleToRawLongBits(d)) + ")"; } + /** + * Return the floating-point value next larger in magnitude. + */ + public static double nextOut(double d) { + if (d > 0.0) + return Math.nextUp(d); + else + return -Math.nextUp(-d); + } + public static int test(String testName, float input, boolean result, boolean expected) { if (expected != result) { @@ -338,4 +348,24 @@ else return 0; } + + // For a successful test, the result must be within the upper and + // lower bounds. + public static int testBounds(String testName, double input, double result, + double bound1, double bound2) { + if ((result >= bound1 && result <= bound2) || + (result <= bound1 && result >= bound2)) + return 0; + else { + double lowerBound = Math.min(bound1, bound2); + double upperBound = Math.max(bound1, bound2); + System.err.println("Failure for " + testName + ":\n" + + "\tFor input " + input + "\t(" + toHexString(input) + ")\n" + + "\tgot " + result + "\t(" + toHexString(result) + ");\n" + + "\toutside of range\n" + + "\t[" + lowerBound + "\t(" + toHexString(lowerBound) + "), " + + upperBound + "\t(" + toHexString(upperBound) + ")]"); + return 1; + } + } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/Math/WorstCaseTests.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/lang/Math/WorstCaseTests.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,435 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +/* + * @test + * @bug 4900206 + * @summary Test worst case behavior of exp, log, sin, cos, etc. + * @build Tests + * @build WorstCaseTests + * @run main WorstCaseTests + * @run main/othervm -Xcomp WorstCaseTests + * @author Joseph D. Darcy + */ + +/** + * Use "Table Maker's Dilemma" results from Jean-Michel Muller and + * Vincent Lefèvre, to test the math library. See + * http://perso.ens-lyon.fr/jean-michel.muller/TMD.html for original + * test vectors from 2000 and see + * http://perso.ens-lyon.fr/jean-michel.muller/TMDworstcases.pdf with + * additional test vectors from 2003. The latter link also contains + * some information about the methodology used to produce the test + * vectors. + * + * Most of the Java math library methods tested here have a 1-ulp + * error bound from their specifications. This implies the returned + * value must be one of the two representable floating-point numbers + * bracketing the exact result. The expected value in the test + * vectors below is the truncation of the exact value. Therefore, the + * computed result must either be that value or the value next larger + * in magnitude. The hyperbolic transcendental functions sinh and cosh + * have a larger 2.5 ulp error bound in their specification, but the + * JDK implementation complies with a 1 ulp bound on the worst-case + * values. Therefore, no addition leeway is afforded when testing + * sinh and cosh. + */ +public class WorstCaseTests { + private WorstCaseTests() {throw new AssertionError("No instances for you.");} + + public static void main(String... args) { + int failures = 0; + + failures += testWorstExp(); + failures += testWorstLog(); + failures += testWorstSin(); + failures += testWorstAsin(); + failures += testWorstCos(); + failures += testWorstAcos(); + failures += testWorstTan(); + failures += testWorstAtan(); + failures += testWorstPow2(); + failures += testWorstSinh(); + failures += testWorstCosh(); + + if (failures > 0) { + System.err.printf("Testing worst cases incurred %d failures.%n", failures); + throw new RuntimeException(); + } + } + + private static int testWorstExp() { + int failures = 0; + double [][] testCases = { + {-0x1.E8BDBFCD9144Ep3, 0x1.F3E558CF4DE54p-23}, + {-0x1.71E0B869B5E79p2, 0x1.951C6DC5D24E2p-9}, + {-0x1.02393D5976769p1, 0x1.1064B2C103DDAp-3}, + {-0x1.2A9CAD9998262p0, 0x1.3EF1E9B3A81C7p-2}, + {-0x1.CC37EF7DE7501p0, 0x1.534D4DE870713p-3}, + {-0x1.22E24FA3D5CF9p-1, 0x1.2217147B85EA9p-1}, + {-0x1.DC2B5DF1F7D3Dp-1, 0x1.9403FD0EE51C8p-2}, + {-0x1.290EA09E36479p-3, 0x1.BADED30CBF1C3p-1}, + {-0x1.A2FEFEFD580DFp-13, 0x1.FFE5D0BB7EABFp-1}, + {-0x1.ED318EFB627EAp-27, 0x1.FFFFFF84B39C4p-1}, + {-0x1.4BD46601AE1EFp-31, 0x1.FFFFFFFAD0AE6p-1}, + {-0x1.1000000000242p-42, 0x1.FFFFFFFFFF780p-1}, + {-0x1.2000000000288p-42, 0x1.FFFFFFFFFF700p-1}, + {-0x1.8000000000012p-48, 0x1.FFFFFFFFFFFD0p-1}, + {-0x1.0000000000001p-51, 0x1.FFFFFFFFFFFFCp-1}, + + {+0x1.FFFFFFFFFFFFFp-53, 0x1.0000000000000p0}, + {+0x1.FFFFFFFFFFFE0p-48, 0x1.000000000001Fp0}, + {+0x1.7FFE7FFEE0024p-32, 0x1.000000017FFE8p0}, + {+0x1.80017FFEDFFDCp-32, 0x1.0000000180017p0}, + {+0x1.9E9CBBFD6080Bp-31, 0x1.000000033D397p0}, + {+0x1.D7A7D893609E5p-26, 0x1.00000075E9F64p0}, + {+0x1.BA07D73250DE7p-14, 0x1.0006E83736F8Cp0}, + {+0x1.D77FD13D27FFFp-11, 0x1.003AF6C37C1D3p0}, + {+0x1.6A4D1AF9CC989p-8, 0x1.016B4DF3299D7p0}, + {+0x1.ACCFBE46B4EF0p-1, 0x2.4F85C9783DCE0p0}, + {+0x1.ACA7AE8DA5A7Bp0, 0x5.55F52B35F955Ap0}, + {+0x1.D6336A88077AAp0, 0x6.46A37FD503FDCp0}, + {+0x2.85DC78FB8928Cp0, 0xC.76F2496CB038Fp0}, + {+0x1.76E7E5D7B6EACp3, 0x1.DE7CD6751029Ap16}, + {+0x1.A8EAD058BC6B8p3, 0x1.1D71965F516ADp19}, + {+0x1.1D5C2DAEBE367p4, 0x1.A8C02E974C314p25}, + {+0x1.C44CE0D716A1Ap4, 0x1.B890CA8637AE1p40}, + }; + + for(double[] testCase: testCases) { + failures += testExpCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testExpCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.exp", input, Math.exp(input), expected, out); + failures += Tests.testBounds("StrictMath.exp", input, StrictMath.exp(input), expected, out); + return failures; + } + + private static int testWorstLog() { + int failures = 0; + double [][] testCases = { + {+0x1.0000000000001p0, +0x1.FFFFFFFFFFFFFp-53}, + {+0x2.0012ECB039C9Cp0, +0x1.62F71C4656B60p-1}, + {+0x6.46A37FD503FDCp0, +0x1.D6336A88077A9p+0}, + {+0x7.78DFECC7F57Fp0, +0x2.02DD059DB46Bp+0}, + {+0x9.588CCF24BB9C8p0, +0x2.3C24DEBB2BE7p+0}, + {+0xA.AF87550D97E4p0, +0x2.5E706595A7ABEp+0}, + {+0xC.76F2496CB039p0, +0x2.85DC78FB8928Cp+0}, + {+0x11.1867637CBD03p0, +0x2.D6BBEFC79A842p+0}, + {+0x13.D9D7D597A9DDp0, +0x2.FCFE12AE07DDCp+0}, + {+0x17.F3825778AAAFp0, +0x3.2D0F907F5E00Cp+0}, + {+0x1AC.50B409C8AEEp0, +0x6.0F52F37AECFCCp+0}, + {+0x1.DE7CD6751029Ap16, +0x1.76E7E5D7B6EABp+3}, + }; + + for(double[] testCase: testCases) { + failures += testLogCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testLogCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.log", input, Math.log(input), expected, out); + failures += Tests.testBounds("StrictMath.log", input, StrictMath.log(input), expected, out); + return failures; + } + + private static int testWorstSin() { + int failures = 0; + double [][] testCases = { + {+0x1.E0000000001C2p-20, +0x1.DFFFFFFFFF02Ep-20}, + {+0x1.598BAE9E632F6p-7, +0x1.598A0AEA48996p-7}, + + {+0x1.9283586503FEp-5, +0x1.9259E3708BD39p-5}, + {+0x1.D7BDCD778049Fp-5, +0x1.D77B117F230D5p-5}, + {+0x1.A202B3FB84788p-4, +0x1.A1490C8C06BA6p-4}, + {+0x1.D037CB27EE6DFp-3, +0x1.CC40C3805229Ap-3}, + {+0x1.D5064E6FE82C5p-3, +0x1.D0EF799001BA9p-3}, + {+0x1.FE767739D0F6Dp-2, +0x1.E9950730C4695p-2}, + {+0x1.D98C4C612718Dp-1, +0x1.98DCD09337792p-1}, + {+0x1.921FB54442D18p-0, +0x1.FFFFFFFFFFFFFp-1}, + + {+0x1.6756745770A51p+1, +0x1.4FF350E412821p-2}, + }; + + for(double[] testCase: testCases) { + failures += testSinCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testSinCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.sin", input, Math.sin(input), expected, out); + failures += Tests.testBounds("StrictMath.sin", input, StrictMath.sin(input), expected, out); + return failures; + } + + private static int testWorstAsin() { + int failures = 0; + double [][] testCases = { + {+0x1.DFFFFFFFFF02Ep-20, +0x1.E0000000001C1p-20}, + {+0x1.DFFFFFFFFC0B8p-19, +0x1.E000000000707p-19}, + + {+0x1.9259E3708BD3Ap-5, +0x1.9283586503FEp-5}, + {+0x1.D77B117F230D6p-5, +0x1.D7BDCD778049Fp-5}, + {+0x1.A1490C8C06BA7p-4, +0x1.A202B3FB84788p-4}, + {+0x1.9697CB602C582p-3, +0x1.994FFB5DAF0F9p-3}, + {+0x1.D0EF799001BA9p-3, +0x1.D5064E6FE82C4p-3}, + {+0x1.E9950730C4696p-2, +0x1.FE767739D0F6Dp-2}, + {+0x1.1ED06D50F7E88p-1, +0x1.30706F699466Dp-1}, + {+0x1.D5B05A89D3E77p-1, +0x1.29517AB4C132Ap+0}, + {+0x1.E264357EA0E29p-1, +0x1.3AA301F6EBB1Dp+0}, + }; + + for(double[] testCase: testCases) { + failures += testAsinCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testAsinCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.asin", input, Math.asin(input), expected, out); + failures += Tests.testBounds("StrictMath.asin", input, StrictMath.asin(input), expected, out); + return failures; + } + + private static int testWorstCos() { + int failures = 0; + double [][] testCases = { + {+0x1.8000000000009p-23, +0x0.FFFFFFFFFFFB8p+0}, + {+0x1.8000000000024p-22, +0x0.FFFFFFFFFFEE0p+0}, + {+0x1.2000000000F30p-18, +0x0.FFFFFFFFF5E00p+0}, + {+0x1.06B505550E6B2p-9, +0x0.FFFFDE4D1FDFFp+0}, + {+0x1.97CCD3D2C438Fp-6, +0x0.FFEBB35D43854p+0}, + + {+0x1.549EC0C0C5AFAp-5, +0x1.FF8EB6A91ECB0p-1}, + {+0x1.16E534EE36580p-4, +0x1.FED0476FC75C9p-1}, + {+0x1.EFEEF61D39AC2p-3, +0x1.F10FC61E2C78Ep-1}, + {+0x1.FEB1F7920E248p-2, +0x1.C1A27AE836F12p-1}, + {+0x1.7CB7648526F99p-1, +0x1.78DAF01036D0Cp-1}, + {+0x1.C65A170474549p-1, +0x1.434A3645BE208p-1}, + {+0x1.6B8A6273D7C21p+0, +0x1.337FC5B072C52p-3}, + }; + + for(double[] testCase: testCases) { + failures += testCosCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testCosCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.cos", input, Math.cos(input), expected, out); + failures += Tests.testBounds("StrictMath.cos", input, StrictMath.cos(input), expected, out); + return failures; + } + + private static int testWorstAcos() { + int failures = 0; + double [][] testCases = { + {+0x1.FD737BE914578p-11, +0x1.91E006D41D8D8p+0}, + {+0x1.4182199998587p-1, +0x1.C8A538AE83D1Fp-1}, + {+0x1.E45A1C93651ECp-1, +0x1.520DC553F6B23p-2}, + {+0x1.F10FC61E2C78Fp-1, +0x1.EFEEF61D39AC1p-3}, + }; + + for(double[] testCase: testCases) { + failures += testAcosCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testAcosCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.acos", input, Math.acos(input), expected, out); + failures += Tests.testBounds("StrictMath.acos", input, StrictMath.acos(input), expected, out); + return failures; + } + + private static int testWorstTan() { + int failures = 0; + double [][] testCases = { + {+0x1.DFFFFFFFFFF1Fp-22, +0x1.E000000000151p-22}, + {+0x1.67FFFFFFFA114p-18, +0x1.6800000008E61p-18}, + + {+0x1.50486B2F87014p-5, +0x1.5078CEBFF9C72p-5}, + {+0x1.52C39EF070CADp-4, +0x1.5389E6DF41978p-4}, + {+0x1.A33F32AC5CEB5p-3, +0x1.A933FE176B375p-3}, + {+0x1.D696BFA988DB9p-2, +0x1.FAC71CD34EEA6p-2}, + {+0x1.46AC372243536p-1, +0x1.7BA49F739829Ep-1}, + {+0x0.A3561B9121A9Bp+0, +0x0.BDD24FB9CC14Fp+0}, + }; + + for(double[] testCase: testCases) { + failures += testTanCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testTanCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.tan", input, Math.tan(input), expected, out); + failures += Tests.testBounds("StrictMath.tan", input, StrictMath.tan(input), expected, out); + return failures; + } + + private static int testWorstAtan() { + int failures = 0; + double [][] testCases = { + {+0x1.E000000000546p-21, +0x1.DFFFFFFFFFC7Cp-21}, + {+0x1.22E8D75E2BC7Fp-11, +0x1.22E8D5694AD2Bp-11}, + + {+0x1.0FC9F1FABE658p-5, +0x1.0FB06EDE9973Ap-5}, + {+0x1.1BBE9C255698Dp-5, +0x1.1BA1951DB1D6Dp-5}, + {+0x1.8DDD25AB90CA1p-5, +0x1.8D8D2D4BD6FA2p-5}, + {+0x1.5389E6DF41979p-4, +0x1.52C39EF070CADp-4}, + {+0x1.A933FE176B375p-3, +0x1.A33F32AC5CEB4p-3}, + {+0x1.0F6E5D9960397p-2, +0x1.09544B71AD4A6p-2}, + {+0x1.7BA49F739829Fp-1, +0x1.46AC372243536p-1}, + + {+0x0.BDD24FB9CC14F8p+0, +0x0.A3561B9121A9Bp+0}, + }; + + for(double[] testCase: testCases) { + failures += testAtanCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testAtanCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.atan", input, Math.atan(input), expected, out); + failures += Tests.testBounds("StrictMath.atan", input, StrictMath.atan(input), expected, out); + return failures; + } + + private static int testWorstPow2() { + int failures = 0; + double [][] testCases = { + {+0x1.16A76EC41B516p-1, +0x1.7550685A42C63p+0}, + {+0x1.3E34FA6AB969Ep-1, +0x1.89D948A94FE16p+0}, + {+0x1.4A63FF1D53F53p-1, +0x1.90661DA12D528p+0}, + {+0x1.B32A6C92D1185p-1, +0x1.CD6B37EDECEAFp+0}, + + {+0x1.25DD9EEDAC79Ap+0, +0x1.1BA39FF28E3E9p+1}, + }; + + for(double[] testCase: testCases) { + failures += testPow2Case(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testPow2Case(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.pow2", input, Math.pow(2, input), expected, out); + failures += Tests.testBounds("StrictMath.pow2", input, StrictMath.pow(2, input), expected, out); + return failures; + } + + // 2.5 ulp error bound in the specification; the implementation + // does better on the tested values. + private static int testWorstSinh() { + int failures = 0; + double [][] testCases = { + {+0x1.DFFFFFFFFFE3Ep-20, +0x1.E000000000FD1p-20}, + {+0x1.DFFFFFFFFE3E0p-18, +0x1.E00000000FD1Fp-18}, + {+0x1.135E31FDD05D3p-5, +0x1.136B78B25CC57p-5}, + {+0x1.0DC68D5E8F959p-3, +0x1.0E8E73DC4FEE3p-3}, + {+0x1.616CC75D49226p-2, +0x1.687BD068C1C1Ep-2}, + {+0x1.3FFC12B81CBC2p+0, +0x1.9A0FF413A1AF2p+0}, + {+0x2.FE008C44BACA2p+0, +0x9.F08A43ED03AEp+0}, + {+0x1.C089FCF166171p+4, +0x1.5C452E0E37569p+39}, + {+0x1.E07E71BFCF06Fp+5, +0x1.91EC4412C344Fp+85}, + {+0x1.54CD1FEA7663Ap+7, +0x1.C90810D354618p+244}, + {+0x1.D6479EBA7C971p+8, +0x1.62A88613629B5p+677}, + }; + + for(double[] testCase: testCases) { + failures += testSinhCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testSinhCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.sinh", input, Math.sinh(input), expected, out); + failures += Tests.testBounds("StrictMath.sinh", input, StrictMath.sinh(input), expected, out); + return failures; + } + + // 2.5 ulp error bound in the specification; the implementation + // does better on the tested values. + private static int testWorstCosh() { + int failures = 0; + double [][] testCases = { + {+0x1.17D8A9F206217p-6, +0x1.00098F5F09BE3p+0}, + {+0x1.BF0305E2C6C37p-3, +0x1.061F4C39E16F2p+0}, + {+0x1.03923F2B47C07p-1, +0x1.219C1989E3372p+0}, + {+0x1.A6031CD5F93BAp-1, +0x1.5BFF041B260FDp+0}, + {+0x1.104B648F113A1p+0, +0x1.9EFDCA62B7009p+0}, + {+0x1.EA5F2F2E4B0C5p+1, +0x17.10DB0CD0FED5p+0}, + }; + + for(double[] testCase: testCases) { + failures += testCoshCase(testCase[0], testCase[1]); + } + + return failures; + } + + private static int testCoshCase(double input, double expected) { + int failures = 0; + double out = Tests.nextOut(expected); + failures += Tests.testBounds("Math.cosh", input, Math.cosh(input), expected, out); + failures += Tests.testBounds("StrictMath.cosh", input, StrictMath.cosh(input), expected, out); + return failures; + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/ProcessBuilder/Basic.java --- a/jdk/test/java/lang/ProcessBuilder/Basic.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/lang/ProcessBuilder/Basic.java Mon Aug 29 14:29:23 2011 -0700 @@ -1803,7 +1803,7 @@ p.getInputStream().close(); p.getErrorStream().close(); - p.getOutputStream().close(); + try { p.getOutputStream().close(); } catch (IOException flushFailed) { } InputStream[] streams = { p.getInputStream(), p.getErrorStream() }; for (final InputStream in : streams) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/management/ManagementFactory/GetObjectName.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/lang/management/ManagementFactory/GetObjectName.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +/* @test + * @bug 7068328 + * @summary Test if getObjectName handles properly when called by + * multiple threads simultaneously. Run in othervm mode to + * make sure the object name is not initialized to begin with. + * @run main/othervm GetObjectName + */ + +import java.lang.management.BufferPoolMXBean; +import java.lang.management.ManagementFactory; +import java.lang.management.PlatformLoggingMXBean; +import java.lang.management.PlatformManagedObject; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; + +public class GetObjectName { + private static boolean failed = false; + public static void main(String[] args) throws Exception { + int tasks = 10000; + ExecutorService executor = Executors.newFixedThreadPool(10); + submitTasks(executor, tasks); + executor.shutdown(); + executor.awaitTermination(10, TimeUnit.SECONDS); + if (!failed) { + System.out.println("Test passed."); + } + } + + static void submitTasks(ExecutorService executor, int count) { + for (int i=0; i < count && !failed; i++) { + executor.execute(new Runnable() { + @Override + public void run() { + List mbeans = new ArrayList<>(); + mbeans.add(ManagementFactory.getPlatformMXBean(PlatformLoggingMXBean.class)); + mbeans.addAll(ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class)); + for (PlatformManagedObject pmo : mbeans) { + // Name should not be null + if (pmo.getObjectName() == null) { + failed = true; + throw new RuntimeException("TEST FAILED: getObjectName() returns null"); + } + } + } + }); + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/reflect/Generics/Probe.java --- a/jdk/test/java/lang/reflect/Generics/Probe.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/lang/reflect/Generics/Probe.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2011, 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 @@ -23,7 +23,7 @@ /* * @test - * @bug 5003916 6704655 6873951 + * @bug 5003916 6704655 6873951 6476261 * @summary Testing parsing of signatures attributes of nested classes * @author Joseph D. Darcy */ @@ -38,12 +38,12 @@ "java.util.concurrent.ConcurrentHashMap$KeyIterator", "java.util.concurrent.ConcurrentHashMap$ValueIterator", "java.util.AbstractList$ListItr", -// "java.util.EnumMap$EntryIterator", -// "java.util.EnumMap$KeyIterator", -// "java.util.EnumMap$ValueIterator", -// "java.util.IdentityHashMap$EntryIterator", -// "java.util.IdentityHashMap$KeyIterator", -// "java.util.IdentityHashMap$ValueIterator", + "java.util.EnumMap$EntryIterator", + "java.util.EnumMap$KeyIterator", + "java.util.EnumMap$ValueIterator", + "java.util.IdentityHashMap$EntryIterator", + "java.util.IdentityHashMap$KeyIterator", + "java.util.IdentityHashMap$ValueIterator", "java.util.WeakHashMap$EntryIterator", "java.util.WeakHashMap$KeyIterator", "java.util.WeakHashMap$ValueIterator", @@ -52,12 +52,12 @@ "java.util.HashMap$ValueIterator", "java.util.LinkedHashMap$EntryIterator", "java.util.LinkedHashMap$KeyIterator", - "java.util.LinkedHashMap$ValueIterator"}) + "java.util.LinkedHashMap$ValueIterator", + "javax.swing.JComboBox$AccessibleJComboBox"}) public class Probe { public static void main (String... args) throws Throwable { Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class); - List names = - new ArrayList(asList(classesAnnotation.value())); + List names = new ArrayList<>(asList(classesAnnotation.value())); int errs = 0; for(String name: names) { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/reflect/Generics/SignatureTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/lang/reflect/Generics/SignatureTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006, 2011, 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. + * + * 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. + */ + +/* + * @test + * @bug 6476261 + * @summary More testing of parsing of signatures attributes of nested classes + */ + +import java.lang.reflect.*; + +public class SignatureTest { + class Inner1 { + class Inner11 { + } + } + + public void f(SignatureTest.Inner1.Inner11 x) {} + public void g(SignatureTest.Inner1 x) {} + + public static void main(String[] args) throws Exception { + Class clazz = SignatureTest.class; + for (Method m : clazz.getDeclaredMethods()) { + System.out.println(); + System.out.println(m.toString()); + System.out.println(m.toGenericString()); + System.out.println(m.getGenericParameterTypes()); + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/lang/reflect/Generics/TestBadSignatures.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/lang/reflect/Generics/TestBadSignatures.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +/* + * @test + * @bug 6832374 7052898 + * @summary Test bad signatures get a GenericSignatureFormatError thrown. + * @author Joseph D. Darcy + */ + +import java.lang.reflect.*; +import sun.reflect.generics.parser.SignatureParser; + +public class TestBadSignatures { + public static void main(String[] args) { + String[] badSignatures = { + // Missing ":" after first type bound + "(TE;[Ljava/lang/RuntimeException;)V^[TE;", + }; + + for(String badSig : badSignatures) { + try { + SignatureParser.make().parseMethodSig(badSig); + throw new RuntimeException("Expected GenericSignatureFormatError for " + + badSig); + } catch(GenericSignatureFormatError gsfe) { + System.out.println(gsfe.toString()); // Expected + } + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/net/CookieHandler/TestHttpCookie.java --- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java Mon Aug 29 14:29:23 2011 -0700 @@ -362,12 +362,13 @@ eq(c1, c2, false); header("Test domainMatches()"); - dm(".foo.com", "y.x.foo.com", false); - dm(".foo.com", "x.foo.com", true); - dm(".com", "whatever.com", false); - dm(".com.", "whatever.com", false); - dm(".ajax.com", "ajax.com", true); - dm(".local", "example.local", true); + dm(".foo.com", "y.x.foo.com", false); + dm(".foo.com", "x.foo.com", true); + dm(".com", "whatever.com", false); + dm(".com.", "whatever.com", false); + dm(".ajax.com", "ajax.com", true); + dm(".local", "example.local", true); + dm("example.local", "example", true); // bug 6277808 testCount++; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/net/NetworkInterface/NetParamsTest.java --- a/jdk/test/java/net/NetworkInterface/NetParamsTest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/net/NetworkInterface/NetParamsTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -45,7 +45,9 @@ System.out.println("\tPoint to Point: " + netif.isPointToPoint()); System.out.println("\tVirtual: " + netif.isVirtual()); if (netif.isVirtual()) { - System.out.println("\tParent Interface: " + netif.getParent().getName()); + NetworkInterface parent = netif.getParent(); + String parentName = parent == null ? "null" : parent.getName(); + System.out.println("\tParent Interface: " + parentName); } System.out.println("\tMulticast: " + netif.supportsMulticast()); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java --- a/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/nio/channels/DatagramChannel/NetworkConfiguration.java Mon Aug 29 14:29:23 2011 -0700 @@ -57,11 +57,22 @@ return ip6Interfaces.get(nif); } + // IPv6 not supported for Windows XP/Server 2003 + static boolean isIPv6Supported() { + if (System.getProperty("os.name").startsWith("Windows")) { + String ver = System.getProperty("os.version"); + int major = Integer.parseInt(ver.split("\\.")[0]); + return (major >= 6); + } + return true; + } + static NetworkConfiguration probe() throws IOException { Map> ip4Interfaces = new HashMap>(); Map> ip6Interfaces = new HashMap>(); + boolean isIPv6Supported = isIPv6Supported(); // find the interfaces that support IPv4 and IPv6 List nifs = Collections @@ -81,7 +92,7 @@ } list.add(addr); ip4Interfaces.put(nif, list); - } else if (addr instanceof Inet6Address) { + } else if (isIPv6Supported && (addr instanceof Inet6Address)) { List list = ip6Interfaces.get(nif); if (list == null) { list = new LinkedList(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java --- a/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/nio/channels/DatagramChannel/SelectWhenRefused.java Mon Aug 29 14:29:23 2011 -0700 @@ -22,7 +22,7 @@ */ /* @test - * @bug 6935563 + * @bug 6935563 7044870 * @summary Test that Selector does not select an unconnected DatagramChannel when * ICMP port unreachable received */ @@ -35,14 +35,15 @@ public class SelectWhenRefused { public static void main(String[] args) throws IOException { - DatagramChannel dc = DatagramChannel.open().bind(new InetSocketAddress(0)); - int port = dc.socket().getLocalPort(); - dc.close(); + DatagramChannel dc1 = DatagramChannel.open().bind(new InetSocketAddress(0)); + int port = dc1.socket().getLocalPort(); // datagram sent to this address should be refused SocketAddress refuser = new InetSocketAddress(InetAddress.getLocalHost(), port); - dc = DatagramChannel.open().bind(new InetSocketAddress(0)); + DatagramChannel dc = DatagramChannel.open().bind(new InetSocketAddress(0)); + dc1.close(); + Selector sel = Selector.open(); try { dc.configureBlocking(false); @@ -52,6 +53,10 @@ sendDatagram(dc, refuser); int n = sel.select(2000); if (n > 0) { + sel.selectedKeys().clear(); + // BindException will be thrown if another service is using + // our expected refuser port, cannot run just exit. + DatagramChannel.open().bind(refuser).close(); throw new RuntimeException("Unexpected wakeup"); } @@ -80,6 +85,8 @@ throw new RuntimeException("Unexpected wakeup after disconnect"); } + } catch(BindException e) { + // Do nothing, some other test has used this port } finally { sel.close(); dc.close(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/security/testlibrary/Providers.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/java/security/testlibrary/Providers.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +import java.security.Provider; +import java.security.Security; + +public class Providers { + public static void setAt(Provider p, int pos) throws Exception { + if (Security.getProvider(p.getName()) != null) { + Security.removeProvider(p.getName()); + } + if (Security.insertProviderAt(p, pos) == -1) { + throw new Exception("cannot setAt"); + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/util/Locale/LocaleCategory.java --- a/jdk/test/java/util/Locale/LocaleCategory.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/util/Locale/LocaleCategory.java Mon Aug 29 14:29:23 2011 -0700 @@ -56,6 +56,7 @@ Locale.getDefault().getVariant())).build(); checkDefault(); testGetSetDefault(); + testBug7079486(); } finally { // restore the reserved locale Locale.setDefault(reservedLocale); @@ -82,5 +83,24 @@ throw new RuntimeException("setDefault() should set all default locales for all categories"); } } + + static void testBug7079486() { + Locale zh_Hans_CN = Locale.forLanguageTag("zh-Hans-CN"); + + // make sure JRE has zh_Hans_CN localized string + if (zh_Hans_CN.getDisplayScript(Locale.US).equals(zh_Hans_CN.getDisplayScript(zh_Hans_CN))) { + return; + } + + Locale.setDefault(Locale.US); + String en_script = zh_Hans_CN.getDisplayScript(); + + Locale.setDefault(Locale.Category.DISPLAY, zh_Hans_CN); + String zh_script = zh_Hans_CN.getDisplayScript(); + + if (en_script.equals(zh_script)) { + throw new RuntimeException("Locale.getDisplayScript() (no args) does not honor default DISPLAY locale"); + } + } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/util/Locale/LocaleCategory.sh --- a/jdk/test/java/util/Locale/LocaleCategory.sh Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/util/Locale/LocaleCategory.sh Mon Aug 29 14:29:23 2011 -0700 @@ -1,7 +1,7 @@ #!/bin/sh # # @test -# @bug 4700857 6997928 +# @bug 4700857 6997928 7079486 # @summary tests for Locale.getDefault(Locale.Category) and # Locale.setDefault(Locale.Category, Locale) # @build LocaleCategory diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/java/util/zip/LargeZip.java --- a/jdk/test/java/util/zip/LargeZip.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/java/util/zip/LargeZip.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,173 +25,242 @@ import java.io.*; import java.nio.*; +import java.nio.file.*; +import java.nio.file.attribute.*; +import java.nio.file.spi.*; import java.util.*; import java.util.zip.*; -public class LargeZip { - // If true, don't delete large ZIP file created for test. - static final boolean debug = System.getProperty("debug") != null; +import static java.nio.file.StandardCopyOption.*; - //static final int DATA_LEN = 1024 * 1024; - static final int DATA_LEN = 80 * 1024; - static final int DATA_SIZE = 8; +public class LargeZip { + // If true, don't delete large ZIP file created for test. + static final boolean debug = System.getProperty("debug") != null; - static long fileSize = 6L * 1024L * 1024L * 1024L; // 6GB - - static boolean userFile = false; + //static final int DATA_LEN = 1024 * 1024; + static final int DATA_LEN = 80 * 1024; + static final int DATA_SIZE = 8; - static byte[] data; - static File largeFile; - static String lastEntryName; + static long fileSize = 6L * 1024L * 1024L * 1024L; // 6GB + + static boolean userFile = false; + static byte[] data; + static File largeFile; + static String lastEntryName; - /* args can be empty, in which case check a 3 GB file which is created for - * this test (and then deleted). Or it can be a number, in which case - * that designates the size of the file that's created for this test (and - * then deleted). Or it can be the name of a file to use for the test, in - * which case it is *not* deleted. Note that in this last case, the data - * comparison might fail. - */ - static void realMain (String[] args) throws Throwable { - if (args.length > 0) { - try { - fileSize = Long.parseLong(args[0]); - System.out.println("Testing with file of size " + fileSize); - } catch (NumberFormatException ex) { - largeFile = new File(args[0]); - if (!largeFile.exists()) { - throw new Exception("Specified file " + args[0] + " does not exist"); - } - userFile = true; - System.out.println("Testing with user-provided file " + largeFile); - } - } - File testDir = null; - if (largeFile == null) { - testDir = new File(System.getProperty("test.scratch", "."), - "LargeZip"); - if (testDir.exists()) { - if (!testDir.delete()) { - throw new Exception("Cannot delete already-existing test directory"); - } - } - check(!testDir.exists() && testDir.mkdirs()); - largeFile = new File(testDir, "largezip.zip"); - createLargeZip(); - } + /* args can be empty, in which case check a 3 GB file which is created for + * this test (and then deleted). Or it can be a number, in which case + * that designates the size of the file that's created for this test (and + * then deleted). Or it can be the name of a file to use for the test, in + * which case it is *not* deleted. Note that in this last case, the data + * comparison might fail. + */ + static void realMain (String[] args) throws Throwable { + if (args.length > 0) { + try { + fileSize = Long.parseLong(args[0]); + System.out.println("Testing with file of size " + fileSize); + } catch (NumberFormatException ex) { + largeFile = new File(args[0]); + if (!largeFile.exists()) { + throw new Exception("Specified file " + args[0] + " does not exist"); + } + userFile = true; + System.out.println("Testing with user-provided file " + largeFile); + } + } + File testDir = null; + if (largeFile == null) { + testDir = new File(System.getProperty("test.scratch", "."), + "LargeZip"); + if (testDir.exists()) { + if (!testDir.delete()) { + throw new Exception("Cannot delete already-existing test directory"); + } + } + check(!testDir.exists() && testDir.mkdirs()); + largeFile = new File(testDir, "largezip.zip"); + createLargeZip(); + } else { + if (args.length > 1) + updateLargeZip(args[1]); // add new entry with zfs + } + readLargeZip1(); + readLargeZip2(); - readLargeZip1(); - readLargeZip2(); + if (!userFile && !debug) { + check(largeFile.delete()); + check(testDir.delete()); + } + } + + static void createLargeZip() throws Throwable { + int iterations = DATA_LEN / DATA_SIZE; + ByteBuffer bb = ByteBuffer.allocate(DATA_SIZE); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + for (int i = 0; i < iterations; i++) { + bb.putDouble(0, Math.random()); + baos.write(bb.array(), 0, DATA_SIZE); + } + data = baos.toByteArray(); + + try (FileOutputStream fos = new FileOutputStream(largeFile); + BufferedOutputStream bos = new BufferedOutputStream(fos); + ZipOutputStream zos = new ZipOutputStream(bos)) + { + long length = 0; + while (length < fileSize) { + ZipEntry ze = new ZipEntry("entry-" + length); + lastEntryName = ze.getName(); + zos.putNextEntry(ze); + zos.write(data, 0, data.length); + zos.closeEntry(); + length = largeFile.length(); + } + System.out.println("Last entry written is " + lastEntryName); + } + } + + private static byte buf[] = new byte[4096]; + + static void checkEntry(ZipEntry e, InputStream is) throws Throwable { + long N = 0; + int n = 0; + while ((n = is.read(buf)) >= 0) { + N += n; + } + check(N == e.getSize()); + } - if (!userFile && !debug) { - check(largeFile.delete()); - check(testDir.delete()); - } - } + static void readLargeZip1() throws Throwable { + ZipFile zipFile = new ZipFile(largeFile); + ZipEntry entry = null; + String entryName = null; + int count = 0; + System.out.println("ZipFile:"); + Enumeration entries = zipFile.entries(); + while (entries.hasMoreElements()) { + entry = entries.nextElement(); + entryName = entry.getName(); + System.out.println(" checking " + entryName); + if (!entry.isDirectory()) { + try (InputStream zeis = zipFile.getInputStream(entry)) { + checkEntry(entry, zeis); + } + } + count++; + } + System.out.println("Number of entries read: " + count); + check(!entry.isDirectory()); + if (userFile || check(entryName.equals(lastEntryName))) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + InputStream is = zipFile.getInputStream(entry); + int len; + while ((len = is.read(buf)) >= 0) { + baos.write(buf, 0, len); + } + baos.close(); + is.close(); + if (!userFile) + check(Arrays.equals(data, baos.toByteArray())); + } + } - static void createLargeZip() throws Throwable { - int iterations = DATA_LEN / DATA_SIZE; - ByteBuffer bb = ByteBuffer.allocate(DATA_SIZE); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - for (int i = 0; i < iterations; i++) { - bb.putDouble(0, Math.random()); - baos.write(bb.array(), 0, DATA_SIZE); - } - data = baos.toByteArray(); + static void readLargeZip2() throws Throwable { + System.out.println("ZipInputStream:"); + try (FileInputStream fis = new FileInputStream(largeFile); + BufferedInputStream bis = new BufferedInputStream(fis); + ZipInputStream zis = new ZipInputStream(bis)) + { + ZipEntry entry = null; + String entryName = null; + int count = 0; + while ((entry = zis.getNextEntry()) != null) { + entryName = entry.getName(); - try (FileOutputStream fos = new FileOutputStream(largeFile); - BufferedOutputStream bos = new BufferedOutputStream(fos); - ZipOutputStream zos = new ZipOutputStream(bos)) - { - long length = 0; - while (length < fileSize) { - ZipEntry ze = new ZipEntry("entry-" + length); - lastEntryName = ze.getName(); - zos.putNextEntry(ze); - zos.write(data, 0, data.length); - zos.closeEntry(); - length = largeFile.length(); - } - System.out.println("Last entry written is " + lastEntryName); - } - } + System.out.println(" checking " + entryName + + ", method=" + entry.getMethod()); + if (entryName.equals(lastEntryName)) { + break; + } + if (!entry.isDirectory()) { + checkEntry(entry, zis); + } + count++; + } + System.out.println("Number of entries read: " + count); + System.out.println("Last entry read is " + entryName); + if (!userFile) { + check(!entry.isDirectory()); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte buf[] = new byte[4096]; + int len; + while ((len = zis.read(buf)) >= 0) { + baos.write(buf, 0, len); + } + baos.close(); + check(Arrays.equals(data, baos.toByteArray())); + check(zis.getNextEntry() == null); + } + } + } - static void readLargeZip1() throws Throwable { - ZipFile zipFile = new ZipFile(largeFile); - ZipEntry entry = null; - String entryName = null; - int count = 0; - Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - entry = entries.nextElement(); - entryName = entry.getName(); - count++; - } - System.out.println("Number of entries read: " + count); - System.out.println("Last entry read is " + entryName); - check(!entry.isDirectory()); - if (check(entryName.equals(lastEntryName))) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - InputStream is = zipFile.getInputStream(entry); - byte buf[] = new byte[4096]; - int len; - while ((len = is.read(buf)) >= 0) { - baos.write(buf, 0, len); - } - baos.close(); - is.close(); - check(Arrays.equals(data, baos.toByteArray())); - } - } + private static void updateFile(FileSystem fs, Path src) throws IOException { + Path dst = fs.getPath(src.toString()); + Path parent = dst.getParent(); + if (parent != null && Files.notExists(parent)) + Files.createDirectories(parent); + Files.copy(src, dst, REPLACE_EXISTING); + } + + private static FileSystemProvider getZipFSProvider() { + for (FileSystemProvider provider : FileSystemProvider.installedProviders()) { + if ("jar".equalsIgnoreCase(provider.getScheme())) + return provider; + } + return null; + } + + static void updateLargeZip(String pName) throws Throwable { + FileSystemProvider provider = getZipFSProvider(); + if (provider == null) { + System.err.println("ZIP filesystem provider is not installed"); + System.exit(1); + } + Map env = env = new HashMap<>(); + try (FileSystem fs = provider.newFileSystem(largeFile.toPath(), env)) { + Path path = FileSystems.getDefault().getPath(pName); + Files.walkFileTree( + path, + new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, + BasicFileAttributes attrs) + throws IOException + { + updateFile(fs, file); + return FileVisitResult.CONTINUE; + } + }); + } + } - static void readLargeZip2() throws Throwable { - try (FileInputStream fis = new FileInputStream(largeFile); - BufferedInputStream bis = new BufferedInputStream(fis); - ZipInputStream zis = new ZipInputStream(bis)) - { - ZipEntry entry = null; - String entryName = null; - int count = 0; - while ((entry = zis.getNextEntry()) != null) { - entryName = entry.getName(); - if (entryName.equals(lastEntryName)) { - break; - } - count++; - } - System.out.println("Number of entries read: " + count); - System.out.println("Last entry read is " + entryName); - check(!entry.isDirectory()); - - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - byte buf[] = new byte[4096]; - int len; - while ((len = zis.read(buf)) >= 0) { - baos.write(buf, 0, len); - } - baos.close(); - check(Arrays.equals(data, baos.toByteArray())); - check(zis.getNextEntry() == null); - } - } - - - //--------------------- Infrastructure --------------------------- - static volatile int passed = 0, failed = 0; - static void pass() {passed++;} - static void pass(String msg) {System.out.println(msg); passed++;} - static void fail() {failed++; Thread.dumpStack();} - static void fail(String msg) {System.out.println(msg); fail();} - static void unexpected(Throwable t) {failed++; t.printStackTrace();} - static void unexpected(Throwable t, String msg) { - System.out.println(msg); failed++; t.printStackTrace();} - static boolean check(boolean cond) {if (cond) pass(); else fail(); return cond;} - static void equal(Object x, Object y) { - if (x == null ? y == null : x.equals(y)) pass(); - else fail(x + " not equal to " + y);} - public static void main(String[] args) throws Throwable { - try {realMain(args);} catch (Throwable t) {unexpected(t);} - System.out.println("\nPassed = " + passed + " failed = " + failed); - if (failed > 0) throw new AssertionError("Some tests failed");} + //--------------------- Infrastructure --------------------------- + static volatile int passed = 0, failed = 0; + static void pass() {passed++;} + static void pass(String msg) {System.out.println(msg); passed++;} + static void fail() {failed++; Thread.dumpStack();} + static void fail(String msg) {System.out.println(msg); fail();} + static void unexpected(Throwable t) {failed++; t.printStackTrace();} + static void unexpected(Throwable t, String msg) { + System.out.println(msg); failed++; t.printStackTrace();} + static boolean check(boolean cond) {if (cond) pass(); else fail(); return cond;} + static void equal(Object x, Object y) { + if (x == null ? y == null : x.equals(y)) pass(); + else fail(x + " not equal to " + y);} + public static void main(String[] args) throws Throwable { + try {realMain(args);} catch (Throwable t) {unexpected(t);} + System.out.println("\nPassed = " + passed + " failed = " + failed); + if (failed > 0) throw new AssertionError("Some tests failed");} } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java --- a/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/javax/naming/ldap/LdapName/CompareToEqualsTests.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -23,12 +23,14 @@ /* * @test - * @bug 4635618 + * @bug 4635618 7059542 * @summary Support for manipulating LDAP Names + * JNDI name operations should be locale independent */ import javax.naming.ldap.*; import java.util.ArrayList; +import java.util.Locale; import java.util.List; import javax.naming.InvalidNameException; @@ -39,52 +41,61 @@ public static void main(String args[]) throws Exception { - - /** - * Test cases: - * 1) Same RDNs. - * 2) same RDN sequence with an AVA ordered differently. - * 3) RDN sequences of a differing AVA. - * 4) RDN sequence of different length. - * 5) RDN sequence of different Case. - * 6) Matching binary return values. - * 7) Binary values that don't match. - */ - String names1[] = new String [] { + Locale reservedLocale = Locale.getDefault(); + try { + /** + * Test cases: + * 1) Same RDNs. + * 2) same RDN sequence with an AVA ordered differently. + * 3) RDN sequences of a differing AVA. + * 4) RDN sequence of different length. + * 5) RDN sequence of different Case. + * 6) Matching binary return values. + * 7) Binary values that don't match. + */ + String names1[] = new String [] { "ou=Sales+cn=Bob", "ou=Sales+cn=Bob", "ou=Sales+cn=Bob", "ou=Sales+cn=Scott+c=US", "cn=config"}; - String names2[] = new String [] { + String names2[] = new String [] { "ou=Sales+cn=Bob", "cn=Bob+ou=Sales", "ou=Sales+cn=Scott", "ou=Sales+cn=Scott", "Cn=COnFIG"}; - int expectedResults[] = {0, 0, -1, -1, 0}; - + int expectedResults[] = {0, 0, -1, -1, 0}; - for (int i = 0; i < names1.length; i++) { - checkResults(new LdapName(names1[i]), + for (Locale locale : Locale.getAvailableLocales()) { + // reset the default locale + Locale.setDefault(locale); + + for (int i = 0; i < names1.length; i++) { + checkResults(new LdapName(names1[i]), new LdapName(names2[i]), expectedResults[i]); - } + } - byte[] value = "abcxyz".getBytes(); - Rdn rdn1 = new Rdn("binary", value); - ArrayList rdns1 = new ArrayList(); - rdns1.add(rdn1); - LdapName l1 = new LdapName(rdns1); + byte[] value = "abcxyz".getBytes(); + Rdn rdn1 = new Rdn("binary", value); + ArrayList rdns1 = new ArrayList(); + rdns1.add(rdn1); + LdapName l1 = new LdapName(rdns1); - Rdn rdn2 = new Rdn("binary", value); - ArrayList rdns2 = new ArrayList(); - rdns2.add(rdn2); - LdapName l2 = new LdapName(rdns2); - checkResults(l1, l2, 0); + Rdn rdn2 = new Rdn("binary", value); + ArrayList rdns2 = new ArrayList(); + rdns2.add(rdn2); + LdapName l2 = new LdapName(rdns2); + checkResults(l1, l2, 0); + + l2 = new LdapName("binary=#61626378797A"); + checkResults(l1, l2, 0); - l2 = new LdapName("binary=#61626378797A"); - checkResults(l1, l2, 0); + l2 = new LdapName("binary=#61626378797B"); + checkResults(l1, l2, -1); - l2 = new LdapName("binary=#61626378797B"); - checkResults(l1, l2, -1); - - System.out.println("Tests passed"); + System.out.println("Tests passed"); + } + } finally { + // restore the reserved locale + Locale.setDefault(reservedLocale); + } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java --- a/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/javax/security/auth/login/LoginContext/ResetConfigModule.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,6 @@ * @test * @bug 4633622 * @summary bug in LoginContext when Configuration is subclassed - * * @build ResetConfigModule ResetModule * @run main ResetConfigModule */ @@ -40,32 +39,42 @@ public static void main(String[] args) throws Exception { - Configuration.setConfiguration(new MyConfig()); + Configuration previousConf = Configuration.getConfiguration(); + ClassLoader previousCL = Thread.currentThread().getContextClassLoader(); - LoginContext lc = new LoginContext("test"); try { - lc.login(); - throw new SecurityException("test 1 failed"); - } catch (LoginException le) { - if (le.getCause() != null && - le.getCause() instanceof SecurityException) { - System.out.println("good so far"); - } else { - throw le; + Thread.currentThread().setContextClassLoader( + ResetConfigModule.class.getClassLoader()); + Configuration.setConfiguration(new MyConfig()); + + LoginContext lc = new LoginContext("test"); + try { + lc.login(); + throw new SecurityException("test 1 failed"); + } catch (LoginException le) { + if (le.getCause() != null && + le.getCause() instanceof SecurityException) { + System.out.println("good so far"); + } else { + throw le; + } } - } - LoginContext lc2 = new LoginContext("test2"); - try { - lc2.login(); - throw new SecurityException("test 2 failed"); - } catch (LoginException le) { - if (le.getCause() != null && - le.getCause() instanceof SecurityException) { - System.out.println("test succeeded"); - } else { - throw le; + LoginContext lc2 = new LoginContext("test2"); + try { + lc2.login(); + throw new SecurityException("test 2 failed"); + } catch (LoginException le) { + if (le.getCause() != null && + le.getCause() instanceof SecurityException) { + System.out.println("test succeeded"); + } else { + throw le; + } } + } finally { + Configuration.setConfiguration(previousConf); + Thread.currentThread().setContextClassLoader(previousCL); } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/security/auth/x500/X500Principal/Parse.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/security/auth/x500/X500Principal/Parse.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ + +/* + * @test + * @bug 7024771 + * @summary various X500Principal DN parsing tests + */ + +import javax.security.auth.x500.X500Principal; + +public class Parse { + + private static TestCase[] testCases = { + new TestCase("CN=prefix\\<>suffix", false) + }; + + public static void main(String args[]) throws Exception { + for (int i = 0; i < testCases.length; i++) { + testCases[i].run(); + } + System.out.println("Test completed ok."); + } +} + +class TestCase { + + private String name; + private boolean expectedResult; + + TestCase(String name, boolean expectedResult) { + this.name = name; + this.expectedResult = expectedResult; + } + + void run() throws Exception { + Exception f = null; + try { + System.out.println("Parsing: \"" + name + "\""); + new X500Principal(name); + if (expectedResult == false) { + f = new Exception("Successfully parsed invalid name"); + } + } catch (IllegalArgumentException e) { + if (expectedResult == true) { + throw e; + } + } + if (f != null) { + throw f; + } + } +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/sql/rowset/serial/SerialBlob/SetBinaryStream.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ +import javax.sql.rowset.serial.SerialBlob; +import javax.sql.rowset.serial.SerialException; + +/** + * @test + * @bug 7077451 + * @summary tests if the correct exception is thrown when calling method setBinaryStream() on SerialBlob + */ +public class SetBinaryStream { + + public static void main(String[] args) throws Exception { + SerialBlob blob = new SerialBlob(new byte[0]); + try { + blob.setBinaryStream(0); + } catch (SerialException e) { + System.out.println("Test PASSED"); + } + } + +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/sql/rowset/serial/SerialClob/SetAsciiStream.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ +import javax.sql.rowset.serial.SerialClob; +import javax.sql.rowset.serial.SerialException; + +/** + * @test + * @bug 7077451 + * @summary tests if the correct exception is thrown when calling method setAsciiStream() on SerialClob + */ +public class SetAsciiStream { + + public static void main(String[] args) throws Exception { + SerialClob clob = new SerialClob(new char[0]); + try { + clob.setAsciiStream(0); + } catch (SerialException e) { + System.out.println("Test PASSED"); + } + } + +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/javax/sql/rowset/serial/SerialClob/SetCharacterStream.java Mon Aug 29 14:29:23 2011 -0700 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2011, 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. + * + * 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. + */ +import javax.sql.rowset.serial.SerialClob; +import javax.sql.rowset.serial.SerialException; + +/** + * @test + * @bug 7077451 + * @summary tests if the correct exception is thrown when calling method setCharacterStream() on SerialClob + */ +public class SetCharacterStream { + + public static void main(String[] args) throws Exception { + SerialClob clob = new SerialClob(new char[0]); + try { + clob.setCharacterStream(0); + } catch (SerialException e) { + System.out.println("Test PASSED"); + } + } + +} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh --- a/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/net/www/protocol/file/DirPermissionDenied.sh Mon Aug 29 14:29:23 2011 -0700 @@ -37,5 +37,9 @@ $TESTJAVA/bin/java -classpath $TESTCLASSES DirPermissionDenied ${TESTDIR} result=$? + +# Add back read access for user, otherwise not removable on some systems +chmod u+r ${TESTDIR} + rm -rf ${TESTDIR} exit $result diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/nio/cs/TestCp834_SBCS.java --- a/jdk/test/sun/nio/cs/TestCp834_SBCS.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/nio/cs/TestCp834_SBCS.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,7 +26,6 @@ @summary Check all Cp933 SBCS characters are not supported in Cp834 */ -import sun.io.*; import java.io.*; import java.nio.*; import java.nio.charset.*; @@ -36,8 +35,6 @@ // The correctness of 1:1 mapping is Coverted by CoderTest.java // and TestConv.java, we only need to verify that SBCS characters // are not supported by this charset. - CharToByteConverter cb834 = CharToByteConverter.getConverter("Cp834"); - ByteToCharConverter bc834 = ByteToCharConverter.getConverter("Cp834"); CharsetEncoder enc834 = Charset.forName("Cp834") .newEncoder() .onUnmappableCharacter(CodingErrorAction.REPLACE) @@ -73,27 +70,6 @@ ByteBuffer bb = enc834.encode(CharBuffer.wrap(ca)); if (bb.get() != (byte)0xfe || bb.get() != (byte)0xfe) throw new Exception("SBCS is supported in IBM834 encoder"); - - boolean isMalformed = false; - int ret = 0; - bc834.reset(); - try { - ret = bc834.convert(ba, 0, 1, ca, 0, 1); - } catch (sun.io.MalformedInputException x) { isMalformed = true; } - if (!isMalformed && ret != 0 && ca[0] != '\ufffd') { - // three scenarios (1)malformed (2)held as an incomplete - // input or (3)return replacement all mean "no sbcs" - throw new Exception("SBCS is supported in Cp834 b2c"); - } - - if (cb834.canConvert(c)) - throw new Exception("SBCS can be converted in Cp834 c2b "); - - ca[0] = c; - if (cb834.convert(ca, 0, 1, ba2, 0, 2) != 2 || - ba2[0] != (byte)0xfe || ba2[1] != (byte)0xfe) { - throw new Exception("SBCS is supported in Cp834 c2b"); - } } } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/nio/cs/TestISCII91.java --- a/jdk/test/sun/nio/cs/TestISCII91.java Mon Aug 29 14:27:21 2011 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2008, 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. - * - * 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. - */ - -/* @test - @bug 6431650 - @summary Check charset ISCII91 and C2B/B2CISCII91 yield same encoding/decoding result - */ - - -import java.nio.*; -import java.nio.charset.*; -import sun.io.*; - -public class TestISCII91 { - public static void main(String[] args) throws Throwable{ - CharToByteConverter c2b = new CharToByteISCII91(); - ByteToCharConverter b2c = new ByteToCharISCII91(); - Charset cs = Charset.forName("ISCII91"); - String charsToEncode = getCharsForEncoding("ISCII91"); - - byte [] c2bBytes = c2b.convertAll(charsToEncode.toCharArray()); - byte [] csBytes = cs.encode(charsToEncode).array(); - for (int i = 0; i < c2bBytes.length; ++i) { - if (c2bBytes[i] != csBytes[i]) - throw new RuntimeException("ISCII91 encoding failed!"); - } - - char[] c2bChars = b2c.convertAll(c2bBytes); - char[] csChars = cs.decode(ByteBuffer.wrap(csBytes)).array(); - for (int i = 0; i < c2bChars.length; ++i) { - if (c2bChars[i] != csChars[i]) - throw new RuntimeException("ISCII91 decoding failed!"); - } - } - - - static String getCharsForEncoding(String encodingName) - throws CharacterCodingException{ - Charset set = Charset.forName(encodingName); - CharBuffer chars = CharBuffer.allocate(300); - CharsetEncoder encoder = set.newEncoder(); - for (int c = 0; chars.remaining() > 0 && c < Character.MAX_VALUE; ++c) { - if (Character.isDefined((char) c) && !Character.isISOControl((char) c) && encoder.canEncode((char) c)) { - chars.put((char) c); - } - } - chars.limit(chars.position()); - chars.rewind(); - return chars.toString(); - } -} diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ec/TestEC.java --- a/jdk/test/sun/security/ec/TestEC.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ec/TestEC.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,11 +28,13 @@ * @library ../pkcs11 * @library ../pkcs11/ec * @library ../pkcs11/sslecc + * @library ../../../java/security/testlibrary * @compile -XDignore.symbol.file TestEC.java * @run main TestEC */ import java.security.Provider; +import java.security.Security; /* * Leverage the collection of EC tests used by PKCS11 @@ -51,6 +53,15 @@ public class TestEC { public static void main(String[] args) throws Exception { + ProvidersSnapshot snapshot = ProvidersSnapshot.create(); + try { + main0(args); + } finally { + snapshot.restore(); + } + } + + public static void main0(String[] args) throws Exception { Provider p = new sun.security.ec.SunEC(); System.out.println("Running tests with " + p.getName() + " provider...\n"); @@ -67,6 +78,11 @@ new TestECGenSpec().main(p); new ReadPKCS12().main(p); new ReadCertificates().main(p); + + // ClientJSSEServerJSSE fails on Solaris 11 when both SunEC and + // SunPKCS11-Solaris providers are enabled. + // Workaround: + // Security.removeProvider("SunPKCS11-Solaris"); new ClientJSSEServerJSSE().main(p); long stop = System.currentTimeMillis(); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java --- a/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java Mon Aug 29 14:29:23 2011 -0700 @@ -36,7 +36,7 @@ public static void main(String[] argv) throws Exception { System.setProperty("sun.security.jgss.mechanism", GSSUtil.GSS_SPNEGO_MECH_OID.toString()); try { - GSSManager.getInstance().createName("service@host", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2")); + GSSManager.getInstance().createName("service@localhost", GSSName.NT_HOSTBASED_SERVICE, new Oid("1.3.6.1.5.5.2")); } catch (GSSException e) { // This is OK, for example, krb5.conf is missing or other problems } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/krb5/Krb5NameEquals.java --- a/jdk/test/sun/security/krb5/Krb5NameEquals.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/krb5/Krb5NameEquals.java Mon Aug 29 14:29:23 2011 -0700 @@ -31,8 +31,8 @@ public class Krb5NameEquals { - private static String NAME_STR1 = "service@host"; - private static String NAME_STR2 = "service@host2"; + private static String NAME_STR1 = "service@localhost"; + private static String NAME_STR2 = "service2@localhost"; private static final Oid MECH; static { @@ -57,7 +57,7 @@ GSSName name3 = mgr.createName(NAME_STR1, GSSName.NT_HOSTBASED_SERVICE, MECH); - if (!name1.equals(name3) || !name1.equals(name3) || + if (!name1.equals(name1) || !name1.equals(name3) || !name1.equals((Object) name1) || !name1.equals((Object) name3)) { System.out.println("Error: should be the same name"); diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh --- a/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh Mon Aug 29 14:29:23 2011 -0700 @@ -25,6 +25,8 @@ # @bug 6599979 # @summary Ensure that re-assigning the alias works # +# @library .. +# @build SecretKeysBasic # @run shell SecretKeysBasic.sh # # To run by hand: @@ -43,10 +45,9 @@ if [ "${TESTCLASSES}" = "" ] ; then TESTCLASSES=`pwd` fi - -# if running by hand on windows, change this to appropriate value if [ "${TESTJAVA}" = "" ] ; then - TESTJAVA="/net/shimmer/export/valeriep/jdk7/build/solaris-sparc" + JAVAC_CMD=`which javac` + TESTJAVA=`dirname $JAVAC_CMD`/.. fi echo TESTSRC=${TESTSRC} echo TESTCLASSES=${TESTCLASSES} @@ -63,19 +64,41 @@ SunOS ) FS="/" PS=":" - SCCS="${FS}usr${FS}ccs${FS}bin${FS}sccs" - CP="${FS}bin${FS}cp -f" - RM="${FS}bin${FS}rm -rf" - MKDIR="${FS}bin${FS}mkdir -p" - CHMOD="${FS}bin${FS}chmod" + OS_VERSION=`uname -r` + case "${OS_VERSION}" in + 5.1* ) + SOFTTOKEN_DIR=${TESTCLASSES} + export SOFTTOKEN_DIR + TOKENS="nss solaris" + ;; + * ) + # SunPKCS11-Solaris Test only runs on Solaris 5.10 and later + TOKENS="nss" + ;; + esac + ;; + Windows_* ) + FS="\\" + PS=";" + TOKENS="nss" + ;; + CYGWIN* ) + FS="/" + PS=";" + TOKENS="nss" ;; * ) - echo "Unsupported System ${OS} - Test only runs on Solaris" - exit 0; + FS="/" + PS=":" + TOKENS="nss" ;; esac -TOKENS="nss solaris" +CP="cp -f" +RM="rm -rf" +MKDIR="mkdir -p" +CHMOD="chmod" + STATUS=0 for token in ${TOKENS} do @@ -91,18 +114,6 @@ USED_FILE_LIST="${TESTCLASSES}${FS}cert8.db ${TESTCLASSES}${FS}key3.db" elif [ ${token} = "solaris" ] then - OS_VERSION=`uname -r` - case "${OS_VERSION}" in - 5.1* ) - SOFTTOKEN_DIR=${TESTCLASSES} - export SOFTTOKEN_DIR - ;; - * ) - echo "Unsupported Version ${OS_VERSION} - Test only runs on Solaris" - exit 0; - ;; - esac - # copy keystore into write-able location if [ -d ${TESTCLASSES}${FS}pkcs11_softtoken ] then @@ -127,12 +138,6 @@ USED_FILE_LIST="${TESTCLASSES}${FS}pkcs11_softtoken" fi -cd ${TESTCLASSES} -${TESTJAVA}${FS}bin${FS}javac \ - -classpath ${TESTCLASSES} \ - -d ${TESTCLASSES} \ - ${TESTSRC}${FS}SecretKeysBasic.java - # run test cd ${TESTSRC} ${TESTJAVA}${FS}bin${FS}java \ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/PKCS11Test.java --- a/jdk/test/sun/security/pkcs11/PKCS11Test.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java Mon Aug 29 14:29:23 2011 -0700 @@ -72,10 +72,33 @@ } public static void main(PKCS11Test test) throws Exception { - System.out.println("Beginning test run " + test.getClass().getName() + "..."); - testDefault(test); - testNSS(test); - testDeimos(test); + Provider[] oldProviders = Security.getProviders(); + try { + System.out.println("Beginning test run " + test.getClass().getName() + "..."); + testDefault(test); + testNSS(test); + testDeimos(test); + } finally { + Provider[] newProviders = Security.getProviders(); + // Do not restore providers if nothing changed. This is especailly + // useful for ./Provider/Login.sh, where a SecurityManager exists. + if (oldProviders.length == newProviders.length) { + boolean found = false; + for (int i = 0; i 0) && args[0].equals("sh")) { + relPath = pathToStoresSH; + } else { + relPath = pathToStores; + } + PATH = new File(System.getProperty("test.src", "."), relPath); + CipherTest.peerFactory = peerFactory; + System.out.print( + "Initializing test '" + peerFactory.getName() + "'..."); +// secureRandom = new SecureRandom(); +// secureRandom.nextInt(); +// trustStore = readKeyStore(trustStoreFile); + CipherTest.keyStore = keyStore; +// keyStore = readKeyStore(keyStoreFile); + KeyManagerFactory keyFactory = + KeyManagerFactory.getInstance( + KeyManagerFactory.getDefaultAlgorithm()); + keyFactory.init(keyStore, "test12".toCharArray()); + keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0]; - long time = System.currentTimeMillis(); - String relPath; - if ((args != null) && (args.length > 0) && args[0].equals("sh")) { - relPath = pathToStoresSH; - } else { - relPath = pathToStores; + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(keyStore); + trustManager = (X509TrustManager)tmf.getTrustManagers()[0]; + +// trustManager = new AlwaysTrustManager(); + SSLContext context = SSLContext.getInstance("TLS"); + context.init(new KeyManager[] {keyManager}, + new TrustManager[] {trustManager}, null); + SSLContext.setDefault(context); + + CipherTest cipherTest = new CipherTest(peerFactory); + Thread serverThread = new Thread(peerFactory.newServer(cipherTest), + "Server"); + serverThread.setDaemon(true); + serverThread.start(); + System.out.println("Done"); + cipherTest.run(); + time = System.currentTimeMillis() - time; + System.out.println("Done. (" + time + " ms)"); + } finally { + SSLContext.setDefault(reservedSSLContext); } - PATH = new File(System.getProperty("test.src", "."), relPath); - CipherTest.peerFactory = peerFactory; - System.out.print( - "Initializing test '" + peerFactory.getName() + "'..."); -// secureRandom = new SecureRandom(); -// secureRandom.nextInt(); -// trustStore = readKeyStore(trustStoreFile); - CipherTest.keyStore = keyStore; -// keyStore = readKeyStore(keyStoreFile); - KeyManagerFactory keyFactory = - KeyManagerFactory.getInstance( - KeyManagerFactory.getDefaultAlgorithm()); - keyFactory.init(keyStore, "test12".toCharArray()); - keyManager = (X509ExtendedKeyManager)keyFactory.getKeyManagers()[0]; - - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(keyStore); - trustManager = (X509TrustManager)tmf.getTrustManagers()[0]; - -// trustManager = new AlwaysTrustManager(); - SSLContext context = SSLContext.getInstance("TLS"); - context.init(new KeyManager[] {keyManager}, new TrustManager[] {trustManager}, null); - SSLContext.setDefault(context); - - CipherTest cipherTest = new CipherTest(peerFactory); - Thread serverThread = new Thread(peerFactory.newServer(cipherTest), - "Server"); - serverThread.setDaemon(true); - serverThread.start(); - System.out.println("Done"); - cipherTest.run(); - time = System.currentTimeMillis() - time; - System.out.println("Done. (" + time + " ms)"); } static abstract class PeerFactory { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java --- a/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,6 +26,7 @@ * @bug 6313675 6323647 * @summary Verify that all ciphersuites work in FIPS mode * @library .. + * @run main/othervm ClientJSSEServerJSSE * @ignore JSSE supported cipher suites are changed with CR 6916074, * need to update this test case in JDK 7 soon * @author Andreas Sterbenz diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java --- a/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/fips/TrustManagerTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -27,6 +27,7 @@ * @summary Verify that the SunJSSE trustmanager works correctly in FIPS mode * @author Andreas Sterbenz * @library .. + * @run main/othervm TrustManagerTest */ import java.io.*; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/rsa/TestCACerts.java --- a/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Mon Aug 29 14:29:23 2011 -0700 @@ -48,32 +48,35 @@ public void main(Provider p) throws Exception { long start = System.currentTimeMillis(); Security.addProvider(p); - String PROVIDER = p.getName(); - String javaHome = System.getProperty("java.home"); - String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts"; - InputStream in = new FileInputStream(caCerts); - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ks.load(in, null); - in.close(); - for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); - if (ks.isCertificateEntry(alias)) { - System.out.println("* Testing " + alias + "..."); - X509Certificate cert = (X509Certificate)ks.getCertificate(alias); - PublicKey key = cert.getPublicKey(); - String alg = key.getAlgorithm(); - if (alg.equals("RSA")) { - System.out.println("Signature algorithm: " + cert.getSigAlgName()); - cert.verify(key, PROVIDER); + try { + String PROVIDER = p.getName(); + String javaHome = System.getProperty("java.home"); + String caCerts = javaHome + SEP + "lib" + SEP + "security" + SEP + "cacerts"; + InputStream in = new FileInputStream(caCerts); + KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); + ks.load(in, null); + in.close(); + for (Enumeration e = ks.aliases(); e.hasMoreElements(); ) { + String alias = (String)e.nextElement(); + if (ks.isCertificateEntry(alias)) { + System.out.println("* Testing " + alias + "..."); + X509Certificate cert = (X509Certificate)ks.getCertificate(alias); + PublicKey key = cert.getPublicKey(); + String alg = key.getAlgorithm(); + if (alg.equals("RSA")) { + System.out.println("Signature algorithm: " + cert.getSigAlgName()); + cert.verify(key, PROVIDER); + } else { + System.out.println("Skipping cert with key: " + alg); + } } else { - System.out.println("Skipping cert with key: " + alg); + System.out.println("Skipping alias " + alias); } - } else { - System.out.println("Skipping alias " + alias); } + long stop = System.currentTimeMillis(); + System.out.println("All tests passed (" + (stop - start) + " ms)."); + } finally { + Security.removeProvider(p.getName()); } - long stop = System.currentTimeMillis(); - System.out.println("All tests passed (" + (stop - start) + " ms)."); } - } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java --- a/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Mon Aug 29 14:29:23 2011 -0700 @@ -27,6 +27,7 @@ * @summary Verify that all ciphersuites work (incl. ECC using NSS crypto) * @author Andreas Sterbenz * @library .. + * @library ../../../../java/security/testlibrary */ import java.security.*; @@ -45,7 +46,7 @@ System.out.println("Provider does not support EC, skipping"); return; } - Security.insertProviderAt(p, 1); + Providers.setAt(p, 1); CipherTest.main(new JSSEFactory(), cmdArgs); Security.removeProvider(p.getName()); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java --- a/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/pkcs12/PKCS12SameKeyId.java Mon Aug 29 14:29:23 2011 -0700 @@ -86,7 +86,9 @@ // Reads from JKS keystore and pre-calculate KeyStore ks = KeyStore.getInstance("jks"); - ks.load(new FileInputStream(JKSFILE), PASSWORD); + try (FileInputStream fis = new FileInputStream(JKSFILE)) { + ks.load(fis, PASSWORD); + } for (int i=0; i(); - cookies.put("Cookie", - "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\""); - cookies.put("Set-Cookie2", - "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " + - "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+ - "$Path=\"/acme\""); - CookieHandler.setDefault(new MyCookieHandler()); - new CookieHandlerTest(); + /* + * Start the tests. + */ + cookies = new HashMap(); + cookies.put("Cookie", + "$Version=\"1\"; Customer=\"WILE_E_COYOTE\"; $Path=\"/acme\""); + cookies.put("Set-Cookie2", + "$Version=\"1\"; Part_Number=\"Riding_Rocket_0023\"; " + + "$Path=\"/acme/ammo\"; Part_Number=\"Rocket_Launcher_0001\"; "+ + "$Path=\"/acme\""); + CookieHandler.setDefault(new MyCookieHandler()); + new CookieHandlerTest(); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); + CookieHandler.setDefault(reservedCookieHandler); + } } Thread clientThread = null; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Mon Aug 29 14:29:23 2011 -0700 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm DNSIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,34 +695,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -24,7 +24,12 @@ /** * @test * @bug 6771432 - * @summary createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented" + * @summary createSocket() - smpatch fails using 1.6.0_10 because of + * "Unconnected sockets not implemented" + * @run main/othervm HttpsCreateSockTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import javax.net.SocketFactory; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -26,6 +26,10 @@ * @bug 4423074 * @summary Need to rebase all the duplicated classes from Merlin. * This test will check out http POST + * @run main/othervm HttpsPost + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -140,34 +144,38 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - // Send HTTP POST request to server - URL url = new URL("https://localhost:"+serverPort); + // Send HTTP POST request to server + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); - http.setDoOutput(true); + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); + http.setDoOutput(true); - http.setRequestMethod("POST"); - PrintStream ps = new PrintStream(http.getOutputStream()); - try { - ps.println(postMsg); - ps.flush(); - if (http.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); + http.setRequestMethod("POST"); + PrintStream ps = new PrintStream(http.getOutputStream()); + try { + ps.println(postMsg); + ps.flush(); + if (http.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + } finally { + ps.close(); + http.disconnect(); + closeReady = true; } } finally { - ps.close(); - http.disconnect(); - closeReady = true; + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsProxyStackOverflow.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,6 +25,9 @@ * @test * @bug 6670868 * @summary StackOverFlow with bad authenticated Proxy tunnels + * @run main/othervm HttpsProxyStackOverflow + * + * No way to reserve default Authenticator, need to run in othervm mode. */ import java.io.IOException; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -26,6 +26,9 @@ * @bug 6614957 * @summary HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets * @run main/othervm HttpsSocketFacTest + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import javax.net.SocketFactory; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm IPAddressDNSIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,43 +695,48 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); - - SSLContext.setDefault(context); - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - HttpsURLConnection http = null; - - /* establish http connection to server */ - URL url = new URL("https://127.0.0.1:" + serverPort+"/"); - System.out.println("url is "+url.toString()); - + SSLContext reservedSSLContext = SSLContext.getDefault(); try { - http = (HttpsURLConnection)url.openConnection(); + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); + + SSLContext.setDefault(context); - int respCode = http.getResponseCode(); - System.out.println("respCode = " + respCode); + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + + HttpsURLConnection http = null; + + /* establish http connection to server */ + URL url = new URL("https://127.0.0.1:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - throw new Exception("Unexpectly found subject alternative name " + - "matching IP address"); - } catch (SSLHandshakeException sslhe) { - // no subject alternative names matching IP address 127.0.0.1 found - // that's the expected exception, ignore it. - } catch (IOException ioe) { - // HttpsClient may throw IOE during checking URL spoofing, - // that's the expected exception, ignore it. + try { + http = (HttpsURLConnection)url.openConnection(); + + int respCode = http.getResponseCode(); + System.out.println("respCode = " + respCode); + + throw new Exception("Unexpectly found " + + "subject alternative name matching IP address"); + } catch (SSLHandshakeException sslhe) { + // no subject alternative names matching IP address 127.0.0.1 + // found that's the expected exception, ignore it. + } catch (IOException ioe) { + // HttpsClient may throw IOE during checking URL spoofing, + // that's the expected exception, ignore it. + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -24,6 +24,10 @@ /* @test * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 * @bug 6766775 + * @run main/othervm IPAddressIPIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -692,34 +696,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://127.0.0.1:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://127.0.0.1:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -24,6 +24,10 @@ /* @test * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 * @bug 6766775 + * @run main/othervm IPIdentities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -692,34 +696,38 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); - - SSLContext.setDefault(context); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 6766775 * @summary X509 certificate hostname checking is broken in JDK1.6.0_10 - * @bug 6766775 + * @run main/othervm Identities + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Xuelei Fan */ @@ -691,34 +695,39 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - SSLContext context = getSSLContext(trusedCertStr, clientCertStr, - clientModulus, clientPrivateExponent, passphrase); + SSLContext reservedSSLContext = SSLContext.getDefault(); + try { + SSLContext context = getSSLContext(trusedCertStr, clientCertStr, + clientModulus, clientPrivateExponent, passphrase); - SSLContext.setDefault(context); + SSLContext.setDefault(context); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - HttpsURLConnection http = null; + HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/"); - System.out.println("url is "+url.toString()); + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/"); + System.out.println("url is "+url.toString()); - try { - http = (HttpsURLConnection)url.openConnection(); + try { + http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - System.out.println("respCode = "+respCode); + int respCode = http.getResponseCode(); + System.out.println("respCode = "+respCode); + } finally { + if (http != null) { + http.disconnect(); + } + closeReady = true; + } } finally { - if (http != null) { - http.disconnect(); - } - closeReady = true; + SSLContext.setDefault(reservedSSLContext); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -147,44 +147,50 @@ static String postMsg = "Testing HTTP post on a https server"; static void doClientSide(String hostname) throws Exception { - /* - * setup up a proxy - */ - setupProxy(); - - /* - * we want to avoid URLspoofCheck failures in cases where the cert - * DN name does not match the hostname in the URL. - */ - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - URL url = new URL("https://" + hostname+ ":" + serverPort); - - HttpsURLConnection https = (HttpsURLConnection)url.openConnection(); - https.setDoOutput(true); - https.setRequestMethod("POST"); - PrintStream ps = null; + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - ps = new PrintStream(https.getOutputStream()); - ps.println(postMsg); - ps.flush(); - if (https.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); - } - ps.close(); + /* + * setup up a proxy + */ + setupProxy(); + + /* + * we want to avoid URLspoofCheck failures in cases where the cert + * DN name does not match the hostname in the URL. + */ + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + URL url = new URL("https://" + hostname+ ":" + serverPort); - // clear the pipe - BufferedReader in = new BufferedReader( - new InputStreamReader( - https.getInputStream())); - String inputLine; - while ((inputLine = in.readLine()) != null) - System.out.println("Client received: " + inputLine); - in.close(); - } catch (SSLException e) { - if (ps != null) - ps.close(); - throw e; + HttpsURLConnection https = (HttpsURLConnection)url.openConnection(); + https.setDoOutput(true); + https.setRequestMethod("POST"); + PrintStream ps = null; + try { + ps = new PrintStream(https.getOutputStream()); + ps.println(postMsg); + ps.flush(); + if (https.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + ps.close(); + + // clear the pipe + BufferedReader in = new BufferedReader( + new InputStreamReader( + https.getInputStream())); + String inputLine; + while ((inputLine = in.readLine()) != null) + System.out.println("Client received: " + inputLine); + in.close(); + } catch (SSLException e) { + if (ps != null) + ps.close(); + throw e; + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -24,7 +24,13 @@ /* * @test * @bug 4811482 4700777 4905410 - * @summary sun.net.client.defaultConnectTimeout should work with HttpsURLConnection; HTTP client: Connect and read timeouts; Https needs to support new tiger features that went into http + * @summary sun.net.client.defaultConnectTimeout should work with + * HttpsURLConnection; HTTP client: Connect and read timeouts; + * Https needs to support new tiger features that went into http + * @run main/othervm ReadTimeout + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -143,44 +149,48 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + HttpsURLConnection http = null; + try { + URL url = new URL("https://localhost:"+serverPort); - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - HttpsURLConnection http = null; - try { - URL url = new URL("https://localhost:"+serverPort); - - // set read timeout through system property - System.setProperty("sun.net.client.defaultReadTimeout", "2000"); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); + // set read timeout through system property + System.setProperty("sun.net.client.defaultReadTimeout", "2000"); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); - InputStream is = http.getInputStream (); - } catch (SocketTimeoutException stex) { - done(); - http.disconnect(); - } + InputStream is = http.getInputStream (); + } catch (SocketTimeoutException stex) { + done(); + http.disconnect(); + } - try { - URL url = new URL("https://localhost:"+serverPort); + try { + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); - // set read timeout through API - http.setReadTimeout(2000); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); + // set read timeout through API + http.setReadTimeout(2000); - InputStream is = http.getInputStream (); - } catch (SocketTimeoutException stex) { - done(); - http.disconnect(); + InputStream is = http.getInputStream (); + } catch (SocketTimeoutException stex) { + done(); + http.disconnect(); + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - } static class NameVerifier implements HostnameVerifier { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -26,6 +26,10 @@ * @bug 4423074 * @summary Need to rebase all the duplicated classes from Merlin. * This test will check out http POST + * @run main/othervm Redirect + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; @@ -139,28 +143,33 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - // Send HTTP POST request to server - URL url = new URL("https://localhost:"+serverPort); + // Send HTTP POST request to server + URL url = new URL("https://localhost:"+serverPort); - HttpsURLConnection.setDefaultHostnameVerifier( - new NameVerifier()); - HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); - try { - System.out.println("response header: "+http.getHeaderField(0)); - if (http.getResponseCode() != 200) { - throw new RuntimeException("test Failed"); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + HttpsURLConnection http = (HttpsURLConnection)url.openConnection(); + try { + System.out.println("response header: "+http.getHeaderField(0)); + if (http.getResponseCode() != 200) { + throw new RuntimeException("test Failed"); + } + } finally { + http.disconnect(); + closeReady = true; } } finally { - http.disconnect(); - closeReady = true; + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -22,8 +22,12 @@ */ /* @test + * @bug 4799427 * @summary Https can not retry request - * @bug 4799427 + * @run main/othervm RetryHttps + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Yingxian Wang */ @@ -129,36 +133,41 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); try { - HttpsURLConnection http = null; - /* establish http connection to server */ - URL url = new URL("https://localhost:" + serverPort+"/file1"); - System.out.println("url is "+url.toString()); - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - http = (HttpsURLConnection)url.openConnection(); - int respCode = http.getResponseCode(); - int cl = http.getContentLength(); - InputStream is = http.getInputStream (); - int count = 0; - while (is.read() != -1 && count++ < cl); - System.out.println("respCode1 = "+respCode); - Thread.sleep(2000); - url = new URL("https://localhost:" + serverPort+"/file2"); - http = (HttpsURLConnection)url.openConnection(); - respCode = http.getResponseCode(); - System.out.println("respCode2 = "+respCode); - - } catch (IOException ioex) { - if (sslServerSocket != null) - sslServerSocket.close(); - throw ioex; + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + try { + HttpsURLConnection http = null; + /* establish http connection to server */ + URL url = new URL("https://localhost:" + serverPort+"/file1"); + System.out.println("url is "+url.toString()); + HttpsURLConnection.setDefaultHostnameVerifier( + new NameVerifier()); + http = (HttpsURLConnection)url.openConnection(); + int respCode = http.getResponseCode(); + int cl = http.getContentLength(); + InputStream is = http.getInputStream (); + int count = 0; + while (is.read() != -1 && count++ < cl); + System.out.println("respCode1 = "+respCode); + Thread.sleep(2000); + url = new URL("https://localhost:" + serverPort+"/file2"); + http = (HttpsURLConnection)url.openConnection(); + respCode = http.getResponseCode(); + System.out.println("respCode2 = "+respCode); + } catch (IOException ioex) { + if (sslServerSocket != null) + sslServerSocket.close(); + throw ioex; + } + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -25,6 +25,10 @@ * @test * @bug 4474255 * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection + * @run main/othervm ComHTTPSConnection + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -198,44 +202,50 @@ Thread.sleep(50); } - System.setProperty("java.protocol.handler.pkgs", - "com.sun.net.ssl.internal.www.protocol"); - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - - URL url = new URL("https://" + "localhost:" + serverPort + - "/etc/hosts"); - URLConnection urlc = url.openConnection(); - - if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) { - throw new Exception( - "URLConnection ! instanceof " + - "com.sun.net.ssl.HttpsURLConnection"); - } + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + System.setProperty("java.protocol.handler.pkgs", + "com.sun.net.ssl.internal.www.protocol"); + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - BufferedReader in = null; - try { - in = new BufferedReader(new InputStreamReader( - urlc.getInputStream())); - String inputLine; - System.out.print("Client reading... "); - while ((inputLine = in.readLine()) != null) - System.out.println(inputLine); + URL url = new URL("https://" + "localhost:" + serverPort + + "/etc/hosts"); + URLConnection urlc = url.openConnection(); - System.out.println("Cipher Suite: " + - ((HttpsURLConnection)urlc).getCipherSuite()); - X509Certificate[] certs = - ((HttpsURLConnection)urlc).getServerCertificateChain(); - for (int i = 0; i < certs.length; i++) { - System.out.println(certs[0]); + if (!(urlc instanceof com.sun.net.ssl.HttpsURLConnection)) { + throw new Exception( + "URLConnection ! instanceof " + + "com.sun.net.ssl.HttpsURLConnection"); } - in.close(); - } catch (SSLException e) { - if (in != null) + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader( + urlc.getInputStream())); + String inputLine; + System.out.print("Client reading... "); + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); + + System.out.println("Cipher Suite: " + + ((HttpsURLConnection)urlc).getCipherSuite()); + X509Certificate[] certs = + ((HttpsURLConnection)urlc).getServerCertificateChain(); + for (int i = 0; i < certs.length; i++) { + System.out.println(certs[0]); + } + in.close(); - throw e; + } catch (SSLException e) { + if (in != null) + in.close(); + throw e; + } + System.out.println("Client reports: SUCCESS"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - System.out.println("Client reports: SUCCESS"); } static class NameVerifier implements HostnameVerifier { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,6 +28,10 @@ * @bug 4484246 * @summary When an application enables anonymous SSL cipher suite, * Hostname verification is not required + * @run main/othervm ComHostnameVerifier + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java Mon Aug 29 14:29:23 2011 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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 @@ -25,6 +25,10 @@ * @test * @bug 4474255 * @summary Can no longer obtain a com.sun.net.ssl.HttpsURLConnection + * @run main/othervm JavaxHTTPSConnection + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ @@ -189,47 +193,53 @@ * to avoid infinite hangs. */ void doClientSide() throws Exception { - /* - * Wait for server to get started. - */ - while (!serverReady) { - Thread.sleep(50); - } - - HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); - URL url = new URL("https://" + "localhost:" + serverPort + - "/etc/hosts"); - URLConnection urlc = url.openConnection(); + HostnameVerifier reservedHV = + HttpsURLConnection.getDefaultHostnameVerifier(); + try { + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } - if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) { - throw new Exception( - "URLConnection ! instanceof javax.net.ssl.HttpsURLConnection"); - } + HttpsURLConnection.setDefaultHostnameVerifier(new NameVerifier()); + URL url = new URL("https://" + "localhost:" + serverPort + + "/etc/hosts"); + URLConnection urlc = url.openConnection(); - BufferedReader in = null; - try { - in = new BufferedReader(new InputStreamReader( - urlc.getInputStream())); - String inputLine; - System.out.print("Client reading... "); - while ((inputLine = in.readLine()) != null) - System.out.println(inputLine); - - System.out.println("Cipher Suite: " + - ((HttpsURLConnection)urlc).getCipherSuite()); - Certificate[] certs = - ((HttpsURLConnection)urlc).getServerCertificates(); - for (int i = 0; i < certs.length; i++) { - System.out.println(certs[0]); + if (!(urlc instanceof javax.net.ssl.HttpsURLConnection)) { + throw new Exception("URLConnection ! instanceof " + + "javax.net.ssl.HttpsURLConnection"); } - in.close(); - } catch (SSLException e) { - if (in != null) + BufferedReader in = null; + try { + in = new BufferedReader(new InputStreamReader( + urlc.getInputStream())); + String inputLine; + System.out.print("Client reading... "); + while ((inputLine = in.readLine()) != null) + System.out.println(inputLine); + + System.out.println("Cipher Suite: " + + ((HttpsURLConnection)urlc).getCipherSuite()); + Certificate[] certs = + ((HttpsURLConnection)urlc).getServerCertificates(); + for (int i = 0; i < certs.length; i++) { + System.out.println(certs[0]); + } + in.close(); - throw e; + } catch (SSLException e) { + if (in != null) + in.close(); + throw e; + } + System.out.println("Client reports: SUCCESS"); + } finally { + HttpsURLConnection.setDefaultHostnameVerifier(reservedHV); } - System.out.println("Client reports: SUCCESS"); } static class NameVerifier implements HostnameVerifier { diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java --- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java Mon Aug 29 14:29:23 2011 -0700 @@ -28,6 +28,10 @@ * @bug 4484246 * @summary When an application enables anonymous SSL cipher suite, * Hostname verification is not required + * @run main/othervm JavaxHostnameVerifier + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ import java.io.*; diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java --- a/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/templates/SSLEngineTemplate.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,7 +25,10 @@ * @test * @bug 1234567 * @summary SSLEngine has not yet caused Solaris kernel to panic + * @run main/othervm SSLEngineTemplate * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. */ /** diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java --- a/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/ssl/templates/SSLSocketTemplate.java Mon Aug 29 14:29:23 2011 -0700 @@ -25,6 +25,10 @@ * @test * @bug 1234567 * @summary Use this template to help speed your client/server tests. + * @run main/othervm SSLSocketTemplate + * + * SunJSSE does not support dynamic system properties, no way to re-use + * system properties in samevm/agentvm mode. * @author Brad Wetmore */ diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh --- a/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/tools/jarsigner/concise_jarsigner.sh Mon Aug 29 14:29:23 2011 -0700 @@ -44,7 +44,10 @@ ;; esac -KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit -keystore js.jks" +# Choose 512-bit RSA to make sure it runs fine and fast on all platforms. In fact, +# every keyalg/keysize combination is OK for this test. + +KT="$TESTJAVA${FS}bin${FS}keytool -storepass changeit -keypass changeit -keystore js.jks -keyalg rsa -keysize 512" JAR=$TESTJAVA${FS}bin${FS}jar JARSIGNER=$TESTJAVA${FS}bin${FS}jarsigner JAVAC=$TESTJAVA${FS}bin${FS}javac diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/tools/keytool/StartDateTest.java --- a/jdk/test/sun/security/tools/keytool/StartDateTest.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/tools/keytool/StartDateTest.java Mon Aug 29 14:29:23 2011 -0700 @@ -132,7 +132,9 @@ static Date getIssueDate() throws Exception { KeyStore ks = KeyStore.getInstance("jks"); - ks.load(new FileInputStream("jks"), "changeit".toCharArray()); + try (FileInputStream fis = new FileInputStream("jks")) { + ks.load(fis, "changeit".toCharArray()); + } X509Certificate cert = (X509Certificate)ks.getCertificate("me"); return cert.getNotBefore(); } diff -r 64f7ee2f31dd -r 2f6d68f22eae jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java --- a/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java Mon Aug 29 14:27:21 2011 -0700 +++ b/jdk/test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java Mon Aug 29 14:29:23 2011 -0700 @@ -24,9 +24,12 @@ /* * @test * @bug 4162868 + * @run main/othervm ExtensibleAlgorithmId * @summary Algorithm Name-to-OID mapping needs to be made extensible. */ +// Run in othervm, coz AlgorithmId.oidTable is only initialized once + import java.security.*; import sun.security.x509.AlgorithmId;