OpenJDK / amber / amber
changeset 10378:9bb3d339f326
Merge
author | duke |
---|---|
date | Wed, 05 Jul 2017 17:49:49 +0200 |
parents | 6332e6ee2b55 e30f4b861ad9 |
children | 1226dbc37154 |
files | jdk/make/com/oracle/net/Makefile jdk/src/share/classes/sun/io/ByteToCharASCII.java jdk/src/share/classes/sun/io/ByteToCharBig5.java jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java jdk/src/share/classes/sun/io/ByteToCharConverter.java jdk/src/share/classes/sun/io/ByteToCharCp037.java jdk/src/share/classes/sun/io/ByteToCharCp1006.java jdk/src/share/classes/sun/io/ByteToCharCp1025.java jdk/src/share/classes/sun/io/ByteToCharCp1026.java jdk/src/share/classes/sun/io/ByteToCharCp1046.java jdk/src/share/classes/sun/io/ByteToCharCp1047.java jdk/src/share/classes/sun/io/ByteToCharCp1097.java jdk/src/share/classes/sun/io/ByteToCharCp1098.java jdk/src/share/classes/sun/io/ByteToCharCp1112.java jdk/src/share/classes/sun/io/ByteToCharCp1122.java jdk/src/share/classes/sun/io/ByteToCharCp1123.java jdk/src/share/classes/sun/io/ByteToCharCp1124.java jdk/src/share/classes/sun/io/ByteToCharCp1140.java jdk/src/share/classes/sun/io/ByteToCharCp1141.java jdk/src/share/classes/sun/io/ByteToCharCp1142.java jdk/src/share/classes/sun/io/ByteToCharCp1143.java jdk/src/share/classes/sun/io/ByteToCharCp1144.java jdk/src/share/classes/sun/io/ByteToCharCp1145.java jdk/src/share/classes/sun/io/ByteToCharCp1146.java jdk/src/share/classes/sun/io/ByteToCharCp1147.java jdk/src/share/classes/sun/io/ByteToCharCp1148.java jdk/src/share/classes/sun/io/ByteToCharCp1149.java jdk/src/share/classes/sun/io/ByteToCharCp1250.java jdk/src/share/classes/sun/io/ByteToCharCp1251.java jdk/src/share/classes/sun/io/ByteToCharCp1252.java jdk/src/share/classes/sun/io/ByteToCharCp1253.java jdk/src/share/classes/sun/io/ByteToCharCp1254.java jdk/src/share/classes/sun/io/ByteToCharCp1255.java jdk/src/share/classes/sun/io/ByteToCharCp1256.java jdk/src/share/classes/sun/io/ByteToCharCp1257.java jdk/src/share/classes/sun/io/ByteToCharCp1258.java jdk/src/share/classes/sun/io/ByteToCharCp1381.java jdk/src/share/classes/sun/io/ByteToCharCp1383.java jdk/src/share/classes/sun/io/ByteToCharCp273.java jdk/src/share/classes/sun/io/ByteToCharCp277.java jdk/src/share/classes/sun/io/ByteToCharCp278.java jdk/src/share/classes/sun/io/ByteToCharCp280.java jdk/src/share/classes/sun/io/ByteToCharCp284.java jdk/src/share/classes/sun/io/ByteToCharCp285.java jdk/src/share/classes/sun/io/ByteToCharCp297.java jdk/src/share/classes/sun/io/ByteToCharCp33722.java jdk/src/share/classes/sun/io/ByteToCharCp420.java jdk/src/share/classes/sun/io/ByteToCharCp424.java jdk/src/share/classes/sun/io/ByteToCharCp437.java jdk/src/share/classes/sun/io/ByteToCharCp500.java jdk/src/share/classes/sun/io/ByteToCharCp737.java jdk/src/share/classes/sun/io/ByteToCharCp775.java jdk/src/share/classes/sun/io/ByteToCharCp833.java jdk/src/share/classes/sun/io/ByteToCharCp834.java jdk/src/share/classes/sun/io/ByteToCharCp838.java jdk/src/share/classes/sun/io/ByteToCharCp850.java jdk/src/share/classes/sun/io/ByteToCharCp852.java jdk/src/share/classes/sun/io/ByteToCharCp855.java jdk/src/share/classes/sun/io/ByteToCharCp856.java jdk/src/share/classes/sun/io/ByteToCharCp857.java jdk/src/share/classes/sun/io/ByteToCharCp858.java jdk/src/share/classes/sun/io/ByteToCharCp860.java jdk/src/share/classes/sun/io/ByteToCharCp861.java jdk/src/share/classes/sun/io/ByteToCharCp862.java jdk/src/share/classes/sun/io/ByteToCharCp863.java jdk/src/share/classes/sun/io/ByteToCharCp864.java jdk/src/share/classes/sun/io/ByteToCharCp865.java jdk/src/share/classes/sun/io/ByteToCharCp866.java jdk/src/share/classes/sun/io/ByteToCharCp868.java jdk/src/share/classes/sun/io/ByteToCharCp869.java jdk/src/share/classes/sun/io/ByteToCharCp870.java jdk/src/share/classes/sun/io/ByteToCharCp871.java jdk/src/share/classes/sun/io/ByteToCharCp874.java jdk/src/share/classes/sun/io/ByteToCharCp875.java jdk/src/share/classes/sun/io/ByteToCharCp918.java jdk/src/share/classes/sun/io/ByteToCharCp921.java jdk/src/share/classes/sun/io/ByteToCharCp922.java jdk/src/share/classes/sun/io/ByteToCharCp930.java jdk/src/share/classes/sun/io/ByteToCharCp933.java jdk/src/share/classes/sun/io/ByteToCharCp935.java jdk/src/share/classes/sun/io/ByteToCharCp937.java jdk/src/share/classes/sun/io/ByteToCharCp939.java jdk/src/share/classes/sun/io/ByteToCharCp942.java jdk/src/share/classes/sun/io/ByteToCharCp942C.java jdk/src/share/classes/sun/io/ByteToCharCp943.java jdk/src/share/classes/sun/io/ByteToCharCp943C.java jdk/src/share/classes/sun/io/ByteToCharCp948.java jdk/src/share/classes/sun/io/ByteToCharCp949.java jdk/src/share/classes/sun/io/ByteToCharCp949C.java jdk/src/share/classes/sun/io/ByteToCharCp950.java jdk/src/share/classes/sun/io/ByteToCharCp964.java jdk/src/share/classes/sun/io/ByteToCharCp970.java jdk/src/share/classes/sun/io/ByteToCharDBCS_ASCII.java jdk/src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java jdk/src/share/classes/sun/io/ByteToCharDoubleByte.java jdk/src/share/classes/sun/io/ByteToCharEUC.java jdk/src/share/classes/sun/io/ByteToCharEUC2.java jdk/src/share/classes/sun/io/ByteToCharEUC_CN.java jdk/src/share/classes/sun/io/ByteToCharEUC_JP.java jdk/src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java jdk/src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java jdk/src/share/classes/sun/io/ByteToCharEUC_KR.java jdk/src/share/classes/sun/io/ByteToCharEUC_TW.java jdk/src/share/classes/sun/io/ByteToCharGB18030.java jdk/src/share/classes/sun/io/ByteToCharGB18030DB.java jdk/src/share/classes/sun/io/ByteToCharGBK.java jdk/src/share/classes/sun/io/ByteToCharISCII91.java jdk/src/share/classes/sun/io/ByteToCharISO2022.java jdk/src/share/classes/sun/io/ByteToCharISO2022CN.java jdk/src/share/classes/sun/io/ByteToCharISO2022JP.java jdk/src/share/classes/sun/io/ByteToCharISO2022KR.java jdk/src/share/classes/sun/io/ByteToCharISO8859_1.java jdk/src/share/classes/sun/io/ByteToCharISO8859_13.java jdk/src/share/classes/sun/io/ByteToCharISO8859_15.java jdk/src/share/classes/sun/io/ByteToCharISO8859_2.java jdk/src/share/classes/sun/io/ByteToCharISO8859_3.java jdk/src/share/classes/sun/io/ByteToCharISO8859_4.java jdk/src/share/classes/sun/io/ByteToCharISO8859_5.java jdk/src/share/classes/sun/io/ByteToCharISO8859_6.java jdk/src/share/classes/sun/io/ByteToCharISO8859_7.java jdk/src/share/classes/sun/io/ByteToCharISO8859_8.java jdk/src/share/classes/sun/io/ByteToCharISO8859_9.java jdk/src/share/classes/sun/io/ByteToCharJIS0201.java jdk/src/share/classes/sun/io/ByteToCharJIS0208.java jdk/src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java jdk/src/share/classes/sun/io/ByteToCharJIS0212.java jdk/src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java jdk/src/share/classes/sun/io/ByteToCharJISAutoDetect.java jdk/src/share/classes/sun/io/ByteToCharJohab.java jdk/src/share/classes/sun/io/ByteToCharKOI8_R.java jdk/src/share/classes/sun/io/ByteToCharMS874.java jdk/src/share/classes/sun/io/ByteToCharMS932.java jdk/src/share/classes/sun/io/ByteToCharMS936.java jdk/src/share/classes/sun/io/ByteToCharMS949.java jdk/src/share/classes/sun/io/ByteToCharMS950.java jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java jdk/src/share/classes/sun/io/ByteToCharMacArabic.java jdk/src/share/classes/sun/io/ByteToCharMacCentralEurope.java jdk/src/share/classes/sun/io/ByteToCharMacCroatian.java jdk/src/share/classes/sun/io/ByteToCharMacCyrillic.java jdk/src/share/classes/sun/io/ByteToCharMacDingbat.java jdk/src/share/classes/sun/io/ByteToCharMacGreek.java jdk/src/share/classes/sun/io/ByteToCharMacHebrew.java jdk/src/share/classes/sun/io/ByteToCharMacIceland.java jdk/src/share/classes/sun/io/ByteToCharMacRoman.java jdk/src/share/classes/sun/io/ByteToCharMacRomania.java jdk/src/share/classes/sun/io/ByteToCharMacSymbol.java jdk/src/share/classes/sun/io/ByteToCharMacThai.java jdk/src/share/classes/sun/io/ByteToCharMacTurkish.java jdk/src/share/classes/sun/io/ByteToCharMacUkraine.java jdk/src/share/classes/sun/io/ByteToCharPCK.java jdk/src/share/classes/sun/io/ByteToCharSJIS.java jdk/src/share/classes/sun/io/ByteToCharSingleByte.java jdk/src/share/classes/sun/io/ByteToCharTIS620.java jdk/src/share/classes/sun/io/ByteToCharUTF16.java jdk/src/share/classes/sun/io/ByteToCharUTF8.java jdk/src/share/classes/sun/io/ByteToCharUnicode.java jdk/src/share/classes/sun/io/ByteToCharUnicodeBig.java jdk/src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java jdk/src/share/classes/sun/io/ByteToCharUnicodeLittle.java jdk/src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java jdk/src/share/classes/sun/io/CharToByteASCII.java jdk/src/share/classes/sun/io/CharToByteBig5.java jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java jdk/src/share/classes/sun/io/CharToByteConverter.java jdk/src/share/classes/sun/io/CharToByteCp037.java jdk/src/share/classes/sun/io/CharToByteCp1006.java jdk/src/share/classes/sun/io/CharToByteCp1025.java jdk/src/share/classes/sun/io/CharToByteCp1026.java jdk/src/share/classes/sun/io/CharToByteCp1046.java jdk/src/share/classes/sun/io/CharToByteCp1047.java jdk/src/share/classes/sun/io/CharToByteCp1097.java jdk/src/share/classes/sun/io/CharToByteCp1098.java jdk/src/share/classes/sun/io/CharToByteCp1112.java jdk/src/share/classes/sun/io/CharToByteCp1122.java jdk/src/share/classes/sun/io/CharToByteCp1123.java jdk/src/share/classes/sun/io/CharToByteCp1124.java jdk/src/share/classes/sun/io/CharToByteCp1140.java jdk/src/share/classes/sun/io/CharToByteCp1141.java jdk/src/share/classes/sun/io/CharToByteCp1142.java jdk/src/share/classes/sun/io/CharToByteCp1143.java jdk/src/share/classes/sun/io/CharToByteCp1144.java jdk/src/share/classes/sun/io/CharToByteCp1145.java jdk/src/share/classes/sun/io/CharToByteCp1146.java jdk/src/share/classes/sun/io/CharToByteCp1147.java jdk/src/share/classes/sun/io/CharToByteCp1148.java jdk/src/share/classes/sun/io/CharToByteCp1149.java jdk/src/share/classes/sun/io/CharToByteCp1250.java jdk/src/share/classes/sun/io/CharToByteCp1251.java jdk/src/share/classes/sun/io/CharToByteCp1252.java jdk/src/share/classes/sun/io/CharToByteCp1253.java jdk/src/share/classes/sun/io/CharToByteCp1254.java jdk/src/share/classes/sun/io/CharToByteCp1255.java jdk/src/share/classes/sun/io/CharToByteCp1256.java jdk/src/share/classes/sun/io/CharToByteCp1257.java jdk/src/share/classes/sun/io/CharToByteCp1258.java jdk/src/share/classes/sun/io/CharToByteCp1381.java jdk/src/share/classes/sun/io/CharToByteCp1383.java jdk/src/share/classes/sun/io/CharToByteCp273.java jdk/src/share/classes/sun/io/CharToByteCp277.java jdk/src/share/classes/sun/io/CharToByteCp278.java jdk/src/share/classes/sun/io/CharToByteCp280.java jdk/src/share/classes/sun/io/CharToByteCp284.java jdk/src/share/classes/sun/io/CharToByteCp285.java jdk/src/share/classes/sun/io/CharToByteCp297.java jdk/src/share/classes/sun/io/CharToByteCp33722.java jdk/src/share/classes/sun/io/CharToByteCp420.java jdk/src/share/classes/sun/io/CharToByteCp424.java jdk/src/share/classes/sun/io/CharToByteCp437.java jdk/src/share/classes/sun/io/CharToByteCp500.java jdk/src/share/classes/sun/io/CharToByteCp737.java jdk/src/share/classes/sun/io/CharToByteCp775.java jdk/src/share/classes/sun/io/CharToByteCp833.java jdk/src/share/classes/sun/io/CharToByteCp834.java jdk/src/share/classes/sun/io/CharToByteCp838.java jdk/src/share/classes/sun/io/CharToByteCp850.java jdk/src/share/classes/sun/io/CharToByteCp852.java jdk/src/share/classes/sun/io/CharToByteCp855.java jdk/src/share/classes/sun/io/CharToByteCp856.java jdk/src/share/classes/sun/io/CharToByteCp857.java jdk/src/share/classes/sun/io/CharToByteCp858.java jdk/src/share/classes/sun/io/CharToByteCp860.java jdk/src/share/classes/sun/io/CharToByteCp861.java jdk/src/share/classes/sun/io/CharToByteCp862.java jdk/src/share/classes/sun/io/CharToByteCp863.java jdk/src/share/classes/sun/io/CharToByteCp864.java jdk/src/share/classes/sun/io/CharToByteCp865.java jdk/src/share/classes/sun/io/CharToByteCp866.java jdk/src/share/classes/sun/io/CharToByteCp868.java jdk/src/share/classes/sun/io/CharToByteCp869.java jdk/src/share/classes/sun/io/CharToByteCp870.java jdk/src/share/classes/sun/io/CharToByteCp871.java jdk/src/share/classes/sun/io/CharToByteCp874.java jdk/src/share/classes/sun/io/CharToByteCp875.java jdk/src/share/classes/sun/io/CharToByteCp918.java jdk/src/share/classes/sun/io/CharToByteCp921.java jdk/src/share/classes/sun/io/CharToByteCp922.java jdk/src/share/classes/sun/io/CharToByteCp930.java jdk/src/share/classes/sun/io/CharToByteCp933.java jdk/src/share/classes/sun/io/CharToByteCp935.java jdk/src/share/classes/sun/io/CharToByteCp937.java jdk/src/share/classes/sun/io/CharToByteCp939.java jdk/src/share/classes/sun/io/CharToByteCp942.java jdk/src/share/classes/sun/io/CharToByteCp942C.java jdk/src/share/classes/sun/io/CharToByteCp943.java jdk/src/share/classes/sun/io/CharToByteCp943C.java jdk/src/share/classes/sun/io/CharToByteCp948.java jdk/src/share/classes/sun/io/CharToByteCp949.java jdk/src/share/classes/sun/io/CharToByteCp949C.java jdk/src/share/classes/sun/io/CharToByteCp950.java jdk/src/share/classes/sun/io/CharToByteCp964.java jdk/src/share/classes/sun/io/CharToByteCp970.java jdk/src/share/classes/sun/io/CharToByteDBCS_ASCII.java jdk/src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java jdk/src/share/classes/sun/io/CharToByteDoubleByte.java jdk/src/share/classes/sun/io/CharToByteEUC.java jdk/src/share/classes/sun/io/CharToByteEUC_CN.java jdk/src/share/classes/sun/io/CharToByteEUC_JP.java jdk/src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java jdk/src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java jdk/src/share/classes/sun/io/CharToByteEUC_KR.java jdk/src/share/classes/sun/io/CharToByteEUC_TW.java jdk/src/share/classes/sun/io/CharToByteGB18030.java jdk/src/share/classes/sun/io/CharToByteGBK.java jdk/src/share/classes/sun/io/CharToByteISCII91.java jdk/src/share/classes/sun/io/CharToByteISO2022.java jdk/src/share/classes/sun/io/CharToByteISO2022CN_CNS.java jdk/src/share/classes/sun/io/CharToByteISO2022CN_GB.java jdk/src/share/classes/sun/io/CharToByteISO2022JP.java jdk/src/share/classes/sun/io/CharToByteISO2022KR.java jdk/src/share/classes/sun/io/CharToByteISO8859_1.java jdk/src/share/classes/sun/io/CharToByteISO8859_13.java jdk/src/share/classes/sun/io/CharToByteISO8859_15.java jdk/src/share/classes/sun/io/CharToByteISO8859_2.java jdk/src/share/classes/sun/io/CharToByteISO8859_3.java jdk/src/share/classes/sun/io/CharToByteISO8859_4.java jdk/src/share/classes/sun/io/CharToByteISO8859_5.java jdk/src/share/classes/sun/io/CharToByteISO8859_6.java jdk/src/share/classes/sun/io/CharToByteISO8859_7.java jdk/src/share/classes/sun/io/CharToByteISO8859_8.java jdk/src/share/classes/sun/io/CharToByteISO8859_9.java jdk/src/share/classes/sun/io/CharToByteJIS0201.java jdk/src/share/classes/sun/io/CharToByteJIS0208.java jdk/src/share/classes/sun/io/CharToByteJIS0208_Solaris.java jdk/src/share/classes/sun/io/CharToByteJIS0212.java jdk/src/share/classes/sun/io/CharToByteJIS0212_Solaris.java jdk/src/share/classes/sun/io/CharToByteJohab.java jdk/src/share/classes/sun/io/CharToByteKOI8_R.java jdk/src/share/classes/sun/io/CharToByteMS874.java jdk/src/share/classes/sun/io/CharToByteMS932.java jdk/src/share/classes/sun/io/CharToByteMS936.java jdk/src/share/classes/sun/io/CharToByteMS949.java jdk/src/share/classes/sun/io/CharToByteMS950.java jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java jdk/src/share/classes/sun/io/CharToByteMacArabic.java jdk/src/share/classes/sun/io/CharToByteMacCentralEurope.java jdk/src/share/classes/sun/io/CharToByteMacCroatian.java jdk/src/share/classes/sun/io/CharToByteMacCyrillic.java jdk/src/share/classes/sun/io/CharToByteMacDingbat.java jdk/src/share/classes/sun/io/CharToByteMacGreek.java jdk/src/share/classes/sun/io/CharToByteMacHebrew.java jdk/src/share/classes/sun/io/CharToByteMacIceland.java jdk/src/share/classes/sun/io/CharToByteMacRoman.java jdk/src/share/classes/sun/io/CharToByteMacRomania.java jdk/src/share/classes/sun/io/CharToByteMacSymbol.java jdk/src/share/classes/sun/io/CharToByteMacThai.java jdk/src/share/classes/sun/io/CharToByteMacTurkish.java jdk/src/share/classes/sun/io/CharToByteMacUkraine.java jdk/src/share/classes/sun/io/CharToBytePCK.java jdk/src/share/classes/sun/io/CharToByteSJIS.java jdk/src/share/classes/sun/io/CharToByteSingleByte.java jdk/src/share/classes/sun/io/CharToByteTIS620.java jdk/src/share/classes/sun/io/CharToByteUTF16.java jdk/src/share/classes/sun/io/CharToByteUTF8.java jdk/src/share/classes/sun/io/CharToByteUnicode.java jdk/src/share/classes/sun/io/CharToByteUnicodeBig.java jdk/src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java jdk/src/share/classes/sun/io/CharToByteUnicodeLittle.java jdk/src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java jdk/src/share/classes/sun/io/CharacterEncoding.java jdk/src/share/classes/sun/io/ConversionBufferFullException.java jdk/src/share/classes/sun/io/Converters.java jdk/src/share/classes/sun/io/MalformedInputException.java jdk/src/share/classes/sun/io/UnknownCharacterException.java jdk/test/sun/nio/cs/TestISCII91.java |
diffstat | 954 files changed, 8367 insertions(+), 30361 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags-top-repo Thu Sep 01 13:54:31 2011 -0700 +++ b/.hgtags-top-repo Wed Jul 05 17:49:49 2017 +0200 @@ -124,3 +124,4 @@ d91364304d7c4ecd34caffdba2b840aeb0d10b51 jdk7-b147 f42e3d9394b40a423d345b8da22687b5462e5f25 jdk8-b01 69f592185747226a9c765a9fe139c1d34d616f9c jdk8-b02 +587bb549dff83131b65f40aa51864f69562f34a7 jdk8-b03
--- a/corba/.hgtags Thu Sep 01 13:54:31 2011 -0700 +++ b/corba/.hgtags Wed Jul 05 17:49:49 2017 +0200 @@ -124,3 +124,4 @@ 73323cb3396260d93e0ab731fd2d431096ceed0f jdk7-b147 949fb60ca830364571e7c4c9964e6b351ca929ec jdk8-b01 ed8d94519a87b4adac270c3eec9134ff1f62bff5 jdk8-b02 +cd0da00694fbce642db9be936d3e4909a71d911d jdk8-b03
--- a/hotspot/.hgtags Thu Sep 01 13:54:31 2011 -0700 +++ b/hotspot/.hgtags Wed Jul 05 17:49:49 2017 +0200 @@ -176,3 +176,4 @@ c149193c768b8b7233da4c3a3fdc0756b975848e jdk7-b143 0cc8a70952c368e06de2adab1f2649a408f5e577 jdk8-b01 31e253c1da429124bb87570ab095d9bc89850d0a jdk8-b02 +3a2fb61165dfc72e398179a2796d740c8da5b8c0 jdk8-b03
--- a/jdk/.hgtags Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/.hgtags Wed Jul 05 17:49:49 2017 +0200 @@ -124,3 +124,4 @@ f097ca2434b1412b12ab4a5c2397ce271bf681e7 jdk7-b147 2cdbbc4a63592be7f1556fffe37b1253a77bd481 jdk8-b01 13e70aa1398eb959c54bc68b783ca0eef1286ad2 jdk8-b02 +7989ee9fe673a87f4db3917fa6a005732a6a9b85 jdk8-b03
--- a/jdk/make/com/oracle/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/com/oracle/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 +
--- a/jdk/make/com/oracle/net/Makefile Thu Sep 01 13:54:31 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 -
--- a/jdk/make/com/sun/crypto/provider/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/com/sun/crypto/provider/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/com/sun/jndi/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/com/sun/jndi/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/com/sun/security/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/com/sun/security/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/common/Release.gmk Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/common/Release.gmk Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/java/java/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/java/java/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/java/security/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/java/security/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/java/sun_nio/FILES_java.gmk Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/java/sun_nio/FILES_java.gmk Wed Jul 05 17:49:49 2017 +0200 @@ -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 - - -
--- a/jdk/make/java/sun_nio/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/java/sun_nio/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/javax/crypto/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/javax/crypto/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -128,6 +128,8 @@ endif endif +JAVAC_MAX_WARNINGS = true +JAVAC_WARNINGS_FATAL = true include $(BUILDDIR)/common/Defs.gmk #
--- a/jdk/make/javax/others/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/javax/others/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/sun/nio/cs/FILES_java.gmk Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/sun/nio/cs/FILES_java.gmk Wed Jul 05 17:49:49 2017 +0200 @@ -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 \
--- a/jdk/make/sun/security/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/sun/security/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/make/sun/security/ec/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/sun/security/ec/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/sun/security/other/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/sun/security/other/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/sun/security/pkcs11/Makefile Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/sun/security/pkcs11/Makefile Wed Jul 05 17:49:49 2017 +0200 @@ -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 #
--- a/jdk/make/tools/CharsetMapping/SingleByte-X.java.template Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/make/tools/CharsetMapping/SingleByte-X.java.template Wed Jul 05 17:49:49 2017 +0200 @@ -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();
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Wed Jul 05 17:49:49 2017 +0200 @@ -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]; }
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/AESParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> T getParameterSpec(Class<T> 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");
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java Wed Jul 05 17:49:49 2017 +0200 @@ -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;
--- a/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Wed Jul 05 17:49:49 2017 +0200 @@ -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; }
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESCrypt.java Wed Jul 05 17:49:49 2017 +0200 @@ -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;
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); } /**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); } /**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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 {
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends KeySpec> + T engineGetKeySpec(Key key, Class<T> 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);
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java Wed Jul 05 17:49:49 2017 +0200 @@ -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) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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");
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); } /**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/DHPublicKey.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); } /**
--- a/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); } }
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Wed Jul 05 17:49:49 2017 +0200 @@ -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; }
--- a/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/JceKeyStore.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String, Object> entries = new Hashtable<String, Object>(); /** * 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<String> engineAliases() { return entries.keys(); } @@ -462,9 +460,9 @@ public String engineGetCertificateAlias(Certificate cert) { Certificate certElem; - Enumeration e = entries.keys(); + Enumeration<String> 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<String> 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<String, CertificateFactory> 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<String, CertificateFactory>(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);
--- a/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyProtector.java Wed Jul 05 17:49:49 2017 +0200 @@ -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);
--- a/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/OAEPParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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");
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBECipherCore.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 "
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Wed Jul 05 17:49:49 2017 +0200 @@ -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(); }
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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()))
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEParameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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");
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Wed Jul 05 17:49:49 2017 +0200 @@ -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) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/PCBC.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<blockSize; i++) { - k[i] ^= (byte)(plain[i+plainOffset]); + k[i] ^= plain[i+plainOffset]; } embeddedCipher.encryptBlock(k, 0, cipher, cipherOffset); for (i = 0; i < blockSize; i++) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 @@ -98,8 +98,8 @@ throws InvalidKeyException, InvalidAlgorithmParameterException { if (params != null && params.getAlgorithm().equals("RC2")) { try { - RC2ParameterSpec rc2Params = (RC2ParameterSpec) - params.getParameterSpec(RC2ParameterSpec.class); + RC2ParameterSpec rc2Params = + params.getParameterSpec(RC2ParameterSpec.class); engineInit(opmode, key, rc2Params, random); } catch (InvalidParameterSpecException ipse) { throw new InvalidAlgorithmParameterException
--- a/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/RC2Parameters.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 @@ -55,7 +55,6 @@ * @author Sean Mullan * @since 1.5 */ - public final class RC2Parameters extends AlgorithmParametersSpi { // TABLE[EKB] from section 6 of RFC 2268, used to convert effective key @@ -177,13 +176,14 @@ engineInit(encoded); } - protected AlgorithmParameterSpec engineGetParameterSpec(Class paramSpec) + protected <T extends AlgorithmParameterSpec> + T engineGetParameterSpec(Class<T> 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");
--- a/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Wed Jul 05 17:49:49 2017 +0200 @@ -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 =
--- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Object>() { 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; + } + }); } }
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Wed Jul 05 17:49:49 2017 +0200 @@ -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.*;
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Wed Jul 05 17:49:49 2017 +0200 @@ -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;
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<javax.naming.Binding> { 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; - } + } }
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String, java.lang.Object> _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<String, java.lang.Object>)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<String, java.lang.Object>)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<String, java.lang.Object> 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<NameClassPair> 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<NameClassPair> 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<javax.naming.Binding> 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<javax.naming.Binding> 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<String, java.lang.Object> 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<String, java.lang.Object>)_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<String, java.lang.Object>)_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<String, java.lang.Object>)_env.clone(); return _env.remove(propName); } return null;
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String> 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<String> insStringToStringifiedComps(String str) throws InvalidNameException { int len = str.length(); - Vector components = new Vector(10); + Vector<String> 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<String> enum_) { super(enum_, CNNameParser.mySyntax); } @@ -315,12 +315,12 @@ } public Name getPrefix(int posn) { - Enumeration comps = super.getPrefix(posn).getAll(); + Enumeration<String> comps = super.getPrefix(posn).getAll(); return new CNCompoundName(comps); } public Name getSuffix(int posn) { - Enumeration comps = super.getSuffix(posn).getAll(); + Enumeration<String> comps = super.getSuffix(posn).getAll(); return new CNCompoundName(comps); }
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java Wed Jul 05 17:49:49 2017 +0200 @@ -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); }
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Address> addresses; private String stringName; public static class Address { @@ -149,7 +149,7 @@ } } - public Vector getAddresses() { + public Vector<Address> 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(
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Wed Jul 05 17:49:49 2017 +0200 @@ -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);
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContext.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Object,Object> 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<Object,Object>) 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<Object,Object>) 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<Object,Object>) 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<NameClassPair> 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<Binding> 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<SearchResult> 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<SearchResult> 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<SearchResult> 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<T> implements NamingEnumeration<T> { - protected Enumeration nodes; // nodes to be enumerated, or null if none + protected Enumeration<NameNode> nodes; // nodes to be enumerated, or null if none protected DnsContext ctx; // context being enumerated - NameClassPairEnumeration(DnsContext ctx, Hashtable nodes) { + BaseNameClassPairEnumeration(DnsContext ctx, Hashtable<String,NameNode> 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<NameClassPair> + implements NamingEnumeration<NameClassPair> { + + NameClassPairEnumeration(DnsContext ctx, Hashtable<String,NameNode> 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<Binding> + implements NamingEnumeration<Binding> { - BindingEnumeration(DnsContext ctx, Hashtable nodes) { + BindingEnumeration(DnsContext ctx, Hashtable<String,NameNode> 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);
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String> filterNameServers(List<String> 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<String> 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;
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String> 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 <em>host name</em> 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<String> getAll() { + return new Enumeration<String>() { 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 == '\\') {
--- a/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/NameNode.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String,NameNode> 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<String,NameNode> 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);
--- a/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/Resolver.java Wed Jul 05 17:49:49 2017 +0200 @@ -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"); }
--- a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecords.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<ResourceRecord> question = new Vector<>(); + Vector<ResourceRecord> answer = new Vector<>(); + Vector<ResourceRecord> authority = new Vector<>(); + Vector<ResourceRecord> 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(); } /*
--- a/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/ZoneNode.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<NameNode> 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<NameNode>(newContents); serialNumber = getSerialNumber(soa); setExpiration(getMinimumTtl(soa)); return newContents;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<T extends NameClassPair> + implements NamingEnumeration<T>, ReferralEnumeration<T> { + + protected Name listArg; + + private boolean cleaned = false; + private LdapResult res; + private LdapClient enumClnt; + private Continuation cont; // used to fill in exceptions + private Vector<LdapEntry> 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<Control> 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<T> 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<T> 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(); + } +}
--- a/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/Ber.java Wed Jul 05 17:49:49 2017 +0200 @@ -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); }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Wed Jul 05 17:49:49 2017 +0200 @@ -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.
--- a/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/Connection.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Socket> 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 " +
--- a/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java Wed Jul 05 17:49:49 2017 +0200 @@ -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);
--- a/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<NamingListener> vector = null; - QueueElement(EventObject event, Vector vector) { + QueueElement(EventObject event, Vector<NamingListener> 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<NamingListener> 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<NamingListener> 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));
--- a/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<NotifierArgs, NamingEventNotifier> notifiers = + new Hashtable<>(11); /** * List of unsolicited notification listeners. */ - private Vector unsolicited = null; + private Vector<UnsolicitedNotificationListener> 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 <tt>l</tt> 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<? extends NamingListener> 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<NamingListener> v = + (Vector<NamingListener>)vector.clone(); eventQueue.enqueue(event, v); }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String, ? super String> baseCtxEnv; + @SuppressWarnings("unchecked") // clone() public Object clone() { LdapAttribute attr = new LdapAttribute(this.attrID, baseCtx, rdn); - attr.values = (Vector)values.clone(); + attr.values = (Vector<Object>)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<String, String>(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<String, Object> realEnv = null; + Hashtable<String, Object> 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<String, Object>)realEnv.clone(); } secureEnv.remove(key); }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Binding> { 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<Control> 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); } }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapClient.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String, Boolean> 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<String, Boolean> 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<String, Boolean> 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<String, Boolean> 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<String> 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<String, Boolean> 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<String, Boolean> 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<String> 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<Control> parseControls(BerDecoder replyBer) throws IOException { // handle LDAPv3 controls (if present) if ((replyBer.bytesLeft() > 0) && (replyBer.peekByte() == LDAP_CONTROLS)) { - Vector ctls = new Vector(4); + Vector<Control> 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<? extends Attribute> 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<LdapCtx> 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,
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<String, java.lang.Object> 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<Control> 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<String, DirContext> 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<String, Boolean> 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<String, java.lang.Object>) 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<Rdn> rdnList = (new LdapName(dn)).rdns(); - List rdnList = (new LdapName(dn)).getRdns(); + List<Rdn> 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<? extends Attribute> 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<String> 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 <T> Vector<T> appendVector(Vector<T> v1, Vector<T> 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<Control> 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<NameClassPair> 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<Binding> 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<Control> 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<? extends Attribute> 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<SearchResult> 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<SearchResult> 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<? extends Attribute> 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<SearchResult> 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<SearchResult> 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<SearchResult> c_search(Name name, String filter, SearchControls cons, Continuation cont) @@ -1773,7 +1770,7 @@ waitForReply, cont); } - protected NamingEnumeration c_search(Name name, + protected NamingEnumeration<SearchResult> c_search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons, @@ -1790,7 +1787,7 @@ } // Used by NamingNotifier - NamingEnumeration searchAux(Name name, + NamingEnumeration<SearchResult> 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<String, Object> p_getEnvironment() { return envprops; } - public Hashtable getEnvironment() throws NamingException { + @SuppressWarnings("unchecked") // clone() + public Hashtable<String, Object> getEnvironment() throws NamingException { return (envprops == null - ? new Hashtable(5, 0.75f) - : (Hashtable)envprops.clone()); + ? new Hashtable<String, Object>(5, 0.75f) + : (Hashtable<String, Object>)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<String, Object>)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<String, Object>(5, 0.75f) + : (Hashtable<String, Object>)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 @@ * <ldapurls> ::= <separator> <ldapurl> | <ldapurls> * <separator> ::= ASCII linefeed character (0x0a) * <ldapurl> ::= LDAP URL format (RFC 1959) + * + * Returns a Vector of single-String Vectors. */ - private static Vector extractURLs(String refString) { + private static Vector<Vector<String>> extractURLs(String refString) { int separator = 0; int urlCount = 0; @@ -2526,17 +2569,21 @@ urlCount++; } - Vector referrals = new Vector(urlCount); + Vector<Vector<String>> 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<String> referral = new Vector<>(1); + referral.addElement(refString.substring(iURL, separator)); + referrals.addElement(referral); iURL = separator + 1; } - referrals.addElement(refString.substring(iURL)); + Vector<String> 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<String, Object>(5, 0.75f) + : (Hashtable<String, Object>)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> */ - Control[] convertControls(Vector ctls) throws NamingException { + Control[] convertControls(Vector<Control> 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);
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<RefAddr> 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<String> 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<String> 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<String> v) { if (!v.contains(currentClass.getName())) { v.addElement(currentClass.getName()); }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapEntry.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Control> 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<Control> respCtls) { this.DN = DN; this.attributes = attrs; this.respCtls = respCtls;
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<Rdn> 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<Rdn> rdns) { unparsed = name; - this.rdns = (Vector)rdns.clone(); + this.rdns = (Vector<Rdn>)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<Rdn> 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<String> getAll() { + final Enumeration<Rdn> enum_ = rdns.elements(); - return new Enumeration () { + return new Enumeration<String>() { 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<String> 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<Rdn> getDn() throws InvalidNameException { cur = 0; - Vector rdns = new Vector(len / 3 + 10); // leave room for growth + Vector<Rdn> 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<TypeAndValue> 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); } /*
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java Thu Sep 01 13:54:31 2011 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java Wed Jul 05 17:49:49 2017 +0200 @@ -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<NameClassPair> { 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<Control> 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;