mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 13:50:38 -04:00
17965 lines
668 KiB
Text
17965 lines
668 KiB
Text
--- .hgtags 2012-08-10 09:07:00.000000000 -0700
|
|
+++ .hgtags 2013-06-22 09:41:03.000000000 -0700
|
|
@@ -123,6 +123,7 @@
|
|
2d38c2a79c144c30cd04d143d83ee7ec6af40771 jdk7-b146
|
|
3ac30b3852876ccad6bd61697b5f9efa91ca7bc6 jdk7u1-b01
|
|
d91364304d7c4ecd34caffdba2b840aeb0d10b51 jdk7-b147
|
|
+00b623147f23ef8a92a25c4c28ef8681dc1d1b52 7u0
|
|
34451dc0580d5c95d97b95a564e6198f36545d68 jdk7u1-b02
|
|
bf735d852f79bdbb3373c777eec3ff27e035e7ba jdk7u1-b03
|
|
f66a2bada589f4157789e6f66472954d2f1c114e jdk7u1-b04
|
|
@@ -197,5 +198,79 @@
|
|
29f6fb1833eb2a696b95e8985126f2d70f511a82 jdk7u6-b21
|
|
31cdab09d719fe60876c7f3a472386c1455d93e2 jdk7u6-b22
|
|
d1c709f1196a73d1df10d04a221b10e30fd2eb48 jdk7u6-b23
|
|
-1ab3edf5061fdde3a6f6510373a92444445af710 jdk7u8-b01
|
|
-d7a94c8cbbbfadbd9e2f3e4737eb7deb572dedc9 jdk7u8-b02
|
|
+e4def733cc8c58e83b7cefa7edd89a3e2b793520 jdk7u6-b24
|
|
+f5f546dba006778854e7a81141fc1b44acd257a4 jdk7u6-b30
|
|
+43775eae8df6c874fb3631c86009505cf3821b1f jdk7u6-b31
|
|
+43775eae8df6c874fb3631c86009505cf3821b1f jdk7u7-b10
|
|
+a380c75873bfb578e605d4362edb18c08698cc3e jdk7u7-b30
|
|
+d7f2b3949f9c9ff1115ea61c496d3cd4c62e2759 jdk7u7-b11
|
|
+82c51e6a3bea0dd8feb1bd3033e847dbdc5d9f99 jdk7u7-b31
|
|
+5ca487420f9c2cf6d39acf1e842d13bf8ef0ca07 jdk7u7-b01
|
|
+dbfa9c57853c2dd9cd4e4a139d83b519573d8031 jdk7u7-b02
|
|
+bae912f95f2aa1d22dbc0ff62816b71861965cd6 jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+5ca487420f9c2cf6d39acf1e842d13bf8ef0ca07 jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+dbfa9c57853c2dd9cd4e4a139d83b519573d8031 jdk7u9-b02
|
|
+3159fbe20e2d9501007aae8ca3db58978d754561 jdk7u9-b04
|
|
+d9c8fa0606fdfff242175ce904c525a6fc40d6e5 jdk7u9-b05
|
|
+81f8b620894e275012a1b447f13319b7d2148b28 jdk7u9-b31
|
|
+d247cdeb828f4463b55ea53c4b2d6346f7706c3c jdk7u9-b32
|
|
+d934ce27cddbc9ba7236791f177872491204a41e jdk7u10-b10
|
|
+5a5ee5b70d563d5817b6ec023d275e9b17256459 jdk7u10-b11
|
|
+48b58c2d665c9a1d3598b981e46f87f9bcdd5b46 jdk7u10-b12
|
|
+1b9618b61e29c09b92f83956c613acf36ccabb38 jdk7u10-b13
|
|
+c50e1a044e4fcc1a94b79b42f3629beb07624010 jdk7u10-b14
|
|
+137087461db28f935493940658f31be760098f00 jdk7u10-b15
|
|
+c8a37a49fc90ae31b864544d6d4a9f6137d4995d jdk7u10-b16
|
|
+494e838439db7f0f4e36f7dcfeba06d2bef78c8d jdk7u10-b17
|
|
+dce9058d2151e6b5c84898c13cfd1521a627a296 jdk7u10-b18
|
|
+b5fb925394331313dbe3859fdc408bfd37193476 jdk7u10-b30
|
|
+337ce65c8c356766212812b78f49f5632995987d jdk7u10-b31
|
|
+c2d5141baeda6c9b5bbc83c21eff9c3940fefae4 jdk7u11-b20
|
|
+168aa0f1417b3651a955ae66068dc148b660f829 jdk7u11-b21
|
|
+7c0710ed65b097d415f772ff4fb58c4822890aa3 jdk7u11-b32
|
|
+61cee7a518a4ae05439490ec388c3ab1d1d899f2 jdk7u11-b33
|
|
+c8a37a49fc90ae31b864544d6d4a9f6137d4995d jdk7u11-b03
|
|
+0b418e2ccf9093718609144689d1a8b316ad951f jdk7u11-b04
|
|
+e127e6c94b56f7348df67d9672c16a7dc9c5ec5e jdk7u11-b05
|
|
+f6abff072aabfee866342d9f7f4aac7d13450ddf jdk7u11-b06
|
|
+80a3d0bcd3d4c9e83b75416178bdd60a2d23ebbc jdk7u11-b07
|
|
+e7c55def6796d3c426631b5717084ef122908847 jdk7u11-b08
|
|
+2412f7b8551ede5296cb6e1d6189f40aad9eeffe jdk7u13-b09
|
|
+3b7815df113f8044039739276237b964ee8fa015 jdk7u13-b10
|
|
+527d3cf769ec073d7348e4c31f97c47c943c96b6 jdk7u13-b30
|
|
+3b7815df113f8044039739276237b964ee8fa015 jdk7u13-b20
|
|
+0e52db2d9bb8bc789f6c66f2cfb7cd2d3b0b16c6 jdk7u15-b01
|
|
+0324fca94d073b3aad77658224f17679f25c18b1 jdk7u15-b02
|
|
+25a9d44cebf2a7ac6dd1748c94e00b242403acb1 jdk7u15-b30
|
|
+5c1b2900a65b5ebe9d2a5c9b48903081c8196b04 jdk7u15-b31
|
|
+e7adbfbcd837ad4e9f88db45612e5704b7a249fd jdk7u15-b33
|
|
+f37a75bd39595ba38bdc53ee957c63bbb3cbb12d jdk7u15-b03
|
|
+2412f7b8551ede5296cb6e1d6189f40aad9eeffe jdk7u15-b32
|
|
+0c2b2dae93e7a720bbcc2e13a1913a2264335554 jdk7u17-b01
|
|
+8e49ff2feda30801d7826ca1778eb7b901a7089c jdk7u17-b02
|
|
+933d424580f967ed11eda2bbfd690f985a72df6e jdk7u17-b30
|
|
+790582955edb617b41abbc73cf82544dbf8c1d97 jdk7u17-b31
|
|
+941539a9f6441f053e8e7f31064944b2fc08879f jdk7u17-b32
|
|
+527d3cf769ec073d7348e4c31f97c47c943c96b6 jdk7u21-b01
|
|
+bc264b362dc7b4f2bda34e1a5b87a4f0c2bd4d82 jdk7u21-b02
|
|
+20603c659295a40c7f16259cb08c91475092efed jdk7u21-b03
|
|
+d2b1fdd8ee0affe640c7493ab3ae04fcc1961446 jdk7u21-b04
|
|
+2d6657f92359d1d46b355fd0c99b8aa5f34832e4 jdk7u21-b05
|
|
+14522481739dc6981beb5cc55d543dcc62cda067 jdk7u21-b06
|
|
+0df382e8c17bf817d55fc8759c7f5c9e9d0337f0 jdk7u21-b07
|
|
+1aff32a21aba64c3767e9a72ebf1b8ba490e99ec jdk7u21-b08
|
|
+a2e0099b4cf70be026a7a0ba7918fcd71d57fdce jdk7u21-b09
|
|
+602ad1a5b09fb9136e8bf1b708e0524fbdb35324 jdk7u21-b10
|
|
+fa322ca378324750ea049f2e92357e51eca27ae4 jdk7u21-b11
|
|
+450e8dde919df278fe75ae95e0eb0a6464f5bc41 jdk7u21-b30
|
|
+170520883597f90771aca8251a8d089e7566e4bf jdk7u21-b12
|
|
+50bfbd21bf42f6ae4167226ac45cd79e0ab7758c jdk7u25-b03
|
|
+a94c9aa356bbed13c1e2b4a9a380117ddff1668f jdk7u25-b04
|
|
+29a789ae14dc09a50eb45d3445075642e77490a2 jdk7u25-b05
|
|
+8a7c657b7536006633b5e961d93e2173712a64fa jdk7u25-b06
|
|
+d45374e7c7eeb4e01d9f239e71e8a8aff453d55a jdk7u25-b07
|
|
+b01002577912b89306e88a9973b6f3bc049a2a69 jdk7u25-b08
|
|
+84285f4e0aa2f81b80bc6fbe713d768c0d9a7156 jdk7u25-b09
|
|
+aae1e27d347b71f65f548c12b918ede98d869b7c jdk7u25-b10
|
|
--- corba/.hgtags 2012-08-10 09:09:50.000000000 -0700
|
|
+++ corba/.hgtags 2013-06-22 09:41:22.000000000 -0700
|
|
@@ -123,6 +123,7 @@
|
|
770227a4087e4e401fe87ccd19738440111c3948 jdk7-b146
|
|
36f0efbc66ef8ace3cca8aa8d0c88f3334080f8a jdk7u1-b01
|
|
73323cb3396260d93e0ab731fd2d431096ceed0f jdk7-b147
|
|
+578c4d2c534cc761f5f5cc0d8360471bb8d5f94f 7u0
|
|
9515a2d034b4727c11aeea36354a549fbc469c4f jdk7u1-b02
|
|
dd71cb354c573c1addcda269a7dd9144bfce9587 jdk7u1-b03
|
|
eaee830124aa453627591d8f9eccb39d7e040876 jdk7u1-b04
|
|
@@ -197,5 +198,81 @@
|
|
353c15c4bc371f2f8258344c988d1403477cc140 jdk7u6-b21
|
|
793b80c0316fcafa18668bced26acb41af3be07d jdk7u6-b22
|
|
2a8376123fbb81bc4b2f643ff7cfaf7f87b21c35 jdk7u6-b23
|
|
-353c15c4bc371f2f8258344c988d1403477cc140 jdk7u8-b01
|
|
-d17ca8d088f7cc0dd42230472f534c8d1e415bcb jdk7u8-b02
|
|
+02512f61591f55d84458d1ea4ce84eecb7324f89 jdk7u6-b24
|
|
+8b20875b3faa01ef56331045de88747df278eaeb jdk7u6-b30
|
|
+d7fe6c13adf9e06d98c061449d171bc06c2ba0a3 jdk7u6-b31
|
|
+d7fe6c13adf9e06d98c061449d171bc06c2ba0a3 jdk7u7-b10
|
|
+496baf62d0550c704505b0ff6f390279f6a569e0 jdk7u7-b30
|
|
+e57e4274a3575f278115cc8ef03c5bdf3c43a7ed jdk7u7-b11
|
|
+06cbc4af754ea8f2e3b7d0b1701d1a69ce9d5075 jdk7u7-b31
|
|
+8737f43e092ea52dd85dcf164736eea3b9b364e6 jdk7u7-b01
|
|
+ec602836c4e173927911673d253bb8baa1e3d170 jdk7u7-b02
|
|
+a163e56c6679d10dc64ec48f35e67c3a5942afba jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+8737f43e092ea52dd85dcf164736eea3b9b364e6 jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+ec602836c4e173927911673d253bb8baa1e3d170 jdk7u9-b02
|
|
+268470f3f0d0d7e9b04c579c551571097f0b0305 jdk7u9-b04
|
|
+a5dced409c4b7f940db80846f6efabac74523b0e jdk7u9-b05
|
|
+b426254b45bcd7cdb38003497fdd4168e366d3cb jdk7u9-b31
|
|
+0fa70374aa257929e2541e57c55c4cdebec91fd4 jdk7u9-b32
|
|
+ba68d4ad02c465a36344a34eba34491466ec17d4 jdk7u10-b10
|
|
+a738921b001a92381bf355a2bb1ecd742ecee352 jdk7u10-b11
|
|
+e52708ecb2c32b366c251e4083fbb37e22a425c3 jdk7u10-b12
|
|
+5cd2ef642635a7d0a79a7c28343b2ddfd0e6aa4a jdk7u10-b13
|
|
+2d53a2c7e4b989ceba356abfc8dc2129269a134f jdk7u10-b14
|
|
+c488cd628db35eb09d8ef9e10ffd00c9a93d0778 jdk7u10-b15
|
|
+64f09d7549d304fbfd3c29b4f148bf44e8e3e979 jdk7u10-b16
|
|
+57c3355153d1624fd98618097c1a82ab3ffc66f8 jdk7u10-b17
|
|
+f2a347637a55fa4de9542a8dcab72ad6fac44d2b jdk7u10-b18
|
|
+22cf8bc2ec47498fe548b308a81be0486dd7e3d0 jdk7u10-b30
|
|
+2723612f5983e7d65490d7d4a3d8577026448736 jdk7u10-b31
|
|
+e7952daece16b27d69cb78f6912407c3bbaf8e83 jdk7u11-b20
|
|
+dff0f0272891b1d53497d9525567959b73476ff9 jdk7u11-b21
|
|
+24f8cb8a0a615686f8baba4d746514bae92f064d jdk7u11-b32
|
|
+4bfef14df261d69dc32e37d189e12e3fa572a83c jdk7u11-b33
|
|
+96a3c68e5741dc9ab5cb0da426511eb15fd29ede jdk7u11-b03
|
|
+1413b173730f4796fca42c89eeb804a5935b0264 jdk7u11-b04
|
|
+5c49a17bc15f4fd4722746788f5130df132cd038 jdk7u11-b05
|
|
+30057c20fbb3caa61857656d05421e56731184f2 jdk7u11-b06
|
|
+9d9440d1fa2dd872c2a2b564fc5fa4d3555afab6 jdk7u11-b07
|
|
+983fac5b27376839142ac5a8770461e4e48c2dc8 jdk7u11-b08
|
|
+b192d148731916e4b1b47b7a3e6b0a1d7ddf3f14 jdk7u13-b09
|
|
+b9ab9b203a41469a274419d26be2c04558b57ce8 jdk7u13-b10
|
|
+f5ef46204dba19679edd7492b221110fd1a0bd33 jdk7u13-b30
|
|
+b9ab9b203a41469a274419d26be2c04558b57ce8 jdk7u13-b20
|
|
+622e370c2d1e8c5f48d8f520f486dc6fcc1239c5 jdk7u15-b01
|
|
+30188388048333e213a839363329ac2cb0cf0e0d jdk7u15-b02
|
|
+7f0e7ce088ff554f64e2c102ae3718ae4d580c34 jdk7u15-b30
|
|
+3714b558333e1089e2649ead8586873abd9c0ed1 jdk7u15-b31
|
|
+f0c038610b6da1a0d4214b730aa6cb17b64d0a3b jdk7u15-b33
|
|
+e5b996dabec6ac6aa12705ce678642605ea9d476 jdk7u15-b03
|
|
+b192d148731916e4b1b47b7a3e6b0a1d7ddf3f14 jdk7u15-b32
|
|
+94e8b9b0e0ef1685e2f2fcc886e08a42a85c8e03 jdk7u17-b01
|
|
+e82d31e1f1189ae6f02d6855f0cd78074599b2e1 jdk7u17-b02
|
|
+d4366e557c4c5af62a94fc9885aed87c99abc848 jdk7u17-b30
|
|
+a6f066dd2cd526da73070d1e46c9b1e1ab1a6756 jdk7u17-b31
|
|
+6401c6b99d2d43ed4f0e2d38dce496069f6e91f8 jdk7u17-b32
|
|
+f5ef46204dba19679edd7492b221110fd1a0bd33 jdk7u21-b01
|
|
+17ecd70a2247ed86a095aae9f1a201fa7feea861 jdk7u21-b02
|
|
+bf0877613aeba816d5f18ea6316d535819f628e9 jdk7u21-b03
|
|
+3e39240d7314e82b3ccff3b2a64413be9c0b6665 jdk7u21-b04
|
|
+f5a291dc9d219f68a2d4bcc72c65c014e9ec3b8b jdk7u21-b05
|
|
+94f2ebfccc5e057169284bb2c858296b235868ea jdk7u21-b06
|
|
+23a57aceeb69e688f8ce8b8361fad3a49cf4ac5f jdk7u21-b07
|
|
+ebedf04bfffe289e8bf9661b38f73ca6c0dad17c jdk7u21-b08
|
|
+b8f92ad1f0cc86d8571a0e23192e667f0ef8e421 jdk7u21-b09
|
|
+b2adfd931a2504948d4fee780e4175122be10484 jdk7u21-b10
|
|
+61e2e2d9cfcea20132b50d8fb7ead66a8a373db7 jdk7u21-b11
|
|
+3c774492beaaff241c654add2c4e683b9ff002f2 jdk7u21-b30
|
|
+fa2a377ce52dfa88fca858d735d78b53f2b5b754 jdk7u21-b12
|
|
+3d0f2d5b1866860f7089b51cca8ca0ca41c04d9c jdk7u25-b01
|
|
+cdbafc5080eeb8ea3fec9fe7d071e0bf96635581 jdk7u25-b02
|
|
+2057de7ee6b17ab3335ec6cd5730f88f4cfe9502 jdk7u25-b03
|
|
+b180f1282ad221bde0d4d865c879c0fa7f8ef4c8 jdk7u25-b04
|
|
+d97e6c162735798fe0c9f1dd582aa1114b6c5447 jdk7u25-b05
|
|
+da9301dac56c26846212db33bb20001652b6ce60 jdk7u25-b06
|
|
+aa2dc8d3bb2cdd726ec97bc2bf130eec46467f28 jdk7u25-b07
|
|
+550d43da7fe2f85bbce88cc94066c589480b1221 jdk7u25-b08
|
|
+161ec4dd450d59e1b8ad136db231925c97ff6205 jdk7u25-b09
|
|
+c9da98e82bb006dccd94a50871d6cdb66fa2d7e7 jdk7u25-b10
|
|
--- corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk 2012-08-10 09:09:53.000000000 -0700
|
|
+++ corba/make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
#
|
|
-# Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
|
|
+# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
# 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,6 @@
|
|
com/sun/corba/se/impl/orbutil/DenseIntMapImpl.java \
|
|
com/sun/corba/se/impl/orbutil/GetPropertyAction.java \
|
|
com/sun/corba/se/impl/orbutil/HexOutputStream.java \
|
|
- com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3.java \
|
|
- com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3_1.java \
|
|
- com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3.java \
|
|
- com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3_1.java \
|
|
com/sun/corba/se/impl/orbutil/LegacyHookGetFields.java \
|
|
com/sun/corba/se/impl/orbutil/LegacyHookPutFields.java \
|
|
com/sun/corba/se/impl/orbutil/LogKeywords.java \
|
|
@@ -43,21 +39,12 @@
|
|
com/sun/corba/se/impl/orbutil/ObjectStreamClassUtil_1_3.java \
|
|
com/sun/corba/se/impl/orbutil/ORBConstants.java \
|
|
com/sun/corba/se/impl/orbutil/ORBUtility.java \
|
|
- com/sun/corba/se/impl/orbutil/ORBClassLoader.java \
|
|
com/sun/corba/se/impl/orbutil/RepIdDelegator.java \
|
|
- com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3.java \
|
|
- com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3_1.java \
|
|
- com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3.java \
|
|
- com/sun/corba/se/impl/orbutil/RepositoryId_1_3.java \
|
|
com/sun/corba/se/impl/orbutil/RepositoryIdFactory.java \
|
|
com/sun/corba/se/impl/orbutil/RepositoryIdStrings.java \
|
|
com/sun/corba/se/impl/orbutil/RepositoryIdUtility.java \
|
|
com/sun/corba/se/impl/orbutil/RepositoryIdInterface.java \
|
|
- com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3_1.java \
|
|
- com/sun/corba/se/impl/orbutil/RepositoryId_1_3_1.java \
|
|
com/sun/corba/se/impl/orbutil/StackImpl.java \
|
|
- com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3_1.java \
|
|
- com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3.java \
|
|
com/sun/corba/se/impl/orbutil/closure/Future.java \
|
|
com/sun/corba/se/impl/orbutil/closure/Constant.java \
|
|
com/sun/corba/se/impl/orbutil/concurrent/Sync.java \
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/activation/ServerMain.java 2012-08-10 09:10:11.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/activation/ServerMain.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -322,9 +322,9 @@
|
|
com.sun.corba.se.spi.activation._ServerImplBase
|
|
{
|
|
private ORB orb;
|
|
- private Method installMethod ;
|
|
- private Method uninstallMethod ;
|
|
- private Method shutdownMethod ;
|
|
+ private transient Method installMethod ;
|
|
+ private transient Method uninstallMethod ;
|
|
+ private transient Method shutdownMethod ;
|
|
private Object methodArgs[] ;
|
|
|
|
ServerCallback(ORB orb, Method installMethod, Method uninstallMethod,
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/activation/ServerManagerImpl.java 2012-08-10 09:10:12.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/activation/ServerManagerImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -81,7 +81,6 @@
|
|
|
|
import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
import com.sun.corba.se.impl.util.Utility;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java 2012-08-10 09:10:12.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -33,6 +33,8 @@
|
|
|
|
import java.io.Serializable;
|
|
import java.math.BigDecimal;
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
import java.util.List ;
|
|
import java.util.ArrayList ;
|
|
|
|
@@ -504,7 +506,13 @@
|
|
public org.omg.CORBA.portable.OutputStream create_output_stream()
|
|
{
|
|
//debug.log ("create_output_stream");
|
|
- return new AnyOutputStream(orb);
|
|
+ final ORB finalorb = this.orb;
|
|
+ return AccessController.doPrivileged(new PrivilegedAction<AnyOutputStream>() {
|
|
+ @Override
|
|
+ public AnyOutputStream run() {
|
|
+ return new AnyOutputStream(finalorb);
|
|
+ }
|
|
+ });
|
|
}
|
|
|
|
/**
|
|
@@ -1218,7 +1226,7 @@
|
|
// See bug 4391648 for more info about the tcORB in this
|
|
// case.
|
|
RepositoryIdStrings repStrs
|
|
- = RepositoryIdFactory.getRepIdStringsFactory(tcORB);
|
|
+ = RepositoryIdFactory.getRepIdStringsFactory();
|
|
|
|
|
|
// Assertion: c instanceof Serializable?
|
|
@@ -1251,7 +1259,7 @@
|
|
// Anything else
|
|
// We know that this is a TypeCodeImpl since it is our ORB
|
|
classTC = (TypeCodeImpl)ValueUtility.createTypeCodeForClass(
|
|
- tcORB, c, ORBUtility.createValueHandler(tcORB));
|
|
+ tcORB, c, ORBUtility.createValueHandler());
|
|
// Intruct classTC to store its buffer
|
|
classTC.setCaching(true);
|
|
// Update the cache
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/corba/TypeCodeImpl.java 2012-08-10 09:10:13.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/corba/TypeCodeImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -600,7 +600,8 @@
|
|
}
|
|
|
|
public static CDROutputStream newOutputStream(ORB orb) {
|
|
- TypeCodeOutputStream tcos = new TypeCodeOutputStream((ORB)orb);
|
|
+ TypeCodeOutputStream tcos =
|
|
+ sun.corba.OutputStreamFactory.newTypeCodeOutputStream(orb);
|
|
//if (debug) System.out.println("Created TypeCodeOutputStream " + tcos +
|
|
// " with no parent");
|
|
return tcos;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream_1_0.java 2012-08-10 09:10:15.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream_1_0.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -269,8 +269,8 @@
|
|
|
|
private final void createRepositoryIdHandlers()
|
|
{
|
|
- repIdUtil = RepositoryIdFactory.getRepIdUtility(orb);
|
|
- repIdStrs = RepositoryIdFactory.getRepIdStringsFactory(orb);
|
|
+ repIdUtil = RepositoryIdFactory.getRepIdUtility();
|
|
+ repIdStrs = RepositoryIdFactory.getRepIdStringsFactory();
|
|
}
|
|
|
|
public GIOPVersion getGIOPVersion() {
|
|
@@ -564,10 +564,7 @@
|
|
|
|
checkForNegativeLength(len);
|
|
|
|
- if (orb != null && ORBUtility.isLegacyORB((ORB)orb))
|
|
- return legacyReadString(len);
|
|
- else
|
|
- return internalReadString(len);
|
|
+ return internalReadString(len);
|
|
}
|
|
|
|
private final String internalReadString(int len) {
|
|
@@ -588,54 +585,6 @@
|
|
return new String(result, 0, getCharConverter().getNumChars());
|
|
}
|
|
|
|
- private final String legacyReadString(int len) {
|
|
-
|
|
- //
|
|
- // Workaround for ORBs which send string lengths of
|
|
- // zero to mean empty string.
|
|
- //
|
|
- //
|
|
- // IMPORTANT: Do not replace 'new String("")' with "", it may result
|
|
- // in a Serialization bug (See serialization.zerolengthstring) and
|
|
- // bug id: 4728756 for details
|
|
- if (len == 0)
|
|
- return new String("");
|
|
-
|
|
- len--;
|
|
- char[] c = new char[len];
|
|
-
|
|
- int n = 0;
|
|
- while (n < len) {
|
|
- int avail;
|
|
- int bytes;
|
|
- int wanted;
|
|
-
|
|
- avail = bbwi.buflen - bbwi.position();
|
|
- if (avail <= 0) {
|
|
- grow(1, 1);
|
|
- avail = bbwi.buflen - bbwi.position();
|
|
- }
|
|
- wanted = len - n;
|
|
- bytes = (wanted < avail) ? wanted : avail;
|
|
- // Microbenchmarks are showing a loop of ByteBuffer.get(int) being
|
|
- // faster than ByteBuffer.get(byte[], int, int).
|
|
- for (int i=0; i<bytes; i++) {
|
|
- c[n+i] = (char) (bbwi.byteBuffer.get(bbwi.position()+i) & 0xFF);
|
|
- }
|
|
- bbwi.position(bbwi.position() + bytes);
|
|
- n += bytes;
|
|
- }
|
|
-
|
|
- //
|
|
- // Skip past terminating null byte
|
|
- //
|
|
- if (bbwi.position() + 1 > bbwi.buflen)
|
|
- alignAndCheck(1, 1);
|
|
- bbwi.position(bbwi.position() + 1);
|
|
-
|
|
- return new String(c);
|
|
- }
|
|
-
|
|
public final String read_string() {
|
|
return readStringOrIndirection(false);
|
|
}
|
|
@@ -1045,7 +994,7 @@
|
|
|
|
try {
|
|
if (valueHandler == null)
|
|
- valueHandler = ORBUtility.createValueHandler(orb);
|
|
+ valueHandler = ORBUtility.createValueHandler();
|
|
|
|
value = valueHandler.readValue(parent,
|
|
indirection,
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream_1_0.java 2012-08-10 09:10:15.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream_1_0.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -189,18 +189,8 @@
|
|
|
|
private final void createRepositoryIdHandlers()
|
|
{
|
|
- if (orb != null) {
|
|
- // Get the appropriate versions based on the ORB version. The
|
|
- // ORB versioning info is only in the core ORB.
|
|
- repIdUtil
|
|
- = RepositoryIdFactory.getRepIdUtility(orb);
|
|
- repIdStrs
|
|
- = RepositoryIdFactory.getRepIdStringsFactory(orb);
|
|
- } else {
|
|
- // Get the latest versions
|
|
- repIdUtil = RepositoryIdFactory.getRepIdUtility();
|
|
- repIdStrs = RepositoryIdFactory.getRepIdStringsFactory();
|
|
- }
|
|
+ repIdUtil = RepositoryIdFactory.getRepIdUtility();
|
|
+ repIdStrs = RepositoryIdFactory.getRepIdStringsFactory();
|
|
}
|
|
|
|
public BufferManagerWrite getBufferManager()
|
|
@@ -705,7 +695,7 @@
|
|
private void writeArray(Serializable array, Class clazz) {
|
|
|
|
if (valueHandler == null)
|
|
- valueHandler = ORBUtility.createValueHandler(orb); //d11638
|
|
+ valueHandler = ORBUtility.createValueHandler(); //d11638
|
|
|
|
// Write value_tag
|
|
int indirection = writeValueTag(mustChunk, true,
|
|
@@ -768,7 +758,7 @@
|
|
|
|
private void writeRMIIIOPValueType(Serializable object, Class clazz) {
|
|
if (valueHandler == null)
|
|
- valueHandler = ORBUtility.createValueHandler(orb); //d11638
|
|
+ valueHandler = ORBUtility.createValueHandler(); //d11638
|
|
|
|
Serializable key = object;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/encoding/IDLJavaSerializationOutputStream.java 2012-08-10 09:10:16.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/encoding/IDLJavaSerializationOutputStream.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -66,7 +66,7 @@
|
|
*
|
|
* @author Ram Jeyaraman
|
|
*/
|
|
-public class IDLJavaSerializationOutputStream extends CDROutputStreamBase {
|
|
+final class IDLJavaSerializationOutputStream extends CDROutputStreamBase {
|
|
|
|
private ORB orb;
|
|
private byte encodingVersion;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java 2012-08-10 09:10:16.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -196,7 +196,8 @@
|
|
}
|
|
|
|
public TypeCodeOutputStream createEncapsulation(org.omg.CORBA.ORB _orb) {
|
|
- TypeCodeOutputStream encap = new TypeCodeOutputStream((ORB)_orb, isLittleEndian());
|
|
+ TypeCodeOutputStream encap =
|
|
+ sun.corba.OutputStreamFactory.newTypeCodeOutputStream((ORB)_orb, isLittleEndian());
|
|
encap.setEnclosingOutputStream(this);
|
|
encap.makeEncapsulation();
|
|
//if (TypeCodeImpl.debug) System.out.println("Created TypeCodeOutputStream " + encap + " with parent " + this);
|
|
@@ -211,7 +212,8 @@
|
|
|
|
public static TypeCodeOutputStream wrapOutputStream(OutputStream os) {
|
|
boolean littleEndian = ((os instanceof CDROutputStream) ? ((CDROutputStream)os).isLittleEndian() : false);
|
|
- TypeCodeOutputStream tos = new TypeCodeOutputStream((ORB)os.orb(), littleEndian);
|
|
+ TypeCodeOutputStream tos =
|
|
+ sun.corba.OutputStreamFactory.newTypeCodeOutputStream((ORB)os.orb(), littleEndian);
|
|
tos.setEnclosingOutputStream(os);
|
|
//if (TypeCodeImpl.debug) System.out.println("Created TypeCodeOutputStream " + tos + " with parent " + os);
|
|
return tos;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java 2012-08-10 09:10:17.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -155,7 +155,8 @@
|
|
// be versioned. This can be handled once this work is complete.
|
|
|
|
// Create output stream with default endianness.
|
|
- EncapsOutputStream cdrOut = new EncapsOutputStream(
|
|
+ EncapsOutputStream cdrOut =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(
|
|
(com.sun.corba.se.spi.orb.ORB)orb, giopVersion );
|
|
|
|
// This is an encapsulation, so put out the endian:
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,6 @@
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException;
|
|
import com.sun.corba.se.impl.logging.OMGSystemException;
|
|
import com.sun.corba.se.impl.corba.RequestImpl;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
import com.sun.corba.se.impl.orbutil.StackImpl;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -86,13 +86,14 @@
|
|
import com.sun.corba.se.impl.encoding.EncapsOutputStream;
|
|
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
|
|
import com.sun.corba.se.impl.util.RepositoryId;
|
|
|
|
import com.sun.corba.se.impl.logging.InterceptorsSystemException;
|
|
import com.sun.corba.se.impl.logging.OMGSystemException;
|
|
|
|
+import sun.corba.SharedSecrets;
|
|
+
|
|
/**
|
|
* Implementation of the RequestInfo interface as specified in
|
|
* orbos/99-12-02 section 5.4.1.
|
|
@@ -452,7 +453,8 @@
|
|
|
|
// Find the read method on the helper class:
|
|
String helperClassName = className + "Helper";
|
|
- Class helperClass = ORBClassLoader.loadClass( helperClassName );
|
|
+ Class<?> helperClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass( helperClassName );
|
|
Class[] readParams = new Class[1];
|
|
readParams[0] = org.omg.CORBA.portable.InputStream.class;
|
|
Method readMethod = helperClass.getMethod( "read", readParams );
|
|
@@ -512,7 +514,8 @@
|
|
Class exceptionClass = userException.getClass();
|
|
String className = exceptionClass.getName();
|
|
String helperClassName = className + "Helper";
|
|
- Class helperClass = ORBClassLoader.loadClass( helperClassName );
|
|
+ Class<?> helperClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass( helperClassName );
|
|
|
|
// Find insert( Any, class ) method
|
|
Class[] insertMethodParams = new Class[2];
|
|
@@ -656,7 +659,8 @@
|
|
// Convert the "core" service context to an
|
|
// "IOP" ServiceContext by writing it to a
|
|
// CDROutputStream and reading it back.
|
|
- EncapsOutputStream out = new EncapsOutputStream(myORB);
|
|
+ EncapsOutputStream out =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(myORB);
|
|
|
|
context.write( out, GIOPVersion.V1_2 );
|
|
InputStream inputStream = out.create_input_stream();
|
|
@@ -692,8 +696,8 @@
|
|
{
|
|
int id = 0 ;
|
|
// Convert IOP.service_context to core.ServiceContext:
|
|
- EncapsOutputStream outputStream = new EncapsOutputStream(
|
|
- myORB );
|
|
+ EncapsOutputStream outputStream =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(myORB);
|
|
InputStream inputStream = null;
|
|
UnknownServiceContext coreServiceContext = null;
|
|
ServiceContextHelper.write( outputStream, service_context );
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/FVDCodeBaseImpl.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/FVDCodeBaseImpl.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -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
|
|
@@ -86,7 +86,7 @@
|
|
// default to using the current ORB version in case the
|
|
// vhandler is not set
|
|
if (vhandler == null) {
|
|
- vhandler = new ValueHandlerImpl(false);
|
|
+ vhandler = ValueHandlerImpl.getInstance(false);
|
|
}
|
|
|
|
// Util.getCodebase may return null which would
|
|
@@ -120,7 +120,7 @@
|
|
// default to using the current ORB version in case the
|
|
// vhandler is not set
|
|
if (vhandler == null) {
|
|
- vhandler = new ValueHandlerImpl(false);
|
|
+ vhandler = ValueHandlerImpl.getInstance(false);
|
|
}
|
|
|
|
try{
|
|
@@ -161,7 +161,7 @@
|
|
// default to using the current ORB version in case the
|
|
// vhandler is not set
|
|
if (vhandler == null) {
|
|
- vhandler = new ValueHandlerImpl(false);
|
|
+ vhandler = ValueHandlerImpl.getInstance(false);
|
|
}
|
|
|
|
Stack repIds = new Stack();
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -300,11 +300,11 @@
|
|
resetStream();
|
|
}
|
|
|
|
- public final void setOrbStream(org.omg.CORBA_2_3.portable.InputStream os) {
|
|
+ final void setOrbStream(org.omg.CORBA_2_3.portable.InputStream os) {
|
|
orbStream = os;
|
|
}
|
|
|
|
- public final org.omg.CORBA_2_3.portable.InputStream getOrbStream() {
|
|
+ final org.omg.CORBA_2_3.portable.InputStream getOrbStream() {
|
|
return orbStream;
|
|
}
|
|
|
|
@@ -327,11 +327,11 @@
|
|
return (javax.rmi.CORBA.ValueHandler) vhandler;
|
|
}
|
|
|
|
- public final void increaseRecursionDepth(){
|
|
+ final void increaseRecursionDepth(){
|
|
recursionDepth++;
|
|
}
|
|
|
|
- public final int decreaseRecursionDepth(){
|
|
+ final int decreaseRecursionDepth(){
|
|
return --recursionDepth;
|
|
}
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -124,19 +124,19 @@
|
|
}
|
|
}
|
|
|
|
- public final void setOrbStream(org.omg.CORBA_2_3.portable.OutputStream os) {
|
|
+ final void setOrbStream(org.omg.CORBA_2_3.portable.OutputStream os) {
|
|
orbStream = os;
|
|
}
|
|
|
|
- public final org.omg.CORBA_2_3.portable.OutputStream getOrbStream() {
|
|
+ final org.omg.CORBA_2_3.portable.OutputStream getOrbStream() {
|
|
return orbStream;
|
|
}
|
|
|
|
- public final void increaseRecursionDepth(){
|
|
+ final void increaseRecursionDepth(){
|
|
recursionDepth++;
|
|
}
|
|
|
|
- public final int decreaseRecursionDepth(){
|
|
+ final int decreaseRecursionDepth(){
|
|
return --recursionDepth;
|
|
}
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -251,7 +251,7 @@
|
|
}
|
|
|
|
protected abstract byte getStreamFormatVersion();
|
|
- protected abstract org.omg.CORBA_2_3.portable.InputStream getOrbStream();
|
|
+ abstract org.omg.CORBA_2_3.portable.InputStream getOrbStream();
|
|
|
|
// Description of possible actions
|
|
protected static class ReadObjectState {
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java 2012-08-10 09:10:18.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,7 @@
|
|
/*
|
|
* Licensed Materials - Property of IBM
|
|
* RMI-IIOP v1.0
|
|
- * Copyright IBM Corp. 1998 1999 All Rights Reserved
|
|
+ * Copyright IBM Corp. 1998 2012 All Rights Reserved
|
|
*
|
|
*/
|
|
|
|
@@ -56,7 +56,8 @@
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Comparator;
|
|
-import java.util.Hashtable;
|
|
+import java.util.concurrent.ConcurrentHashMap;
|
|
+import java.util.concurrent.ConcurrentMap;
|
|
|
|
import com.sun.corba.se.impl.util.RepositoryId;
|
|
|
|
@@ -83,8 +84,6 @@
|
|
private static Object noArgsList[] = {};
|
|
private static Class noTypesList[] = {};
|
|
|
|
- private static Hashtable translatedFields;
|
|
-
|
|
/** true if represents enum type */
|
|
private boolean isEnum;
|
|
|
|
@@ -384,6 +383,55 @@
|
|
*/
|
|
}
|
|
|
|
+ private static final class PersistentFieldsValue {
|
|
+ private final ConcurrentMap map = new ConcurrentHashMap();
|
|
+ private static final Object NULL_VALUE =
|
|
+ (PersistentFieldsValue.class.getName() + ".NULL_VALUE");
|
|
+
|
|
+ PersistentFieldsValue() { }
|
|
+
|
|
+ ObjectStreamField[] get(Class type) {
|
|
+ Object value = map.get(type);
|
|
+ if (value == null) {
|
|
+ value = computeValue(type);
|
|
+ map.putIfAbsent(type, value);
|
|
+ }
|
|
+ return ((value == NULL_VALUE) ? null : (ObjectStreamField[])value);
|
|
+ }
|
|
+
|
|
+ private static Object computeValue(Class<?> type) {
|
|
+ try {
|
|
+ Field pf = type.getDeclaredField("serialPersistentFields");
|
|
+ int mods = pf.getModifiers();
|
|
+ if (Modifier.isPrivate(mods) && Modifier.isStatic(mods) &&
|
|
+ Modifier.isFinal(mods)) {
|
|
+ pf.setAccessible(true);
|
|
+ java.io.ObjectStreamField[] fields =
|
|
+ (java.io.ObjectStreamField[])pf.get(type);
|
|
+ return translateFields(fields);
|
|
+ }
|
|
+ } catch (NoSuchFieldException e1) {
|
|
+ } catch (IllegalAccessException e2) {
|
|
+ } catch (IllegalArgumentException e3) {
|
|
+ } catch (ClassCastException e4) { }
|
|
+ return NULL_VALUE;
|
|
+ }
|
|
+
|
|
+ private static ObjectStreamField[] translateFields(
|
|
+ java.io.ObjectStreamField[] fields) {
|
|
+ ObjectStreamField[] translation =
|
|
+ new ObjectStreamField[fields.length];
|
|
+ for (int i = 0; i < fields.length; i++) {
|
|
+ translation[i] = new ObjectStreamField(fields[i].getName(),
|
|
+ fields[i].getType());
|
|
+ }
|
|
+ return translation;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static final PersistentFieldsValue persistentFieldsValue =
|
|
+ new PersistentFieldsValue();
|
|
+
|
|
/*
|
|
* Initialize class descriptor. This method is only invoked on class
|
|
* descriptors created via calls to lookupInternal(). This method is kept
|
|
@@ -416,35 +464,7 @@
|
|
* If it is declared, use the declared serialPersistentFields.
|
|
* Otherwise, extract the fields from the class itself.
|
|
*/
|
|
- try {
|
|
- Field pf = cl.getDeclaredField("serialPersistentFields");
|
|
- // serial bug 7; the serialPersistentFields were not
|
|
- // being read and stored as Accessible bit was not set
|
|
- pf.setAccessible(true);
|
|
- // serial bug 7; need to find if the field is of type
|
|
- // java.io.ObjectStreamField
|
|
- java.io.ObjectStreamField[] f =
|
|
- (java.io.ObjectStreamField[])pf.get(cl);
|
|
- int mods = pf.getModifiers();
|
|
- if ((Modifier.isPrivate(mods)) &&
|
|
- (Modifier.isStatic(mods)) &&
|
|
- (Modifier.isFinal(mods)))
|
|
- {
|
|
- fields = (ObjectStreamField[])translateFields((Object[])pf.get(cl));
|
|
- }
|
|
- } catch (NoSuchFieldException e) {
|
|
- fields = null;
|
|
- } catch (IllegalAccessException e) {
|
|
- fields = null;
|
|
- } catch (IllegalArgumentException e) {
|
|
- fields = null;
|
|
- } catch (ClassCastException e) {
|
|
- /* Thrown if a field serialPersistentField exists
|
|
- * but it is not of type ObjectStreamField.
|
|
- */
|
|
- fields = null;
|
|
- }
|
|
-
|
|
+ fields = persistentFieldsValue.get(cl);
|
|
|
|
if (fields == null) {
|
|
/* Get all of the declared fields for this
|
|
@@ -641,44 +661,6 @@
|
|
superclass = null;
|
|
}
|
|
|
|
- private static Object[] translateFields(Object objs[])
|
|
- throws NoSuchFieldException {
|
|
- try{
|
|
- java.io.ObjectStreamField fields[] = (java.io.ObjectStreamField[])objs;
|
|
- Object translation[] = null;
|
|
-
|
|
- if (translatedFields == null)
|
|
- translatedFields = new Hashtable();
|
|
-
|
|
- translation = (Object[])translatedFields.get(fields);
|
|
-
|
|
- if (translation != null)
|
|
- return translation;
|
|
- else {
|
|
- Class osfClass = Class.forName("com.sun.corba.se.impl.io.ObjectStreamField");
|
|
- translation = (Object[])java.lang.reflect.Array.newInstance(osfClass, objs.length);
|
|
- Object arg[] = new Object[2];
|
|
- Class types[] = {String.class, Class.class};
|
|
- Constructor constructor = osfClass.getDeclaredConstructor(types);
|
|
- for (int i = fields.length -1; i >= 0; i--){
|
|
- arg[0] = fields[i].getName();
|
|
- arg[1] = fields[i].getType();
|
|
-
|
|
- translation[i] = constructor.newInstance(arg);
|
|
- }
|
|
- translatedFields.put(fields, translation);
|
|
-
|
|
- }
|
|
-
|
|
- return (Object[])translation;
|
|
- }
|
|
- catch(Throwable t){
|
|
- NoSuchFieldException nsfe = new NoSuchFieldException();
|
|
- nsfe.initCause( t ) ;
|
|
- throw nsfe ;
|
|
- }
|
|
- }
|
|
-
|
|
/*
|
|
* Set the class this version descriptor matches.
|
|
* The base class name and serializable hash must match.
|
|
@@ -1555,8 +1537,8 @@
|
|
private boolean hasExternalizableBlockData;
|
|
Method writeObjectMethod;
|
|
Method readObjectMethod;
|
|
- private Method writeReplaceObjectMethod;
|
|
- private Method readResolveObjectMethod;
|
|
+ private transient Method writeReplaceObjectMethod;
|
|
+ private transient Method readResolveObjectMethod;
|
|
private Constructor cons ;
|
|
|
|
/**
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -179,7 +179,7 @@
|
|
putFields.write(this);
|
|
}
|
|
|
|
- public abstract org.omg.CORBA_2_3.portable.OutputStream getOrbStream();
|
|
+ abstract org.omg.CORBA_2_3.portable.OutputStream getOrbStream();
|
|
|
|
protected abstract void beginOptionalCustomData();
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -53,7 +53,7 @@
|
|
import com.sun.corba.se.impl.logging.OMGSystemException;
|
|
import com.sun.corba.se.impl.logging.UtilSystemException;
|
|
|
|
-public class ValueHandlerImpl implements javax.rmi.CORBA.ValueHandlerMultiFormat {
|
|
+public final class ValueHandlerImpl implements javax.rmi.CORBA.ValueHandlerMultiFormat {
|
|
|
|
// Property to override our maximum stream format version
|
|
public static final String FORMAT_VERSION_PROPERTY
|
|
@@ -150,14 +150,22 @@
|
|
writeValueWithVersion(out, value, streamFormatVersion);
|
|
}
|
|
|
|
- public ValueHandlerImpl(){}
|
|
+ private ValueHandlerImpl(){}
|
|
|
|
- public ValueHandlerImpl(boolean isInputStream) {
|
|
+ private ValueHandlerImpl(boolean isInputStream) {
|
|
this();
|
|
useHashtables = false;
|
|
this.isInputStream = isInputStream;
|
|
}
|
|
|
|
+ static ValueHandlerImpl getInstance() {
|
|
+ return new ValueHandlerImpl();
|
|
+ }
|
|
+
|
|
+ static ValueHandlerImpl getInstance(boolean isInputStream) {
|
|
+ return new ValueHandlerImpl(isInputStream);
|
|
+ }
|
|
+
|
|
/**
|
|
* Writes the value to the stream using java semantics.
|
|
* @param out The stream to write the value to
|
|
@@ -458,12 +466,7 @@
|
|
return ObjectStreamClass.lookup(value.getClass()).writeReplace(value);
|
|
}
|
|
|
|
- /**
|
|
- * Encapsulates writing of Java char arrays so that the 1.3 subclass
|
|
- * can override it without exposing internals across packages. This
|
|
- * is a fix for bug 4367783.
|
|
- */
|
|
- protected void writeCharArray(org.omg.CORBA_2_3.portable.OutputStream out,
|
|
+ private void writeCharArray(org.omg.CORBA_2_3.portable.OutputStream out,
|
|
char[] array,
|
|
int offset,
|
|
int length)
|
|
@@ -576,12 +579,7 @@
|
|
}
|
|
}
|
|
|
|
- /**
|
|
- * Encapsulates reading of Java char arrays so that the 1.3 subclass
|
|
- * can override it without exposing internals across packages. This
|
|
- * is a fix for bug 4367783.
|
|
- */
|
|
- protected void readCharArray(org.omg.CORBA_2_3.portable.InputStream in,
|
|
+ private void readCharArray(org.omg.CORBA_2_3.portable.InputStream in,
|
|
char[] array,
|
|
int offset,
|
|
int length)
|
|
@@ -795,7 +793,7 @@
|
|
return RepositoryId.cache.getId(repId).isSequence();
|
|
}
|
|
|
|
- protected String getOutputStreamClassName() {
|
|
+ private String getOutputStreamClassName() {
|
|
return "com.sun.corba.se.impl.io.IIOPOutputStream";
|
|
}
|
|
|
|
@@ -843,29 +841,11 @@
|
|
private IIOPOutputStream createOutputStreamBuiltInNoPriv(
|
|
final String name
|
|
) throws IOException {
|
|
- return
|
|
- name.equals(
|
|
- IIOPOutputStream
|
|
- .class.getName()
|
|
- ) ?
|
|
- new IIOPOutputStream() :
|
|
-
|
|
- name.equals(
|
|
- com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3
|
|
- .class.getName()
|
|
- ) ?
|
|
- new com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3() :
|
|
-
|
|
- name.equals(
|
|
- com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3_1
|
|
- .class.getName()
|
|
- ) ?
|
|
- new com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3_1() :
|
|
-
|
|
- null;
|
|
+ return name.equals(IIOPOutputStream.class.getName()) ?
|
|
+ new IIOPOutputStream() : null;
|
|
}
|
|
|
|
- protected String getInputStreamClassName() {
|
|
+ private String getInputStreamClassName() {
|
|
return "com.sun.corba.se.impl.io.IIOPInputStream";
|
|
}
|
|
|
|
@@ -913,26 +893,8 @@
|
|
private IIOPInputStream createInputStreamBuiltInNoPriv(
|
|
final String name
|
|
) throws IOException {
|
|
- return
|
|
- name.equals(
|
|
- IIOPInputStream
|
|
- .class.getName()
|
|
- ) ?
|
|
- new IIOPInputStream() :
|
|
-
|
|
- name.equals(
|
|
- com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3
|
|
- .class.getName()
|
|
- ) ?
|
|
- new com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3() :
|
|
-
|
|
- name.equals(
|
|
- com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3_1
|
|
- .class.getName()
|
|
- ) ?
|
|
- new com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3_1() :
|
|
-
|
|
- null;
|
|
+ return name.equals(IIOPInputStream.class.getName()) ?
|
|
+ new IIOPInputStream() : null;
|
|
}
|
|
|
|
/**
|
|
@@ -958,12 +920,7 @@
|
|
|
|
}
|
|
|
|
- /**
|
|
- * Our JDK 1.3 and JDK 1.3.1 behavior subclasses override this.
|
|
- * The correct behavior is for a Java char to map to a CORBA wchar,
|
|
- * but our older code mapped it to a CORBA char.
|
|
- */
|
|
- protected TCKind getJavaCharTCKind() {
|
|
+ TCKind getJavaCharTCKind() {
|
|
return TCKind.tk_wchar;
|
|
}
|
|
}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/io/ValueUtility.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/io/ValueUtility.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -93,6 +93,22 @@
|
|
null, // tk_abstract_interface 32
|
|
};
|
|
|
|
+ static {
|
|
+ sun.corba.SharedSecrets.setJavaCorbaAccess(new sun.corba.JavaCorbaAccess() {
|
|
+ public ValueHandlerImpl newValueHandlerImpl() {
|
|
+ return ValueHandlerImpl.getInstance();
|
|
+ }
|
|
+ public Class<?> loadClass(String className) throws ClassNotFoundException {
|
|
+ if (Thread.currentThread().getContextClassLoader() != null) {
|
|
+ return Thread.currentThread().getContextClassLoader().
|
|
+ loadClass(className);
|
|
+ } else {
|
|
+ return ClassLoader.getSystemClassLoader().loadClass(className);
|
|
+ }
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
public static String getSignature(ValueMember member)
|
|
throws ClassNotFoundException {
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -128,7 +128,8 @@
|
|
static public void writeEncapsulation( WriteContents obj,
|
|
OutputStream os )
|
|
{
|
|
- EncapsOutputStream out = new EncapsOutputStream( (ORB)os.orb() ) ;
|
|
+ EncapsOutputStream out =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)os.orb());
|
|
|
|
out.putEndian() ;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/GenericTaggedProfile.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/GenericTaggedProfile.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -95,7 +95,8 @@
|
|
|
|
public org.omg.IOP.TaggedProfile getIOPProfile()
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( orb ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(orb);
|
|
write( os ) ;
|
|
InputStream is = (InputStream)(os.create_input_stream()) ;
|
|
return org.omg.IOP.TaggedProfileHelper.read( is ) ;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/IORImpl.java 2012-08-10 09:10:19.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/IORImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -213,7 +213,8 @@
|
|
{
|
|
StringWriter bs;
|
|
|
|
- MarshalOutputStream s = new EncapsOutputStream(factory);
|
|
+ MarshalOutputStream s =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(factory);
|
|
s.putEndian();
|
|
write( (OutputStream)s );
|
|
bs = new StringWriter();
|
|
@@ -237,7 +238,8 @@
|
|
}
|
|
|
|
public org.omg.IOP.IOR getIOPIOR() {
|
|
- EncapsOutputStream os = new EncapsOutputStream(factory);
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(factory);
|
|
write(os);
|
|
InputStream is = (InputStream) (os.create_input_stream());
|
|
return org.omg.IOP.IORHelper.read(is);
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyImpl.java 2012-08-10 09:10:20.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -87,7 +87,8 @@
|
|
|
|
public byte[] getBytes( org.omg.CORBA.ORB orb )
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( (ORB)orb ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)orb);
|
|
write( os ) ;
|
|
return os.toByteArray() ;
|
|
}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/TaggedComponentFactoryFinderImpl.java 2012-08-10 09:10:21.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/TaggedComponentFactoryFinderImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -61,7 +61,8 @@
|
|
public TaggedComponent create( org.omg.CORBA.ORB orb,
|
|
org.omg.IOP.TaggedComponent comp )
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( (ORB)orb ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)orb);
|
|
org.omg.IOP.TaggedComponentHelper.write( os, comp ) ;
|
|
InputStream is = (InputStream)(os.create_input_stream() ) ;
|
|
// Skip the component ID: we just wrote it out above
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java 2012-08-10 09:10:22.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -247,7 +247,8 @@
|
|
|
|
public org.omg.IOP.TaggedProfile getIOPProfile()
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( orb ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(orb);
|
|
os.write_long( getId() ) ;
|
|
write( os ) ;
|
|
InputStream is = (InputStream)(os.create_input_stream()) ;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileTemplateImpl.java 2012-08-10 09:10:22.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileTemplateImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -132,8 +132,9 @@
|
|
// Note that this cannot be accomplished with a codec!
|
|
|
|
// Use the byte order of the given stream
|
|
- OutputStream encapsulatedOS = new EncapsOutputStream( (ORB)os.orb(),
|
|
- ((CDROutputStream)os).isLittleEndian() ) ;
|
|
+ OutputStream encapsulatedOS =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream(
|
|
+ (ORB)os.orb(), ((CDROutputStream)os).isLittleEndian() ) ;
|
|
|
|
okeyTemplate.write( id, encapsulatedOS ) ;
|
|
EncapsulationUtility.writeOutputStream( encapsulatedOS, os ) ;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java 2012-08-10 09:10:23.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -109,9 +109,9 @@
|
|
import com.sun.corba.se.impl.util.Utility;
|
|
import com.sun.corba.se.impl.util.IdentityHashtable;
|
|
import com.sun.corba.se.impl.util.JDKBridge;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.impl.logging.UtilSystemException;
|
|
import com.sun.corba.se.spi.logging.CORBALogDomains;
|
|
+import sun.corba.SharedSecrets;
|
|
|
|
/**
|
|
* Provides utility methods that can be used by stubs and ties to
|
|
@@ -125,7 +125,8 @@
|
|
// Maps targets to ties.
|
|
private static IdentityHashtable exportedServants = new IdentityHashtable();
|
|
|
|
- private static ValueHandlerImpl valueHandlerSingleton = new ValueHandlerImpl();
|
|
+ private static final ValueHandlerImpl valueHandlerSingleton =
|
|
+ SharedSecrets.getJavaCorbaAccess().newValueHandlerImpl();
|
|
|
|
private UtilSystemException utilWrapper = UtilSystemException.get(
|
|
CORBALogDomains.RPC_ENCODING);
|
|
@@ -259,7 +260,7 @@
|
|
return new MarshalException(message,inner);
|
|
} else if (ex instanceof ACTIVITY_REQUIRED) {
|
|
try {
|
|
- Class cl = ORBClassLoader.loadClass(
|
|
+ Class<?> cl = SharedSecrets.getJavaCorbaAccess().loadClass(
|
|
"javax.activity.ActivityRequiredException");
|
|
Class[] params = new Class[2];
|
|
params[0] = java.lang.String.class;
|
|
@@ -275,7 +276,7 @@
|
|
}
|
|
} else if (ex instanceof ACTIVITY_COMPLETED) {
|
|
try {
|
|
- Class cl = ORBClassLoader.loadClass(
|
|
+ Class<?> cl = SharedSecrets.getJavaCorbaAccess().loadClass(
|
|
"javax.activity.ActivityCompletedException");
|
|
Class[] params = new Class[2];
|
|
params[0] = java.lang.String.class;
|
|
@@ -291,7 +292,7 @@
|
|
}
|
|
} else if (ex instanceof INVALID_ACTIVITY) {
|
|
try {
|
|
- Class cl = ORBClassLoader.loadClass(
|
|
+ Class<?> cl = SharedSecrets.getJavaCorbaAccess().loadClass(
|
|
"javax.activity.InvalidActivityException");
|
|
Class[] params = new Class[2];
|
|
params[0] = java.lang.String.class;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orb/ORBDataParserImpl.java 2012-08-10 09:10:31.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orb/ORBDataParserImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -48,7 +48,6 @@
|
|
|
|
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo ;
|
|
import com.sun.corba.se.impl.legacy.connection.USLPort;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader ;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants ;
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2012-08-10 09:10:31.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -152,7 +152,6 @@
|
|
import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
|
|
import com.sun.corba.se.impl.oa.poa.DelegateImpl;
|
|
import com.sun.corba.se.impl.oa.poa.POAFactory;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
import com.sun.corba.se.impl.orbutil.StackImpl;
|
|
@@ -551,7 +550,7 @@
|
|
public synchronized org.omg.CORBA.portable.OutputStream create_output_stream()
|
|
{
|
|
checkShutdownState();
|
|
- return new EncapsOutputStream(this);
|
|
+ return sun.corba.OutputStreamFactory.newEncapsOutputStream(this);
|
|
}
|
|
|
|
/**
|
|
@@ -840,7 +839,7 @@
|
|
// backward compatability 4365188
|
|
CodeBase cb;
|
|
|
|
- ValueHandler vh = ORBUtility.createValueHandler(this);
|
|
+ ValueHandler vh = ORBUtility.createValueHandler();
|
|
|
|
cb = (CodeBase)vh.getRunTimeCodeBase();
|
|
return ORBUtility.connectAndGetIOR( this, cb ) ;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orb/ORBSingleton.java 2012-08-10 09:10:31.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orb/ORBSingleton.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -149,7 +149,7 @@
|
|
}
|
|
|
|
public OutputStream create_output_stream() {
|
|
- return new EncapsOutputStream(this);
|
|
+ return sun.corba.OutputStreamFactory.newEncapsOutputStream(this);
|
|
}
|
|
|
|
public TypeCode create_struct_tc(String id,
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orb/ParserTable.java 2012-08-10 09:10:31.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orb/ParserTable.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,6 @@
|
|
import com.sun.corba.se.impl.legacy.connection.USLPort ;
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
|
|
import com.sun.corba.se.impl.oa.poa.BadServerIdHandler ;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader ;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants ;
|
|
import com.sun.corba.se.impl.protocol.giopmsgheaders.KeyAddr ;
|
|
import com.sun.corba.se.impl.protocol.giopmsgheaders.ProfileAddr ;
|
|
@@ -86,6 +85,8 @@
|
|
import com.sun.corba.se.impl.transport.DefaultIORToSocketInfoImpl;
|
|
import com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl;
|
|
|
|
+import sun.corba.SharedSecrets;
|
|
+
|
|
/** Initialize the parser data for the standard ORB parser. This is used both
|
|
* to implement ORBDataParserImpl and to provide the basic testing framework
|
|
* for ORBDataParserImpl.
|
|
@@ -640,8 +641,8 @@
|
|
String param = (String)value ;
|
|
|
|
try {
|
|
- Class legacySocketFactoryClass =
|
|
- ORBClassLoader.loadClass(param);
|
|
+ Class<?> legacySocketFactoryClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(param);
|
|
// For security reasons avoid creating an instance if
|
|
// this socket factory class is not one that would fail
|
|
// the class cast anyway.
|
|
@@ -670,7 +671,8 @@
|
|
String param = (String)value ;
|
|
|
|
try {
|
|
- Class socketFactoryClass = ORBClassLoader.loadClass(param);
|
|
+ Class<?> socketFactoryClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(param);
|
|
// For security reasons avoid creating an instance if
|
|
// this socket factory class is not one that would fail
|
|
// the class cast anyway.
|
|
@@ -699,7 +701,8 @@
|
|
String param = (String)value ;
|
|
|
|
try {
|
|
- Class iorToSocketInfoClass = ORBClassLoader.loadClass(param);
|
|
+ Class<?> iorToSocketInfoClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(param);
|
|
// For security reasons avoid creating an instance if
|
|
// this socket factory class is not one that would fail
|
|
// the class cast anyway.
|
|
@@ -728,7 +731,8 @@
|
|
String param = (String)value ;
|
|
|
|
try {
|
|
- Class iiopPrimaryToContactInfoClass = ORBClassLoader.loadClass(param);
|
|
+ Class<?> iiopPrimaryToContactInfoClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(param);
|
|
// For security reasons avoid creating an instance if
|
|
// this socket factory class is not one that would fail
|
|
// the class cast anyway.
|
|
@@ -757,8 +761,8 @@
|
|
String param = (String)value ;
|
|
|
|
try {
|
|
- Class contactInfoListFactoryClass =
|
|
- ORBClassLoader.loadClass(param);
|
|
+ Class<?> contactInfoListFactoryClass =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(param);
|
|
// For security reasons avoid creating an instance if
|
|
// this socket factory class is not one that would fail
|
|
// the class cast anyway.
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3.java 2012-08-10 09:10:32.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,57 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.io.*;
|
|
-import java.util.Hashtable;
|
|
-
|
|
-/**
|
|
- * Implements legacy behavior from before Ladybird to maintain
|
|
- * backwards compatibility.
|
|
- */
|
|
-public class IIOPInputStream_1_3 extends com.sun.corba.se.impl.io.IIOPInputStream
|
|
-{
|
|
- // The newer version in the io package correctly reads a wstring instead.
|
|
- // This concerns bug 4379597.
|
|
- protected String internalReadUTF(org.omg.CORBA.portable.InputStream stream)
|
|
- {
|
|
- return stream.read_string();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Before JDK 1.3.1_01, the PutField/GetField implementation
|
|
- * actually sent a Hashtable.
|
|
- */
|
|
- public ObjectInputStream.GetField readFields()
|
|
- throws IOException, ClassNotFoundException, NotActiveException {
|
|
- Hashtable fields = (Hashtable)readObject();
|
|
- return new LegacyHookGetFields(fields);
|
|
- }
|
|
-
|
|
- public IIOPInputStream_1_3()
|
|
- throws java.io.IOException {
|
|
- super();
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3_1.java 2012-08-10 09:10:32.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,54 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-/*
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.io.*;
|
|
-import java.util.Hashtable;
|
|
-
|
|
-/**
|
|
- * Implements legacy behavior from Ladybird to maintain
|
|
- * backwards compatibility.
|
|
- */
|
|
-public class IIOPInputStream_1_3_1 extends com.sun.corba.se.impl.io.IIOPInputStream
|
|
-{
|
|
- public IIOPInputStream_1_3_1()
|
|
- throws java.io.IOException {
|
|
- super();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Before JDK 1.3.1_01, the PutField/GetField implementation
|
|
- * actually sent a Hashtable.
|
|
- */
|
|
- public ObjectInputStream.GetField readFields()
|
|
- throws IOException, ClassNotFoundException, NotActiveException {
|
|
-
|
|
- Hashtable fields = (Hashtable)readObject();
|
|
- return new LegacyHookGetFields(fields);
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3.java 2012-08-10 09:10:32.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,68 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.io.*;
|
|
-
|
|
-/**
|
|
- * Implements legacy behavior from before Ladybird to maintain
|
|
- * backwards compatibility.
|
|
- */
|
|
-public class IIOPOutputStream_1_3 extends com.sun.corba.se.impl.io.IIOPOutputStream
|
|
-{
|
|
- // We can't assume that the superclass's putFields
|
|
- // member will be non-private. We must allow
|
|
- // the RI to run on JDK 1.3.1 FCS as well as
|
|
- // the JDK 1.3.1_01 patch.
|
|
- private ObjectOutputStream.PutField putFields_1_3;
|
|
-
|
|
- // The newer version in the io package correctly writes a wstring instead.
|
|
- // This concerns bug 4379597.
|
|
- protected void internalWriteUTF(org.omg.CORBA.portable.OutputStream stream,
|
|
- String data)
|
|
- {
|
|
- stream.write_string(data);
|
|
- }
|
|
-
|
|
- public IIOPOutputStream_1_3()
|
|
- throws java.io.IOException {
|
|
- super();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Before JDK 1.3.1_01, the PutField/GetField implementation
|
|
- * actually sent a Hashtable.
|
|
- */
|
|
- public ObjectOutputStream.PutField putFields()
|
|
- throws IOException {
|
|
- putFields_1_3 = new LegacyHookPutFields();
|
|
- return putFields_1_3;
|
|
- }
|
|
-
|
|
- public void writeFields()
|
|
- throws IOException {
|
|
- putFields_1_3.write(this);
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3_1.java 2012-08-10 09:10:32.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,66 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-/*
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.io.*;
|
|
-import java.util.Hashtable;
|
|
-
|
|
-/**
|
|
- * Implements legacy behavior from Ladybird to maintain
|
|
- * backwards compatibility.
|
|
- */
|
|
-public class IIOPOutputStream_1_3_1 extends com.sun.corba.se.impl.io.IIOPOutputStream
|
|
-{
|
|
- // We can't assume that the superclass's putFields
|
|
- // member will be non-private. We must allow
|
|
- // the RI to run on JDK 1.3.1 FCS as well as
|
|
- // the JDK 1.3.1_01 patch.
|
|
- private ObjectOutputStream.PutField putFields_1_3_1;
|
|
-
|
|
- public IIOPOutputStream_1_3_1()
|
|
- throws java.io.IOException {
|
|
- super();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Before JDK 1.3.1_01, the PutField/GetField implementation
|
|
- * actually sent a Hashtable.
|
|
- */
|
|
- public ObjectOutputStream.PutField putFields()
|
|
- throws IOException {
|
|
-
|
|
- putFields_1_3_1 = new LegacyHookPutFields();
|
|
- return putFields_1_3_1;
|
|
- }
|
|
-
|
|
- public void writeFields()
|
|
- throws IOException {
|
|
-
|
|
- putFields_1_3_1.write(this);
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBClassLoader.java 2012-08-10 09:10:33.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBClassLoader.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,47 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-/**
|
|
- * Based on feedback from bug report 4452016, all class loading
|
|
- * in the ORB is isolated here. It is acceptable to use
|
|
- * Class.forName only when one is certain that the desired class
|
|
- * should come from the core JDK.
|
|
- */
|
|
-public class ORBClassLoader
|
|
-{
|
|
- public static Class loadClass(String className)
|
|
- throws ClassNotFoundException
|
|
- {
|
|
- return ORBClassLoader.getClassLoader().loadClass(className);
|
|
- }
|
|
-
|
|
- public static ClassLoader getClassLoader() {
|
|
- if (Thread.currentThread().getContextClassLoader() != null)
|
|
- return Thread.currentThread().getContextClassLoader();
|
|
- else
|
|
- return ClassLoader.getSystemClassLoader();
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBUtility.java 2012-08-10 09:10:33.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/ORBUtility.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -90,6 +90,8 @@
|
|
import com.sun.corba.se.impl.logging.OMGSystemException ;
|
|
import com.sun.corba.se.impl.ior.iiop.JavaSerializationComponent;
|
|
|
|
+import sun.corba.SharedSecrets;
|
|
+
|
|
/**
|
|
* Handy class full of static functions that don't belong in util.Utility for pure ORB reasons.
|
|
*/
|
|
@@ -160,45 +162,13 @@
|
|
}
|
|
|
|
/**
|
|
- * Creates the correct ValueHandler for the given ORB,
|
|
- * querying ORBVersion information. If the ORB or
|
|
- * ORBVersion is null, gets the ValueHandler from
|
|
- * Util.createValueHandler.
|
|
+ * Return default ValueHandler
|
|
*/
|
|
- public static ValueHandler createValueHandler(ORB orb) {
|
|
-
|
|
- if (orb == null)
|
|
- return Util.createValueHandler();
|
|
-
|
|
- ORBVersion version = orb.getORBVersion();
|
|
-
|
|
- if (version == null)
|
|
- return Util.createValueHandler();
|
|
-
|
|
- if (version.equals(ORBVersionFactory.getOLD()))
|
|
- return new ValueHandlerImpl_1_3();
|
|
- if (version.equals(ORBVersionFactory.getNEW()))
|
|
- return new ValueHandlerImpl_1_3_1();
|
|
-
|
|
+ public static ValueHandler createValueHandler() {
|
|
return Util.createValueHandler();
|
|
}
|
|
|
|
/**
|
|
- * Returns true if the given ORB could accurately be determined to be a
|
|
- * Kestrel or earlier ORB. Note: If passed the ORBSingleton, this will return
|
|
- * false.
|
|
- */
|
|
- public static boolean isLegacyORB(ORB orb)
|
|
- {
|
|
- try {
|
|
- ORBVersion currentORB = orb.getORBVersion();
|
|
- return currentORB.equals( ORBVersionFactory.getOLD() ) ;
|
|
- } catch (SecurityException se) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
* Returns true if it was accurately determined that the remote ORB is
|
|
* a foreign (non-JavaSoft) ORB. Note: If passed the ORBSingleton, this
|
|
* will return false.
|
|
@@ -294,8 +264,8 @@
|
|
{
|
|
try {
|
|
String name = classNameOf(strm.read_string());
|
|
- SystemException ex
|
|
- = (SystemException)ORBClassLoader.loadClass(name).newInstance();
|
|
+ SystemException ex = (SystemException)SharedSecrets.
|
|
+ getJavaCorbaAccess().loadClass(name).newInstance();
|
|
ex.minor = strm.read_long();
|
|
ex.completed = CompletionStatus.from_int(strm.read_long());
|
|
return ex;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java 2012-08-10 09:10:33.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -1119,8 +1119,8 @@
|
|
private boolean hasExternalizableBlockData;
|
|
Method writeObjectMethod;
|
|
Method readObjectMethod;
|
|
- private Method writeReplaceObjectMethod;
|
|
- private Method readResolveObjectMethod;
|
|
+ private transient Method writeReplaceObjectMethod;
|
|
+ private transient Method readResolveObjectMethod;
|
|
|
|
/*
|
|
* ObjectStreamClass_1_3_1 that this one was built from.
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3.java 2012-08-10 09:10:33.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,177 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import org.omg.CORBA.ORB;
|
|
-import java.io.Serializable;
|
|
-import java.util.Hashtable;
|
|
-import java.net.MalformedURLException;
|
|
-import com.sun.corba.se.impl.io.TypeMismatchException;
|
|
-import com.sun.corba.se.impl.util.RepositoryId;
|
|
-
|
|
-/**
|
|
- * Delegates to the RepositoryId_1_3 implementation in
|
|
- * com.sun.corba.se.impl.orbutil. This is necessary to
|
|
- * overcome the fact that many of RepositoryId's methods
|
|
- * are static.
|
|
- */
|
|
-public final class RepIdDelegator_1_3
|
|
- implements RepositoryIdStrings,
|
|
- RepositoryIdUtility,
|
|
- RepositoryIdInterface
|
|
-{
|
|
- // RepositoryIdFactory methods
|
|
-
|
|
- public String createForAnyType(Class type) {
|
|
- return RepositoryId_1_3.createForAnyType(type);
|
|
- }
|
|
-
|
|
- public String createForJavaType(Serializable ser)
|
|
- throws TypeMismatchException
|
|
- {
|
|
- return RepositoryId_1_3.createForJavaType(ser);
|
|
- }
|
|
-
|
|
- public String createForJavaType(Class clz)
|
|
- throws TypeMismatchException
|
|
- {
|
|
- return RepositoryId_1_3.createForJavaType(clz);
|
|
- }
|
|
-
|
|
- public String createSequenceRepID(java.lang.Object ser) {
|
|
- return RepositoryId_1_3.createSequenceRepID(ser);
|
|
- }
|
|
-
|
|
- public String createSequenceRepID(Class clazz) {
|
|
- return RepositoryId_1_3.createSequenceRepID(clazz);
|
|
- }
|
|
-
|
|
- public RepositoryIdInterface getFromString(String repIdString) {
|
|
- return new RepIdDelegator_1_3(RepositoryId_1_3.cache.getId(repIdString));
|
|
- }
|
|
-
|
|
- // RepositoryIdUtility methods
|
|
-
|
|
- public boolean isChunkedEncoding(int valueTag) {
|
|
- return RepositoryId.isChunkedEncoding(valueTag);
|
|
- }
|
|
-
|
|
- public boolean isCodeBasePresent(int valueTag) {
|
|
- return RepositoryId.isCodeBasePresent(valueTag);
|
|
- }
|
|
-
|
|
- public String getClassDescValueRepId() {
|
|
- return RepositoryId_1_3.kClassDescValueRepID;
|
|
- }
|
|
-
|
|
- public String getWStringValueRepId() {
|
|
- return RepositoryId_1_3.kWStringValueRepID;
|
|
- }
|
|
-
|
|
- public int getTypeInfo(int valueTag) {
|
|
- return RepositoryId.getTypeInfo(valueTag);
|
|
- }
|
|
-
|
|
- public int getStandardRMIChunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIChunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIChunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIChunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getStandardRMIChunkedId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIChunked;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIChunkedId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIChunked;
|
|
- }
|
|
-
|
|
- public int getStandardRMIUnchunkedId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIUnchunked;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIUnchunkedId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIUnchunked;
|
|
- }
|
|
-
|
|
- public int getStandardRMIUnchunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIUnchunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIUnchunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIUnchunked_NoRep;
|
|
- }
|
|
-
|
|
- // RepositoryIdInterface methods
|
|
-
|
|
- public Class getClassFromType() throws ClassNotFoundException {
|
|
- return delegate.getClassFromType();
|
|
- }
|
|
-
|
|
- public Class getClassFromType(String codebaseURL)
|
|
- throws ClassNotFoundException, MalformedURLException
|
|
- {
|
|
- return delegate.getClassFromType(codebaseURL);
|
|
- }
|
|
-
|
|
- public Class getClassFromType(Class expectedType,
|
|
- String codebaseURL)
|
|
- throws ClassNotFoundException, MalformedURLException
|
|
- {
|
|
- return delegate.getClassFromType(expectedType, codebaseURL);
|
|
- }
|
|
-
|
|
- public String getClassName() {
|
|
- return delegate.getClassName();
|
|
- }
|
|
-
|
|
- // Constructor used for factory/utility cases
|
|
- public RepIdDelegator_1_3() {}
|
|
-
|
|
- // Constructor used by getIdFromString. All non-static
|
|
- // RepositoryId methods will use the provided delegate.
|
|
- private RepIdDelegator_1_3(RepositoryId_1_3 _delegate) {
|
|
- this.delegate = _delegate;
|
|
- }
|
|
-
|
|
- private RepositoryId_1_3 delegate = null;
|
|
-
|
|
- public String toString() {
|
|
- if (delegate != null)
|
|
- return delegate.toString();
|
|
- else
|
|
- return this.getClass().getName();
|
|
- }
|
|
-
|
|
- public boolean equals(Object obj) {
|
|
- if (delegate != null)
|
|
- return delegate.equals(obj);
|
|
- else
|
|
- return super.equals(obj);
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3_1.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,177 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import org.omg.CORBA.ORB;
|
|
-import java.io.Serializable;
|
|
-import java.util.Hashtable;
|
|
-import java.net.MalformedURLException;
|
|
-import com.sun.corba.se.impl.io.TypeMismatchException;
|
|
-import com.sun.corba.se.impl.util.RepositoryId;
|
|
-
|
|
-/**
|
|
- * Delegates to the RepositoryId_1_3_1 implementation in
|
|
- * com.sun.corba.se.impl.orbutil. This is necessary to
|
|
- * overcome the fact that many of RepositoryId's methods
|
|
- * are static.
|
|
- */
|
|
-public final class RepIdDelegator_1_3_1
|
|
- implements RepositoryIdStrings,
|
|
- RepositoryIdUtility,
|
|
- RepositoryIdInterface
|
|
-{
|
|
- // RepositoryIdFactory methods
|
|
-
|
|
- public String createForAnyType(Class type) {
|
|
- return RepositoryId_1_3_1.createForAnyType(type);
|
|
- }
|
|
-
|
|
- public String createForJavaType(Serializable ser)
|
|
- throws TypeMismatchException
|
|
- {
|
|
- return RepositoryId_1_3_1.createForJavaType(ser);
|
|
- }
|
|
-
|
|
- public String createForJavaType(Class clz)
|
|
- throws TypeMismatchException
|
|
- {
|
|
- return RepositoryId_1_3_1.createForJavaType(clz);
|
|
- }
|
|
-
|
|
- public String createSequenceRepID(java.lang.Object ser) {
|
|
- return RepositoryId_1_3_1.createSequenceRepID(ser);
|
|
- }
|
|
-
|
|
- public String createSequenceRepID(Class clazz) {
|
|
- return RepositoryId_1_3_1.createSequenceRepID(clazz);
|
|
- }
|
|
-
|
|
- public RepositoryIdInterface getFromString(String repIdString) {
|
|
- return new RepIdDelegator_1_3_1(RepositoryId_1_3_1.cache.getId(repIdString));
|
|
- }
|
|
-
|
|
- // RepositoryIdUtility methods
|
|
-
|
|
- public boolean isChunkedEncoding(int valueTag) {
|
|
- return RepositoryId.isChunkedEncoding(valueTag);
|
|
- }
|
|
-
|
|
- public boolean isCodeBasePresent(int valueTag) {
|
|
- return RepositoryId.isCodeBasePresent(valueTag);
|
|
- }
|
|
-
|
|
- public String getClassDescValueRepId() {
|
|
- return RepositoryId_1_3_1.kClassDescValueRepID;
|
|
- }
|
|
-
|
|
- public String getWStringValueRepId() {
|
|
- return RepositoryId_1_3_1.kWStringValueRepID;
|
|
- }
|
|
-
|
|
- public int getTypeInfo(int valueTag) {
|
|
- return RepositoryId.getTypeInfo(valueTag);
|
|
- }
|
|
-
|
|
- public int getStandardRMIChunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIChunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIChunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIChunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getStandardRMIChunkedId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIChunked;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIChunkedId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIChunked;
|
|
- }
|
|
-
|
|
- public int getStandardRMIUnchunkedId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIUnchunked;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIUnchunkedId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIUnchunked;
|
|
- }
|
|
-
|
|
- public int getStandardRMIUnchunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_StandardRMIUnchunked_NoRep;
|
|
- }
|
|
-
|
|
- public int getCodeBaseRMIUnchunkedNoRepStrId() {
|
|
- return RepositoryId.kPreComputed_CodeBaseRMIUnchunked_NoRep;
|
|
- }
|
|
-
|
|
- // RepositoryIdInterface methods
|
|
-
|
|
- public Class getClassFromType() throws ClassNotFoundException {
|
|
- return delegate.getClassFromType();
|
|
- }
|
|
-
|
|
- public Class getClassFromType(String codebaseURL)
|
|
- throws ClassNotFoundException, MalformedURLException
|
|
- {
|
|
- return delegate.getClassFromType(codebaseURL);
|
|
- }
|
|
-
|
|
- public Class getClassFromType(Class expectedType,
|
|
- String codebaseURL)
|
|
- throws ClassNotFoundException, MalformedURLException
|
|
- {
|
|
- return delegate.getClassFromType(expectedType, codebaseURL);
|
|
- }
|
|
-
|
|
- public String getClassName() {
|
|
- return delegate.getClassName();
|
|
- }
|
|
-
|
|
- // Constructor used for factory/utility cases
|
|
- public RepIdDelegator_1_3_1() {}
|
|
-
|
|
- // Constructor used by getIdFromString. All non-static
|
|
- // RepositoryId methods will use the provided delegate.
|
|
- private RepIdDelegator_1_3_1(RepositoryId_1_3_1 _delegate) {
|
|
- this.delegate = _delegate;
|
|
- }
|
|
-
|
|
- private RepositoryId_1_3_1 delegate = null;
|
|
-
|
|
- public String toString() {
|
|
- if (delegate != null)
|
|
- return delegate.toString();
|
|
- else
|
|
- return this.getClass().getName();
|
|
- }
|
|
-
|
|
- public boolean equals(Object obj) {
|
|
- if (delegate != null)
|
|
- return delegate.equals(obj);
|
|
- else
|
|
- return super.equals(obj);
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,108 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-/*
|
|
- * Licensed Materials - Property of IBM
|
|
- * RMI-IIOP v1.0
|
|
- * Copyright IBM Corp. 1998 1999 All Rights Reserved
|
|
- *
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.util.Stack;
|
|
-import java.util.Hashtable;
|
|
-import java.util.EmptyStackException;
|
|
-import java.util.Enumeration;
|
|
-
|
|
-// Really limited pool - in this case just creating several at a time...
|
|
-class RepositoryIdPool_1_3 extends Stack {
|
|
-
|
|
- private static int MAX_CACHE_SIZE = 4;
|
|
- private RepositoryIdCache_1_3 cache;
|
|
-
|
|
- public final synchronized RepositoryId_1_3 popId() {
|
|
-
|
|
- try {
|
|
- return (RepositoryId_1_3)super.pop();
|
|
- }
|
|
- catch(EmptyStackException e) {
|
|
- increasePool(5);
|
|
- return (RepositoryId_1_3)super.pop();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- // Pool management
|
|
- final void increasePool(int size) {
|
|
- //if (cache.size() <= MAX_CACHE_SIZE)
|
|
- for (int i = size; i > 0; i--)
|
|
- push(new RepositoryId_1_3());
|
|
- /*
|
|
- // _REVISIT_ This will not work w/out either thread tracing or weak references. I am
|
|
- // betting that thread tracing almost completely negates benefit of reuse. Until either
|
|
- // 1.2 only inclusion or proof to the contrary, I'll leave it this way...
|
|
- else {
|
|
- int numToReclaim = cache.size() / 2;
|
|
- Enumeration keys = cache.keys();
|
|
- Enumeration elements = cache.elements();
|
|
- for (int i = numToReclaim; i > 0; i--) {
|
|
- Object key = keys.nextElement();
|
|
- Object element = elements.nextElement();
|
|
-
|
|
- push(element);
|
|
- cache.remove(key);
|
|
- }
|
|
- }
|
|
- */
|
|
- }
|
|
-
|
|
- final void setCaches(RepositoryIdCache_1_3 cache) {
|
|
- this.cache = cache;
|
|
- }
|
|
-
|
|
-}
|
|
-
|
|
-public class RepositoryIdCache_1_3 extends Hashtable {
|
|
-
|
|
- private RepositoryIdPool_1_3 pool = new RepositoryIdPool_1_3();
|
|
-
|
|
- public RepositoryIdCache_1_3() {
|
|
- pool.setCaches(this);
|
|
- }
|
|
-
|
|
- public final synchronized RepositoryId_1_3 getId(String key) {
|
|
- RepositoryId_1_3 repId = (RepositoryId_1_3)super.get(key);
|
|
-
|
|
- if (repId != null)
|
|
- return repId;
|
|
- else {
|
|
- //repId = pool.popId().init(key);
|
|
- repId = new RepositoryId_1_3(key);
|
|
- put(key, repId);
|
|
- return repId;
|
|
- }
|
|
-
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3_1.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,102 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.util.Stack;
|
|
-import java.util.Hashtable;
|
|
-import java.util.EmptyStackException;
|
|
-import java.util.Enumeration;
|
|
-
|
|
-// Really limited pool - in this case just creating several at a time...
|
|
-class RepositoryIdPool_1_3_1 extends Stack {
|
|
-
|
|
- private static int MAX_CACHE_SIZE = 4;
|
|
- private RepositoryIdCache_1_3_1 cache;
|
|
-
|
|
- public final synchronized RepositoryId_1_3_1 popId() {
|
|
-
|
|
- try {
|
|
- return (RepositoryId_1_3_1)super.pop();
|
|
- }
|
|
- catch(EmptyStackException e) {
|
|
- increasePool(5);
|
|
- return (RepositoryId_1_3_1)super.pop();
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- // Pool management
|
|
- final void increasePool(int size) {
|
|
- //if (cache.size() <= MAX_CACHE_SIZE)
|
|
- for (int i = size; i > 0; i--)
|
|
- push(new RepositoryId_1_3_1());
|
|
- /*
|
|
- // _REVISIT_ This will not work w/out either thread tracing or weak references. I am
|
|
- // betting that thread tracing almost completely negates benefit of reuse. Until either
|
|
- // 1.2 only inclusion or proof to the contrary, I'll leave it this way...
|
|
- else {
|
|
- int numToReclaim = cache.size() / 2;
|
|
- Enumeration keys = cache.keys();
|
|
- Enumeration elements = cache.elements();
|
|
- for (int i = numToReclaim; i > 0; i--) {
|
|
- Object key = keys.nextElement();
|
|
- Object element = elements.nextElement();
|
|
-
|
|
- push(element);
|
|
- cache.remove(key);
|
|
- }
|
|
- }
|
|
- */
|
|
- }
|
|
-
|
|
- final void setCaches(RepositoryIdCache_1_3_1 cache) {
|
|
- this.cache = cache;
|
|
- }
|
|
-
|
|
-}
|
|
-
|
|
-public class RepositoryIdCache_1_3_1 extends Hashtable {
|
|
-
|
|
- private RepositoryIdPool_1_3_1 pool = new RepositoryIdPool_1_3_1();
|
|
-
|
|
- public RepositoryIdCache_1_3_1() {
|
|
- pool.setCaches(this);
|
|
- }
|
|
-
|
|
- public final synchronized RepositoryId_1_3_1 getId(String key) {
|
|
- RepositoryId_1_3_1 repId = (RepositoryId_1_3_1)super.get(key);
|
|
-
|
|
- if (repId != null)
|
|
- return repId;
|
|
- else {
|
|
- //repId = pool.popId().init(key);
|
|
- repId = new RepositoryId_1_3_1(key);
|
|
- put(key, repId);
|
|
- return repId;
|
|
- }
|
|
-
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdFactory.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdFactory.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -30,12 +30,6 @@
|
|
|
|
public abstract class RepositoryIdFactory
|
|
{
|
|
- private static final RepIdDelegator_1_3 legacyDelegator
|
|
- = new RepIdDelegator_1_3();
|
|
-
|
|
- private static final RepIdDelegator_1_3_1 ladybirdDelegator
|
|
- = new RepIdDelegator_1_3_1();
|
|
-
|
|
private static final RepIdDelegator currentDelegator
|
|
= new RepIdDelegator();
|
|
|
|
@@ -48,29 +42,6 @@
|
|
}
|
|
|
|
/**
|
|
- * Checks the version of the ORB and returns the appropriate
|
|
- * RepositoryIdStrings instance.
|
|
- */
|
|
- public static RepositoryIdStrings getRepIdStringsFactory(ORB orb)
|
|
- {
|
|
- if (orb != null) {
|
|
- switch (orb.getORBVersion().getORBType()) {
|
|
- case ORBVersion.NEWER:
|
|
- case ORBVersion.FOREIGN:
|
|
- case ORBVersion.JDK1_3_1_01:
|
|
- return currentDelegator;
|
|
- case ORBVersion.OLD:
|
|
- return legacyDelegator;
|
|
- case ORBVersion.NEW:
|
|
- return ladybirdDelegator;
|
|
- default:
|
|
- return currentDelegator;
|
|
- }
|
|
- } else
|
|
- return currentDelegator;
|
|
- }
|
|
-
|
|
- /**
|
|
* Returns the latest version RepositoryIdUtility instance
|
|
*/
|
|
public static RepositoryIdUtility getRepIdUtility()
|
|
@@ -78,26 +49,4 @@
|
|
return currentDelegator;
|
|
}
|
|
|
|
- /**
|
|
- * Checks the version of the ORB and returns the appropriate
|
|
- * RepositoryIdUtility instance.
|
|
- */
|
|
- public static RepositoryIdUtility getRepIdUtility(ORB orb)
|
|
- {
|
|
- if (orb != null) {
|
|
- switch (orb.getORBVersion().getORBType()) {
|
|
- case ORBVersion.NEWER:
|
|
- case ORBVersion.FOREIGN:
|
|
- case ORBVersion.JDK1_3_1_01:
|
|
- return currentDelegator;
|
|
- case ORBVersion.OLD:
|
|
- return legacyDelegator;
|
|
- case ORBVersion.NEW:
|
|
- return ladybirdDelegator;
|
|
- default:
|
|
- return currentDelegator;
|
|
- }
|
|
- } else
|
|
- return currentDelegator;
|
|
- }
|
|
}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,990 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-/*
|
|
- * Licensed Materials - Property of IBM
|
|
- * RMI-IIOP v1.0
|
|
- * Copyright IBM Corp. 1998 1999 All Rights Reserved
|
|
- *
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import java.util.StringTokenizer;
|
|
-import java.util.Hashtable;
|
|
-import java.io.IOException;
|
|
-import java.lang.reflect.Method;
|
|
-
|
|
-// Imports for using codebase URL to load class
|
|
-import java.net.MalformedURLException;
|
|
-import org.omg.CORBA.portable.ValueBase;
|
|
-import org.omg.CORBA.portable.IDLEntity;
|
|
-
|
|
-import com.sun.corba.se.impl.util.JDKBridge;
|
|
-import com.sun.corba.se.impl.util.Utility;
|
|
-import com.sun.corba.se.impl.util.PackagePrefixChecker;
|
|
-import com.sun.corba.se.impl.util.IdentityHashtable;
|
|
-import com.sun.corba.se.impl.io.ObjectStreamClass;
|
|
-
|
|
-import javax.rmi.CORBA.Util;
|
|
-
|
|
-// keeping the original RepositoryId class that was shipped in
|
|
-// JDK 1.3. It has interoperability bugs
|
|
-
|
|
-public class RepositoryId_1_3 {
|
|
-
|
|
- // Legal IDL Identifier characters (1 = legal). Note
|
|
- // that '.' (2E) is marked as legal even though it is
|
|
- // not legal in IDL. This allows us to treat a fully
|
|
- // qualified Java name with '.' package separators
|
|
- // uniformly, and is safe because that is the only
|
|
- // legal use of '.' in a Java name.
|
|
-
|
|
- public static final RepositoryIdCache_1_3 cache = new RepositoryIdCache_1_3();
|
|
- private static final byte[] IDL_IDENTIFIER_CHARS = {
|
|
-
|
|
- // 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 10-1f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,0, // 20-2f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,0,0, 0,0,0,0, // 30-3f
|
|
- 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 40-4f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,1, // 50-5f
|
|
- 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 60-6f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0, // 70-7f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 80-8f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 90-9f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // a0-af
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // b0-bf
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // c0-cf
|
|
- 0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // d0-df
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // e0-ef
|
|
- 0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // f0-ff
|
|
- };
|
|
-
|
|
- private static String defaultServerURL = null;
|
|
- private static boolean useCodebaseOnly = false;
|
|
-
|
|
- static {
|
|
- if (defaultServerURL == null)
|
|
- defaultServerURL = (String)JDKBridge.getLocalCodebase();
|
|
- useCodebaseOnly = JDKBridge.useCodebaseOnly();
|
|
-
|
|
- }
|
|
-
|
|
- private static IdentityHashtable classToRepStr = new IdentityHashtable();
|
|
- private static IdentityHashtable classIDLToRepStr = new IdentityHashtable();
|
|
- private static IdentityHashtable classSeqToRepStr = new IdentityHashtable();
|
|
-
|
|
- private static IdentityHashtable repStrToByteArray = new IdentityHashtable();
|
|
- private static Hashtable repStrToClass = new Hashtable();
|
|
-
|
|
- private String repId = null;
|
|
- private boolean isSupportedFormat = true;
|
|
- private String typeString = null;
|
|
- private String versionString = null;
|
|
- private boolean isSequence = false;
|
|
- private boolean isRMIValueType = false;
|
|
- private boolean isIDLType = false;
|
|
- private String completeClassName = null;
|
|
- private String unqualifiedName = null;
|
|
- private String definedInId = null;
|
|
- private Class clazz = null;
|
|
- private String suid = null, actualSuid = null;
|
|
- private long suidLong = ObjectStreamClass.kDefaultUID, actualSuidLong = ObjectStreamClass.kDefaultUID;
|
|
-
|
|
- // Repository ID fragments
|
|
- private static final String kValuePrefix = "RMI:";
|
|
- private static final String kIDLPrefix = "IDL:";
|
|
- private static final String kIDLNamePrefix = "omg.org/";
|
|
- private static final String kIDLClassnamePrefix = "org.omg.";
|
|
- private static final String kSequencePrefix = "[";
|
|
- private static final String kCORBAPrefix = "CORBA/";
|
|
- private static final String kArrayPrefix = kValuePrefix + kSequencePrefix + kCORBAPrefix;
|
|
- private static final int kValuePrefixLength = kValuePrefix.length();
|
|
- private static final int kIDLPrefixLength = kIDLPrefix.length();
|
|
- private static final int kSequencePrefixLength = kSequencePrefix.length();
|
|
- private static final String kInterfaceHashCode = ":0000000000000000";
|
|
- private static final String kInterfaceOnlyHashStr = "0000000000000000";
|
|
- private static final String kExternalizableHashStr = "0000000000000001";
|
|
-
|
|
- // Value tag utility methods and constants
|
|
- public static final int kInitialValueTag= 0x7fffff00;
|
|
- public static final int kNoTypeInfo = 0;
|
|
- public static final int kSingleRepTypeInfo = 0x02;
|
|
- public static final int kPartialListTypeInfo = 0x06;
|
|
- public static final int kChunkedMask = 0x08;
|
|
-
|
|
- // Public, well known repository IDs
|
|
-
|
|
- // _REVISIT_ : A table structure with a good search routine for all of this
|
|
- // would be more efficient and easier to maintain...
|
|
-
|
|
- // String
|
|
- public static final String kWStringValueVersion = "1.0";
|
|
- public static final String kWStringValueHash = ":"+kWStringValueVersion;
|
|
- public static final String kWStringStubValue = "WStringValue";
|
|
- public static final String kWStringTypeStr = "omg.org/CORBA/"+kWStringStubValue;
|
|
- public static final String kWStringValueRepID = kIDLPrefix + kWStringTypeStr + kWStringValueHash;
|
|
-
|
|
- // Any
|
|
- public static final String kAnyRepID = kIDLPrefix + "omg.org/CORBA/Any";
|
|
-
|
|
- // Class
|
|
- public static final String kClassDescValueHash = ":" + Long.toHexString(
|
|
- ObjectStreamClass.getSerialVersionUID(javax.rmi.CORBA.ClassDesc.class));
|
|
- public static final String kClassDescStubValue = "ClassDesc";
|
|
- public static final String kClassDescTypeStr = "javax.rmi.CORBA."+kClassDescStubValue;
|
|
- public static final String kClassDescValueRepID = kValuePrefix + kClassDescTypeStr + kClassDescValueHash;
|
|
-
|
|
- // Object
|
|
- public static final String kObjectValueHash = ":1.0";
|
|
- public static final String kObjectStubValue = "Object";
|
|
-
|
|
- // Sequence
|
|
- public static final String kSequenceValueHash = ":1.0";
|
|
- public static final String kPrimitiveSequenceValueHash = ":0000000000000000";
|
|
-
|
|
- // Serializable
|
|
- public static final String kSerializableValueHash = ":1.0";
|
|
- public static final String kSerializableStubValue = "Serializable";
|
|
-
|
|
- // Externalizable
|
|
- public static final String kExternalizableValueHash = ":1.0";
|
|
- public static final String kExternalizableStubValue = "Externalizable";
|
|
-
|
|
- // Remote (The empty string is used for java.rmi.Remote)
|
|
- public static final String kRemoteValueHash = "";
|
|
- public static final String kRemoteStubValue = "";
|
|
- public static final String kRemoteTypeStr = "";
|
|
- public static final String kRemoteValueRepID = "";
|
|
-
|
|
- private static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialArrayTypeStrings.put("CORBA.WStringValue", new StringBuffer(java.lang.String.class.getName()));
|
|
- kSpecialArrayTypeStrings.put("javax.rmi.CORBA.ClassDesc", new StringBuffer(java.lang.Class.class.getName()));
|
|
- kSpecialArrayTypeStrings.put("CORBA.Object", new StringBuffer(java.rmi.Remote.class.getName()));
|
|
-
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesRepIDs.put(java.lang.String.class, kWStringValueRepID);
|
|
- kSpecialCasesRepIDs.put(java.lang.Class.class, kClassDescValueRepID);
|
|
- kSpecialCasesRepIDs.put(java.rmi.Remote.class, kRemoteValueRepID);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesStubValues.put(java.lang.String.class, kWStringStubValue);
|
|
- kSpecialCasesStubValues.put(java.lang.Class.class, kClassDescStubValue);
|
|
- kSpecialCasesStubValues.put(java.lang.Object.class, kObjectStubValue);
|
|
- kSpecialCasesStubValues.put(java.io.Serializable.class, kSerializableStubValue);
|
|
- kSpecialCasesStubValues.put(java.io.Externalizable.class, kExternalizableStubValue);
|
|
- kSpecialCasesStubValues.put(java.rmi.Remote.class, kRemoteStubValue);
|
|
- }
|
|
-
|
|
-
|
|
- private static final Hashtable kSpecialCasesVersions = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesVersions.put(java.lang.String.class, kWStringValueHash);
|
|
- kSpecialCasesVersions.put(java.lang.Class.class, kClassDescValueHash);
|
|
- kSpecialCasesVersions.put(java.lang.Object.class, kObjectValueHash);
|
|
- kSpecialCasesVersions.put(java.io.Serializable.class, kSerializableValueHash);
|
|
- kSpecialCasesVersions.put(java.io.Externalizable.class, kExternalizableValueHash);
|
|
- kSpecialCasesVersions.put(java.rmi.Remote.class, kRemoteValueHash);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesClasses = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesClasses.put(kWStringTypeStr, java.lang.String.class);
|
|
- kSpecialCasesClasses.put(kClassDescTypeStr, java.lang.Class.class);
|
|
- kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
|
-
|
|
- kSpecialCasesClasses.put("org.omg.CORBA.WStringValue", java.lang.String.class);
|
|
- kSpecialCasesClasses.put("javax.rmi.CORBA.ClassDesc", java.lang.Class.class);
|
|
- //kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesArrayPrefix.put(java.lang.String.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
|
- kSpecialCasesArrayPrefix.put(java.lang.Class.class, kValuePrefix + kSequencePrefix + "javax/rmi/CORBA/");
|
|
- kSpecialCasesArrayPrefix.put(java.lang.Object.class, kValuePrefix + kSequencePrefix + "java/lang/");
|
|
- kSpecialCasesArrayPrefix.put(java.io.Serializable.class, kValuePrefix + kSequencePrefix + "java/io/");
|
|
- kSpecialCasesArrayPrefix.put(java.io.Externalizable.class, kValuePrefix + kSequencePrefix + "java/io/");
|
|
- kSpecialCasesArrayPrefix.put(java.rmi.Remote.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialPrimitives = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialPrimitives.put("int","long");
|
|
- kSpecialPrimitives.put("long","longlong");
|
|
- kSpecialPrimitives.put("byte","octet");
|
|
- }
|
|
-
|
|
- /**
|
|
- * Used to convert ascii to hex.
|
|
- */
|
|
- private static final byte ASCII_HEX[] = {
|
|
- (byte)'0',
|
|
- (byte)'1',
|
|
- (byte)'2',
|
|
- (byte)'3',
|
|
- (byte)'4',
|
|
- (byte)'5',
|
|
- (byte)'6',
|
|
- (byte)'7',
|
|
- (byte)'8',
|
|
- (byte)'9',
|
|
- (byte)'A',
|
|
- (byte)'B',
|
|
- (byte)'C',
|
|
- (byte)'D',
|
|
- (byte)'E',
|
|
- (byte)'F',
|
|
- };
|
|
-
|
|
-
|
|
- // Interface Rep ID Strings
|
|
- public static final String kjava_rmi_Remote = createForAnyType(java.rmi.Remote.class);
|
|
- public static final String korg_omg_CORBA_Object = createForAnyType(org.omg.CORBA.Object.class);
|
|
-
|
|
- // Dummy arguments for getIdFromHelper method
|
|
- public static final Class kNoParamTypes[] ={};
|
|
- public static final Object kNoArgs[] = {};
|
|
-
|
|
-
|
|
- RepositoryId_1_3(){}
|
|
-
|
|
- RepositoryId_1_3(String aRepId){
|
|
- init(aRepId);
|
|
- }
|
|
-
|
|
- RepositoryId_1_3 init(String aRepId){
|
|
-
|
|
- this.repId = aRepId;
|
|
-
|
|
- // Special case for remote
|
|
- if (aRepId.length() == 0) {
|
|
- clazz = java.rmi.Remote.class;
|
|
- typeString = "";
|
|
- isRMIValueType = true;
|
|
- suid = kInterfaceOnlyHashStr;
|
|
- return this;
|
|
- }
|
|
- else if (aRepId.equals(kWStringValueRepID)) {
|
|
- clazz = java.lang.String.class;
|
|
- typeString = kWStringTypeStr;
|
|
- isIDLType = true;
|
|
- versionString = kWStringValueVersion;
|
|
- return this;
|
|
- }
|
|
- else {
|
|
-
|
|
- String repId = convertFromISOLatin1(aRepId);
|
|
-
|
|
- versionString = repId.substring(repId.indexOf(':', repId.indexOf(':')+1));
|
|
- if (repId.startsWith(kIDLPrefix)) {
|
|
- typeString =
|
|
- repId.substring(kIDLPrefixLength, repId.indexOf(':', kIDLPrefixLength));
|
|
- isIDLType = true;
|
|
- if (typeString.startsWith(kIDLNamePrefix))
|
|
- completeClassName = kIDLClassnamePrefix +
|
|
- typeString.substring(kIDLNamePrefix.length()).replace('/','.');
|
|
- else completeClassName = typeString.replace('/','.');
|
|
-
|
|
- }
|
|
- else if (repId.startsWith(kValuePrefix)) {
|
|
- typeString =
|
|
- repId.substring(kValuePrefixLength, repId.indexOf(':', kValuePrefixLength));
|
|
- isRMIValueType = true;
|
|
-
|
|
- if (versionString.indexOf('.') == -1) {
|
|
- actualSuid = versionString.substring(1);
|
|
- suid = actualSuid; // default if not explicitly specified
|
|
-
|
|
- if (actualSuid.indexOf(':') != -1){
|
|
- // we have a declared hash also
|
|
- int pos = actualSuid.indexOf(':')+1;
|
|
- // actualSuid = suid.substring(pos);
|
|
- // suid = suid.substring(0, pos-1);
|
|
- suid = actualSuid.substring(pos);
|
|
- actualSuid = actualSuid.substring(0, pos-1);
|
|
- }
|
|
-
|
|
- }
|
|
- else {
|
|
- // _REVISIT_ : Special case version failure ?
|
|
- }
|
|
- }
|
|
- else isSupportedFormat = false;
|
|
-
|
|
- if (typeString.startsWith(kSequencePrefix)) {
|
|
- isSequence = true;
|
|
- }
|
|
-
|
|
-
|
|
- return this;
|
|
- }
|
|
- }
|
|
-
|
|
- public final String getUnqualifiedName() {
|
|
- if (unqualifiedName == null){
|
|
- String className = getClassName();
|
|
- int index = (className != null) ? className.lastIndexOf('.') : -1;
|
|
- if (index == -1){
|
|
- unqualifiedName = className;
|
|
- definedInId = "IDL::1.0";
|
|
- }
|
|
- else {
|
|
- unqualifiedName = className.substring(index);
|
|
- definedInId = "IDL:" + className.substring(0, index).replace('.','/') + ":1.0";
|
|
- }
|
|
- }
|
|
-
|
|
- return unqualifiedName;
|
|
- }
|
|
-
|
|
- public final String getDefinedInId() {
|
|
- if (definedInId == null){
|
|
- getUnqualifiedName();
|
|
- }
|
|
-
|
|
- return definedInId;
|
|
- }
|
|
-
|
|
- public final String getTypeString() {
|
|
- return typeString;
|
|
- }
|
|
-
|
|
- public final String getVersionString() {
|
|
- return versionString;
|
|
- }
|
|
-
|
|
- public final String getSerialVersionUID() {
|
|
- return suid;
|
|
- }
|
|
-
|
|
- public final String getActualSerialVersionUID() {
|
|
- return actualSuid;
|
|
- }
|
|
- public final long getSerialVersionUIDAsLong() {
|
|
- return suidLong;
|
|
- }
|
|
-
|
|
- public final long getActualSerialVersionUIDAsLong() {
|
|
- return actualSuidLong;
|
|
- }
|
|
-
|
|
- public final boolean isRMIValueType() {
|
|
- return isRMIValueType;
|
|
- }
|
|
-
|
|
- public final boolean isIDLType() {
|
|
- return isIDLType;
|
|
- }
|
|
-
|
|
- public final String getRepositoryId() {
|
|
- return repId;
|
|
- }
|
|
-
|
|
- public static byte[] getByteArray(String repStr) {
|
|
- synchronized (repStrToByteArray){
|
|
- return (byte[]) repStrToByteArray.get(repStr);
|
|
- }
|
|
- }
|
|
-
|
|
- public static void setByteArray(String repStr, byte[] repStrBytes) {
|
|
- synchronized (repStrToByteArray){
|
|
- repStrToByteArray.put(repStr, repStrBytes);
|
|
- }
|
|
- }
|
|
-
|
|
- public final boolean isSequence() {
|
|
- return isSequence;
|
|
- }
|
|
-
|
|
- public final boolean isSupportedFormat() {
|
|
- return isSupportedFormat;
|
|
- }
|
|
-
|
|
-
|
|
- // This method will return the classname from the typestring OR if the classname turns out to be
|
|
- // a special class "pseudo" name, then the matching real classname is returned.
|
|
- public final String getClassName() {
|
|
-
|
|
- if (isRMIValueType)
|
|
- return typeString;
|
|
- else if (isIDLType)
|
|
- return completeClassName;
|
|
- else return null;
|
|
-
|
|
- }
|
|
-
|
|
- // This method calls getClazzFromType() and falls back to the repStrToClass
|
|
- // cache if no class was found. It's used where any class matching the
|
|
- // given repid is an acceptable result.
|
|
- public final Class getAnyClassFromType() throws ClassNotFoundException {
|
|
- try {
|
|
- return getClassFromType();
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- Class clz = (Class)repStrToClass.get(repId);
|
|
- if (clz != null)
|
|
- return clz;
|
|
- else
|
|
- throw cnfe;
|
|
- }
|
|
- }
|
|
-
|
|
- public final Class getClassFromType()
|
|
- throws ClassNotFoundException {
|
|
- if (clazz != null)
|
|
- return clazz;
|
|
-
|
|
- Class specialCase = (Class)kSpecialCasesClasses.get(getClassName());
|
|
-
|
|
- if (specialCase != null){
|
|
- clazz = specialCase;
|
|
- return specialCase;
|
|
- }
|
|
- else
|
|
- {
|
|
- try{
|
|
- return Util.loadClass(getClassName(), null, null);
|
|
- }
|
|
- catch(ClassNotFoundException cnfe){
|
|
- if (defaultServerURL != null) {
|
|
- try{
|
|
- return getClassFromType(defaultServerURL);
|
|
- }
|
|
- catch(MalformedURLException mue){
|
|
- throw cnfe;
|
|
- }
|
|
- }
|
|
- else throw cnfe;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public final Class getClassFromType(Class expectedType, String codebase)
|
|
- throws ClassNotFoundException {
|
|
- if (clazz != null)
|
|
- return clazz;
|
|
-
|
|
- Class specialCase = (Class)kSpecialCasesClasses.get(getClassName());
|
|
-
|
|
- if (specialCase != null){
|
|
- clazz = specialCase;
|
|
- return specialCase;
|
|
- } else {
|
|
- ClassLoader expectedTypeClassLoader = (expectedType == null ? null : expectedType.getClassLoader());
|
|
- return loadClassOfType(getClassName(),
|
|
- codebase,
|
|
- expectedTypeClassLoader,
|
|
- expectedType,
|
|
- expectedTypeClassLoader);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public final Class getClassFromType(String url)
|
|
- throws ClassNotFoundException, MalformedURLException {
|
|
- return Util.loadClass(getClassName(), url, null);
|
|
- }
|
|
-
|
|
- public final String toString() {
|
|
- return repId;
|
|
- }
|
|
-
|
|
- private static String createHashString(java.io.Serializable ser) {
|
|
-
|
|
- return createHashString(ser.getClass());
|
|
- }
|
|
-
|
|
- private static String createHashString(java.lang.Class clazz) {
|
|
-
|
|
- if (clazz.isInterface() || !java.io.Serializable.class.isAssignableFrom(clazz))
|
|
- return kInterfaceHashCode;
|
|
-
|
|
-
|
|
- long actualLong = ObjectStreamClassUtil_1_3.computeStructuralUID(false, clazz);
|
|
- String hash = null;
|
|
- if (actualLong == 0)
|
|
- hash = kInterfaceOnlyHashStr;
|
|
- else if (actualLong == 1)
|
|
- hash = kExternalizableHashStr;
|
|
- else
|
|
- hash = Long.toHexString(actualLong).toUpperCase();
|
|
- while(hash.length() < 16){
|
|
- hash = "0" + hash;
|
|
- }
|
|
-
|
|
- long declaredLong = ObjectStreamClassUtil_1_3.computeSerialVersionUID(clazz);
|
|
- String declared = null;
|
|
- if (declaredLong == 0)
|
|
- declared = kInterfaceOnlyHashStr;
|
|
- else if (declaredLong == 1)
|
|
- declared = kExternalizableHashStr;
|
|
- else
|
|
- declared = Long.toHexString(declaredLong).toUpperCase();
|
|
- while (declared.length() < 16){
|
|
- declared = "0" + declared;
|
|
- }
|
|
- hash = hash + ":" + declared;
|
|
-
|
|
- return ":" + hash;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a sequence. This is for expert users only as
|
|
- * this method assumes the object passed is an array. If passed an object
|
|
- * that is not an array, it will produce a rep id for a sequence of zero
|
|
- * length. This would be an error.
|
|
- * @param ser The Java object to create a repository ID for
|
|
- **/
|
|
- public static String createSequenceRepID(java.lang.Object ser){
|
|
- return createSequenceRepID(ser.getClass());
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a sequence. This is for expert users only as
|
|
- * this method assumes the object passed is an array. If passed an object
|
|
- * that is not an array, it will produce a malformed rep id.
|
|
- * @param clazz The Java class to create a repository ID for
|
|
- **/
|
|
- public static String createSequenceRepID(java.lang.Class clazz){
|
|
- synchronized (classSeqToRepStr){
|
|
-
|
|
- String repid = (String)classSeqToRepStr.get(clazz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- Class originalClazz = clazz;
|
|
-
|
|
- Class type = null;
|
|
- int numOfDims = 0;
|
|
-
|
|
- while ((type = clazz.getComponentType()) != null) {
|
|
- numOfDims++;
|
|
- clazz = type;
|
|
- }
|
|
-
|
|
- if (clazz.isPrimitive())
|
|
- repid = kValuePrefix + originalClazz.getName() + kPrimitiveSequenceValueHash;
|
|
- else {
|
|
- StringBuffer buf = new StringBuffer();
|
|
- buf.append(kValuePrefix);
|
|
- while(numOfDims-- > 0) {
|
|
- buf.append("[");
|
|
- }
|
|
- buf.append("L");
|
|
- buf.append(convertToISOLatin1(clazz.getName()));
|
|
- buf.append(";");
|
|
- buf.append(createHashString(clazz));
|
|
- repid = buf.toString();
|
|
- }
|
|
- classSeqToRepStr.put(originalClazz,repid);
|
|
- return repid;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
-
|
|
- public static String createForSpecialCase(java.lang.Class clazz){
|
|
- if (clazz.isArray()){
|
|
- return createSequenceRepID(clazz);
|
|
- }
|
|
- else {
|
|
- return (String)kSpecialCasesRepIDs.get(clazz);
|
|
- }
|
|
- }
|
|
-
|
|
- public static String createForSpecialCase(java.io.Serializable ser){
|
|
- Class clazz = ser.getClass();
|
|
- if (clazz.isArray()){
|
|
- return createSequenceRepID(ser);
|
|
- }
|
|
- else
|
|
- return createForSpecialCase(clazz);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a normal Java Type.
|
|
- * @param ser The Java object to create a repository ID for
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser implements the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForJavaType(java.io.Serializable ser)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classToRepStr) {
|
|
- String repid = createForSpecialCase(ser);
|
|
- if (repid != null)
|
|
- return repid;
|
|
- Class clazz = ser.getClass();
|
|
- repid = (String)classToRepStr.get(clazz);
|
|
-
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kValuePrefix + convertToISOLatin1(clazz.getName()) +
|
|
- createHashString(clazz);
|
|
-
|
|
- classToRepStr.put(clazz, repid);
|
|
- repStrToClass.put(repid, clazz);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a normal Java Type.
|
|
- * @param clz The Java class to create a repository ID for
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser implements the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForJavaType(Class clz)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classToRepStr){
|
|
- String repid = createForSpecialCase(clz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = (String)classToRepStr.get(clz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kValuePrefix + convertToISOLatin1(clz.getName()) +
|
|
- createHashString(clz);
|
|
-
|
|
- classToRepStr.put(clz, repid);
|
|
- repStrToClass.put(repid, clz);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for an IDL Java Type.
|
|
- * @param ser The IDL Value object to create a repository ID for
|
|
- * @param major The major version number
|
|
- * @param minor The minor version number
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser does not implement the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForIDLType(Class ser, int major, int minor)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classIDLToRepStr){
|
|
- String repid = (String)classIDLToRepStr.get(ser);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kIDLPrefix + convertToISOLatin1(ser.getName()).replace('.','/') +
|
|
- ":" + major + "." + minor;
|
|
- classIDLToRepStr.put(ser, repid);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- private static String getIdFromHelper(Class clazz){
|
|
- try {
|
|
- Class helperClazz = Utility.loadClassForClass(clazz.getName()+"Helper", null,
|
|
- clazz.getClassLoader(), clazz, clazz.getClassLoader());
|
|
- Method idMethod = helperClazz.getDeclaredMethod("id", kNoParamTypes);
|
|
- return (String)idMethod.invoke(null, kNoArgs);
|
|
- }
|
|
- catch(java.lang.ClassNotFoundException cnfe)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(cnfe.toString());
|
|
- }
|
|
- catch(java.lang.NoSuchMethodException nsme)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(nsme.toString());
|
|
- }
|
|
- catch(java.lang.reflect.InvocationTargetException ite)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(ite.toString());
|
|
- }
|
|
- catch(java.lang.IllegalAccessException iae)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(iae.toString());
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Createa a repository ID for the type if it is either a java type
|
|
- * or an IDL type.
|
|
- * @param type The type to create rep. id for
|
|
- * @return The rep. id.
|
|
- **/
|
|
- public static String createForAnyType(Class type) {
|
|
- try{
|
|
- if (type.isArray())
|
|
- return createSequenceRepID(type);
|
|
- else if (IDLEntity.class.isAssignableFrom(type))
|
|
- {
|
|
- try{
|
|
- return getIdFromHelper(type);
|
|
- }
|
|
- catch(Throwable t) {
|
|
- return createForIDLType(type, 1, 0);
|
|
- }
|
|
- }
|
|
- else return createForJavaType(type);
|
|
- }
|
|
- catch(com.sun.corba.se.impl.io.TypeMismatchException e){
|
|
- return null;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isAbstractBase(Class clazz) {
|
|
- return (clazz.isInterface() &&
|
|
- IDLEntity.class.isAssignableFrom(clazz) &&
|
|
- (!ValueBase.class.isAssignableFrom(clazz)) &&
|
|
- (!org.omg.CORBA.Object.class.isAssignableFrom(clazz)));
|
|
-
|
|
- }
|
|
-
|
|
- /**
|
|
- * Convert strings with illegal IDL identifier characters.
|
|
- * <p>
|
|
- * Section 5.5.7 of OBV spec.
|
|
- */
|
|
- private static String convertToISOLatin1 (String name) {
|
|
-
|
|
- int length = name.length();
|
|
- if (length == 0) {
|
|
- return name;
|
|
- }
|
|
- StringBuffer buffer = null;
|
|
-
|
|
- for (int i = 0; i < length; i++) {
|
|
-
|
|
- char c = name.charAt(i);
|
|
-
|
|
- if (c > 255 || IDL_IDENTIFIER_CHARS[c] == 0) {
|
|
-
|
|
- // We gotta convert. Have we already started?
|
|
-
|
|
- if (buffer == null) {
|
|
-
|
|
- // No, so get set up...
|
|
-
|
|
- buffer = new StringBuffer(name.substring(0,i));
|
|
- }
|
|
-
|
|
- // Convert the character into the IDL escape syntax...
|
|
- buffer.append(
|
|
- "\\U" +
|
|
- (char)ASCII_HEX[(c & 0xF000) >>> 12] +
|
|
- (char)ASCII_HEX[(c & 0x0F00) >>> 8] +
|
|
- (char)ASCII_HEX[(c & 0x00F0) >>> 4] +
|
|
- (char)ASCII_HEX[(c & 0x000F)]);
|
|
-
|
|
- } else {
|
|
- if (buffer != null) {
|
|
- buffer.append(c);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (buffer != null) {
|
|
- name = buffer.toString();
|
|
- }
|
|
-
|
|
- return name;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Convert strings with ISO Latin 1 escape sequences back to original strings.
|
|
- * <p>
|
|
- * Section 5.5.7 of OBV spec.
|
|
- */
|
|
- private static String convertFromISOLatin1 (String name) {
|
|
-
|
|
- int index = -1;
|
|
- StringBuffer buf = new StringBuffer(name);
|
|
-
|
|
- while ((index = buf.toString().indexOf("\\U")) != -1){
|
|
- String str = "0000" + buf.toString().substring(index+2, index+6);
|
|
-
|
|
- // Convert Hexadecimal
|
|
- byte[] buffer = new byte[(str.length() - 4) / 2];
|
|
- for (int i=4, j=0; i < str.length(); i +=2, j++) {
|
|
- buffer[j] = (byte)((ORBUtility.hexOf(str.charAt(i)) << 4) & 0xF0);
|
|
- buffer[j] |= (byte)((ORBUtility.hexOf(str.charAt(i+1)) << 0) & 0x0F);
|
|
- }
|
|
- buf = new StringBuffer(delete(buf.toString(), index, index+6));
|
|
- buf.insert(index, (char)buffer[1]);
|
|
- }
|
|
-
|
|
- return buf.toString();
|
|
-
|
|
-
|
|
- }
|
|
-
|
|
- private static String delete(String str, int from, int to)
|
|
- {
|
|
- return str.substring(0, from) + str.substring(to, str.length());
|
|
- }
|
|
-
|
|
- private static String replace(String target, String arg, String source)
|
|
- {
|
|
- int i = 0;
|
|
- i = target.indexOf(arg);
|
|
-
|
|
- while(i != -1)
|
|
- {
|
|
- String left = target.substring(0, i);
|
|
- String right = target.substring(i+arg.length());
|
|
- target = new String(left+source+right);
|
|
- i = target.indexOf(arg);
|
|
- }
|
|
- return target;
|
|
- }
|
|
-
|
|
- /*
|
|
- * Load a class and check that it is assignable to a given type.
|
|
- * @param className the class name.
|
|
- * @param remoteCodebase the codebase to use. May be null.
|
|
- * @param loader the class loader of last resort. May be null.
|
|
- * @param expectedType the expected type. May be null.
|
|
- * @return the loaded class.
|
|
- */
|
|
- private Class loadClassOfType (String className,
|
|
- String remoteCodebase,
|
|
- ClassLoader loader,
|
|
- Class expectedType,
|
|
- ClassLoader expectedTypeClassLoader)
|
|
- throws ClassNotFoundException {
|
|
-
|
|
- Class loadedClass = null;
|
|
-
|
|
- try {
|
|
- //Sequence finding of the stubs according to spec
|
|
- try{
|
|
- //If-else is put here for speed up of J2EE.
|
|
- //According to the OMG spec, the if clause is not dead code.
|
|
- //It can occur if some compiler has allowed generation
|
|
- //into org.omg.stub hierarchy for non-offending
|
|
- //classes. This will encourage people to
|
|
- //produce non-offending class stubs in their own hierarchy.
|
|
- if(!PackagePrefixChecker
|
|
- .hasOffendingPrefix(PackagePrefixChecker
|
|
- .withoutPackagePrefix(className))){
|
|
- loadedClass = Util.loadClass
|
|
- (PackagePrefixChecker.withoutPackagePrefix(className),
|
|
- remoteCodebase,
|
|
- loader);
|
|
- } else {
|
|
- loadedClass = Util.loadClass
|
|
- (className,
|
|
- remoteCodebase,
|
|
- loader);
|
|
- }
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- loadedClass = Util.loadClass
|
|
- (className,
|
|
- remoteCodebase,
|
|
- loader);
|
|
- }
|
|
- if (expectedType == null)
|
|
- return loadedClass;
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- if (expectedType == null)
|
|
- throw cnfe;
|
|
- }
|
|
-
|
|
- // If no class was not loaded, or if the loaded class is not of the
|
|
- // correct type, make a further attempt to load the correct class
|
|
- // using the classloader of the expected type.
|
|
- // _REVISIT_ Is this step necessary, or should the Util,loadClass
|
|
- // algorithm always produce a valid class if the setup is correct?
|
|
- // Does the OMG standard algorithm need to be changed to include
|
|
- // this step?
|
|
- if (loadedClass == null || !expectedType.isAssignableFrom(loadedClass)) {
|
|
- if (expectedType.getClassLoader() != expectedTypeClassLoader)
|
|
- throw new IllegalArgumentException("expectedTypeClassLoader not class loader of expectedType.");
|
|
-
|
|
- if (expectedTypeClassLoader != null)
|
|
- loadedClass = expectedTypeClassLoader.loadClass(className);
|
|
- else
|
|
- loadedClass = ORBClassLoader.loadClass(className);
|
|
- }
|
|
-
|
|
- return loadedClass;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Checks to see if the FullValueDescription should be retrieved.
|
|
- * @exception Throws IOException if suids do not match or if the repositoryID
|
|
- * is not an RMIValueType
|
|
- */
|
|
- public static boolean useFullValueDescription(Class clazz, String repositoryID)
|
|
- throws IOException{
|
|
-
|
|
- String clazzRepIDStr = createForAnyType(clazz);
|
|
-
|
|
- if (clazzRepIDStr.equals(repositoryID))
|
|
- return false;
|
|
-
|
|
- RepositoryId_1_3 targetRepid;
|
|
- RepositoryId_1_3 clazzRepid;
|
|
-
|
|
- synchronized(cache) {
|
|
- // to avoid race condition where multiple threads could be
|
|
- // accessing this method, and their access to the cache may
|
|
- // be interleaved giving unexpected results
|
|
-
|
|
- targetRepid = cache.getId(repositoryID);
|
|
- clazzRepid = cache.getId(clazzRepIDStr);
|
|
- }
|
|
-
|
|
- if ((targetRepid.isRMIValueType()) && (clazzRepid.isRMIValueType())){
|
|
- if (!targetRepid.getSerialVersionUID().equals(clazzRepid.getSerialVersionUID())) {
|
|
-
|
|
- String mssg = "Mismatched serialization UIDs : Source (Rep. ID" +
|
|
- clazzRepid + ") = " +
|
|
- clazzRepid.getSerialVersionUID() + " whereas Target (Rep. ID " + repositoryID +
|
|
- ") = " + targetRepid.getSerialVersionUID();
|
|
- throw new IOException(mssg);
|
|
- } else {
|
|
- return true;
|
|
- }
|
|
- } else {
|
|
-
|
|
- throw new IOException("The repository ID is not of an RMI value type (Expected ID = " + clazzRepIDStr + "; Received ID = " + repositoryID +")");
|
|
- }
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3_1.java 2012-08-10 09:10:34.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,1065 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact 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.corba.se.impl.orbutil;
|
|
-
|
|
-import java.util.StringTokenizer;
|
|
-import java.util.Hashtable;
|
|
-import java.io.IOException;
|
|
-import java.lang.reflect.Method;
|
|
-import java.net.MalformedURLException;
|
|
-import org.omg.CORBA.portable.ValueBase;
|
|
-import org.omg.CORBA.portable.IDLEntity;
|
|
-
|
|
-//d11638 files in the same package, therefore remove their reference
|
|
-//import com.sun.corba.se.impl.util.JDKBridge;
|
|
-//import com.sun.corba.se.impl.util.IdentityHashtable;
|
|
-import com.sun.corba.se.impl.util.JDKBridge;
|
|
-import com.sun.corba.se.impl.util.Utility;
|
|
-import com.sun.corba.se.impl.util.PackagePrefixChecker;
|
|
-import com.sun.corba.se.impl.util.IdentityHashtable;
|
|
-
|
|
-import javax.rmi.CORBA.Util;
|
|
-
|
|
-/**
|
|
- * Because all methods in RepositoryId are static, we have
|
|
- * to duplicate all of this code, freezing it in its 1.3.1
|
|
- * form for backwards compatibility.
|
|
- *
|
|
- * For security reasons, we can't expose enough of
|
|
- * io/ObjectStreamClass, so it has to be duplicated in
|
|
- * orbutil.
|
|
- */
|
|
-public class RepositoryId_1_3_1 {
|
|
-
|
|
- // Legal IDL Identifier characters (1 = legal). Note
|
|
- // that '.' (2E) is marked as legal even though it is
|
|
- // not legal in IDL. This allows us to treat a fully
|
|
- // qualified Java name with '.' package separators
|
|
- // uniformly, and is safe because that is the only
|
|
- // legal use of '.' in a Java name.
|
|
-
|
|
- private static final byte[] IDL_IDENTIFIER_CHARS = {
|
|
-
|
|
- // 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 10-1f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,0, // 20-2f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,0,0, 0,0,0,0, // 30-3f
|
|
- 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 40-4f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,1, // 50-5f
|
|
- 0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 60-6f
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0, // 70-7f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 80-8f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 90-9f
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // a0-af
|
|
- 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // b0-bf
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // c0-cf
|
|
- 0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // d0-df
|
|
- 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // e0-ef
|
|
- 0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // f0-ff
|
|
- };
|
|
-
|
|
-
|
|
- private static final long serialVersionUID = 123456789L;
|
|
-
|
|
- private static String defaultServerURL = null;
|
|
- private static boolean useCodebaseOnly = false;
|
|
-
|
|
- static {
|
|
- if (defaultServerURL == null)
|
|
- defaultServerURL = (String)JDKBridge.getLocalCodebase();
|
|
- useCodebaseOnly = JDKBridge.useCodebaseOnly();
|
|
-
|
|
- }
|
|
-
|
|
- private static IdentityHashtable classToRepStr = new IdentityHashtable();
|
|
- private static IdentityHashtable classIDLToRepStr = new IdentityHashtable();
|
|
- private static IdentityHashtable classSeqToRepStr = new IdentityHashtable();
|
|
-
|
|
- private static IdentityHashtable repStrToByteArray = new IdentityHashtable();
|
|
- private static Hashtable repStrToClass = new Hashtable();
|
|
-
|
|
- private String repId = null;
|
|
- private boolean isSupportedFormat = true;
|
|
- private String typeString = null;
|
|
- private String versionString = null;
|
|
- private boolean isSequence = false;
|
|
- private boolean isRMIValueType = false;
|
|
- private boolean isIDLType = false;
|
|
- private String completeClassName = null;
|
|
- private String unqualifiedName = null;
|
|
- private String definedInId = null;
|
|
- private Class clazz = null;
|
|
- private String suid = null, actualSuid = null;
|
|
- private long suidLong = ObjectStreamClass_1_3_1.kDefaultUID, actualSuidLong = ObjectStreamClass_1_3_1.kDefaultUID;
|
|
-
|
|
- // Repository ID fragments
|
|
- private static final String kSequenceKeyword = "seq";
|
|
- private static final String kValuePrefix = "RMI:";
|
|
- private static final String kIDLPrefix = "IDL:";
|
|
- private static final String kIDLNamePrefix = "omg.org/";
|
|
- private static final String kIDLClassnamePrefix = "org.omg.";
|
|
- private static final String kSequencePrefix = "[";
|
|
- private static final String kCORBAPrefix = "CORBA/";
|
|
- private static final String kArrayPrefix = kValuePrefix + kSequencePrefix + kCORBAPrefix;
|
|
- private static final int kValuePrefixLength = kValuePrefix.length();
|
|
- private static final int kIDLPrefixLength = kIDLPrefix.length();
|
|
- private static final int kSequencePrefixLength = kSequencePrefix.length();
|
|
- private static final String kInterfaceHashCode = ":0000000000000000";
|
|
- private static final String kInterfaceOnlyHashStr = "0000000000000000";
|
|
- private static final String kExternalizableHashStr = "0000000000000001";
|
|
-
|
|
- // Value tag utility methods and constants
|
|
- public static final int kInitialValueTag= 0x7fffff00;
|
|
- public static final int kNoTypeInfo = 0;
|
|
- public static final int kSingleRepTypeInfo = 0x02;
|
|
- public static final int kPartialListTypeInfo = 0x06;
|
|
- public static final int kChunkedMask = 0x08;
|
|
- public static final int kPreComputed_StandardRMIUnchunked = RepositoryId_1_3_1.computeValueTag(false, RepositoryId_1_3_1.kSingleRepTypeInfo, false);
|
|
- public static final int kPreComputed_CodeBaseRMIUnchunked = RepositoryId_1_3_1.computeValueTag(true, RepositoryId_1_3_1.kSingleRepTypeInfo, false);
|
|
- public static final int kPreComputed_StandardRMIChunked = RepositoryId_1_3_1.computeValueTag(false, RepositoryId_1_3_1.kSingleRepTypeInfo, true);
|
|
- public static final int kPreComputed_CodeBaseRMIChunked = RepositoryId_1_3_1.computeValueTag(true, RepositoryId_1_3_1.kSingleRepTypeInfo, true);
|
|
-
|
|
- public static final int kPreComputed_StandardRMIUnchunked_NoRep = RepositoryId_1_3_1.computeValueTag(false, RepositoryId_1_3_1.kNoTypeInfo, false);
|
|
- public static final int kPreComputed_CodeBaseRMIUnchunked_NoRep = RepositoryId_1_3_1.computeValueTag(true, RepositoryId_1_3_1.kNoTypeInfo, false);
|
|
- public static final int kPreComputed_StandardRMIChunked_NoRep = RepositoryId_1_3_1.computeValueTag(false, RepositoryId_1_3_1.kNoTypeInfo, true);
|
|
- public static final int kPreComputed_CodeBaseRMIChunked_NoRep = RepositoryId_1_3_1.computeValueTag(true, RepositoryId_1_3_1.kNoTypeInfo, true);
|
|
-
|
|
- // Public, well known repository IDs
|
|
-
|
|
- // _REVISIT_ : A table structure with a good search routine for all of this
|
|
- // would be more efficient and easier to maintain...
|
|
-
|
|
- // String
|
|
- public static final String kWStringValueVersion = "1.0";
|
|
- public static final String kWStringValueHash = ":"+kWStringValueVersion;
|
|
- public static final String kWStringStubValue = "WStringValue";
|
|
- public static final String kWStringTypeStr = "omg.org/CORBA/"+kWStringStubValue;
|
|
- public static final String kWStringValueRepID = kIDLPrefix + kWStringTypeStr + kWStringValueHash;
|
|
-
|
|
- // Any
|
|
- public static final String kAnyRepID = kIDLPrefix + "omg.org/CORBA/Any";
|
|
-
|
|
- // Class
|
|
- // Anita4: convert to uppercase
|
|
- public static final String kClassDescValueHash = ":" +
|
|
- Long.toHexString(
|
|
- ObjectStreamClass_1_3_1.getActualSerialVersionUID(javax.rmi.CORBA.ClassDesc.class)).toUpperCase() + ":" +
|
|
- Long.toHexString(
|
|
- ObjectStreamClass_1_3_1.getSerialVersionUID(javax.rmi.CORBA.ClassDesc.class)).toUpperCase();
|
|
- public static final String kClassDescStubValue = "ClassDesc";
|
|
- public static final String kClassDescTypeStr = "javax.rmi.CORBA."+kClassDescStubValue;
|
|
- public static final String kClassDescValueRepID = kValuePrefix + kClassDescTypeStr + kClassDescValueHash;
|
|
-
|
|
- // Object
|
|
- public static final String kObjectValueHash = ":1.0";
|
|
- public static final String kObjectStubValue = "Object";
|
|
-
|
|
- // Sequence
|
|
- public static final String kSequenceValueHash = ":1.0";
|
|
- public static final String kPrimitiveSequenceValueHash = ":0000000000000000";
|
|
-
|
|
- // Serializable
|
|
- public static final String kSerializableValueHash = ":1.0";
|
|
- public static final String kSerializableStubValue = "Serializable";
|
|
-
|
|
- // Externalizable
|
|
- public static final String kExternalizableValueHash = ":1.0";
|
|
- public static final String kExternalizableStubValue = "Externalizable";
|
|
-
|
|
- // Remote (The empty string is used for java.rmi.Remote)
|
|
- public static final String kRemoteValueHash = "";
|
|
- public static final String kRemoteStubValue = "";
|
|
- public static final String kRemoteTypeStr = "";
|
|
- public static final String kRemoteValueRepID = "";
|
|
-
|
|
- private static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialArrayTypeStrings.put("CORBA.WStringValue", new StringBuffer(java.lang.String.class.getName()));
|
|
- kSpecialArrayTypeStrings.put("javax.rmi.CORBA.ClassDesc", new StringBuffer(java.lang.Class.class.getName()));
|
|
- kSpecialArrayTypeStrings.put("CORBA.Object", new StringBuffer(java.rmi.Remote.class.getName()));
|
|
-
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesRepIDs.put(java.lang.String.class, kWStringValueRepID);
|
|
- kSpecialCasesRepIDs.put(java.lang.Class.class, kClassDescValueRepID);
|
|
- kSpecialCasesRepIDs.put(java.rmi.Remote.class, kRemoteValueRepID);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesStubValues.put(java.lang.String.class, kWStringStubValue);
|
|
- kSpecialCasesStubValues.put(java.lang.Class.class, kClassDescStubValue);
|
|
- kSpecialCasesStubValues.put(java.lang.Object.class, kObjectStubValue);
|
|
- kSpecialCasesStubValues.put(java.io.Serializable.class, kSerializableStubValue);
|
|
- kSpecialCasesStubValues.put(java.io.Externalizable.class, kExternalizableStubValue);
|
|
- kSpecialCasesStubValues.put(java.rmi.Remote.class, kRemoteStubValue);
|
|
- }
|
|
-
|
|
-
|
|
- private static final Hashtable kSpecialCasesVersions = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesVersions.put(java.lang.String.class, kWStringValueHash);
|
|
- kSpecialCasesVersions.put(java.lang.Class.class, kClassDescValueHash);
|
|
- kSpecialCasesVersions.put(java.lang.Object.class, kObjectValueHash);
|
|
- kSpecialCasesVersions.put(java.io.Serializable.class, kSerializableValueHash);
|
|
- kSpecialCasesVersions.put(java.io.Externalizable.class, kExternalizableValueHash);
|
|
- kSpecialCasesVersions.put(java.rmi.Remote.class, kRemoteValueHash);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesClasses = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesClasses.put(kWStringTypeStr, java.lang.String.class);
|
|
- kSpecialCasesClasses.put(kClassDescTypeStr, java.lang.Class.class);
|
|
- kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
|
-
|
|
- kSpecialCasesClasses.put("org.omg.CORBA.WStringValue", java.lang.String.class);
|
|
- kSpecialCasesClasses.put("javax.rmi.CORBA.ClassDesc", java.lang.Class.class);
|
|
- //kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialCasesArrayPrefix.put(java.lang.String.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
|
- kSpecialCasesArrayPrefix.put(java.lang.Class.class, kValuePrefix + kSequencePrefix + "javax/rmi/CORBA/");
|
|
- kSpecialCasesArrayPrefix.put(java.lang.Object.class, kValuePrefix + kSequencePrefix + "java/lang/");
|
|
- kSpecialCasesArrayPrefix.put(java.io.Serializable.class, kValuePrefix + kSequencePrefix + "java/io/");
|
|
- kSpecialCasesArrayPrefix.put(java.io.Externalizable.class, kValuePrefix + kSequencePrefix + "java/io/");
|
|
- kSpecialCasesArrayPrefix.put(java.rmi.Remote.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
|
- }
|
|
-
|
|
- private static final Hashtable kSpecialPrimitives = new Hashtable();
|
|
-
|
|
- static {
|
|
- kSpecialPrimitives.put("int","long");
|
|
- kSpecialPrimitives.put("long","longlong");
|
|
- kSpecialPrimitives.put("byte","octet");
|
|
- }
|
|
-
|
|
- /**
|
|
- * Used to convert ascii to hex.
|
|
- */
|
|
- private static final byte ASCII_HEX[] = {
|
|
- (byte)'0',
|
|
- (byte)'1',
|
|
- (byte)'2',
|
|
- (byte)'3',
|
|
- (byte)'4',
|
|
- (byte)'5',
|
|
- (byte)'6',
|
|
- (byte)'7',
|
|
- (byte)'8',
|
|
- (byte)'9',
|
|
- (byte)'A',
|
|
- (byte)'B',
|
|
- (byte)'C',
|
|
- (byte)'D',
|
|
- (byte)'E',
|
|
- (byte)'F',
|
|
- };
|
|
-
|
|
-
|
|
- // bug fix for 4328952; to eliminate possibility of overriding this
|
|
- // in a subclass.
|
|
- public static final RepositoryIdCache_1_3_1 cache = new RepositoryIdCache_1_3_1();
|
|
-
|
|
- // Interface Rep ID Strings
|
|
- public static final String kjava_rmi_Remote = createForAnyType(java.rmi.Remote.class);
|
|
- public static final String korg_omg_CORBA_Object = createForAnyType(org.omg.CORBA.Object.class);
|
|
-
|
|
- // Dummy arguments for getIdFromHelper method
|
|
- public static final Class kNoParamTypes[] ={};
|
|
- public static final Object kNoArgs[] = {};
|
|
-
|
|
-
|
|
- // To create a RepositoryID, use code similar to the following:
|
|
- // RepositoryId.cache.getId( id );
|
|
-
|
|
- RepositoryId_1_3_1(){}
|
|
-
|
|
- RepositoryId_1_3_1(String aRepId){
|
|
- init(aRepId);
|
|
- }
|
|
-
|
|
- RepositoryId_1_3_1 init(String aRepId){
|
|
-
|
|
- this.repId = aRepId;
|
|
-
|
|
- // Special case for remote
|
|
- if (aRepId.length() == 0) {
|
|
- clazz = java.rmi.Remote.class;
|
|
- typeString = "";
|
|
- isRMIValueType = true;
|
|
- suid = kInterfaceOnlyHashStr;
|
|
- return this;
|
|
- }
|
|
- else if (aRepId.equals(kWStringValueRepID)) {
|
|
- clazz = java.lang.String.class;
|
|
- typeString = kWStringTypeStr;
|
|
- isIDLType = true;
|
|
- // fix where Attempting to obtain a FullValueDescription
|
|
- // for an RMI value type with a String field causes an exception.
|
|
- completeClassName = "java.lang.String";
|
|
- versionString = kWStringValueVersion;
|
|
- return this;
|
|
- }
|
|
- else {
|
|
-
|
|
- String repId = convertFromISOLatin1(aRepId);
|
|
-
|
|
- versionString = repId.substring(repId.indexOf(':', repId.indexOf(':')+1));
|
|
- if (repId.startsWith(kIDLPrefix)) {
|
|
- typeString =
|
|
- repId.substring(kIDLPrefixLength, repId.indexOf(':', kIDLPrefixLength));
|
|
- isIDLType = true;
|
|
- if (typeString.startsWith(kIDLNamePrefix))
|
|
- completeClassName = kIDLClassnamePrefix +
|
|
- typeString.substring(kIDLNamePrefix.length()).replace('/','.');
|
|
- else completeClassName = typeString.replace('/','.');
|
|
-
|
|
- }
|
|
- else if (repId.startsWith(kValuePrefix)) {
|
|
- typeString =
|
|
- repId.substring(kValuePrefixLength, repId.indexOf(':', kValuePrefixLength));
|
|
- isRMIValueType = true;
|
|
-
|
|
- if (versionString.indexOf('.') == -1) {
|
|
- actualSuid = versionString.substring(1);
|
|
- suid = actualSuid; // default if not explicitly specified
|
|
-
|
|
- if (actualSuid.indexOf(':') != -1){
|
|
- // we have a declared hash also
|
|
- int pos = actualSuid.indexOf(':')+1;
|
|
- // actualSuid = suid.substring(pos);
|
|
- // suid = suid.substring(0, pos-1);
|
|
- suid = actualSuid.substring(pos);
|
|
- actualSuid = actualSuid.substring(0, pos-1);
|
|
- }
|
|
-
|
|
- }
|
|
- else {
|
|
- // _REVISIT_ : Special case version failure ?
|
|
- }
|
|
- }
|
|
- else isSupportedFormat = false;
|
|
-
|
|
- if (typeString.startsWith(kSequencePrefix)) {
|
|
- isSequence = true;
|
|
- }
|
|
-
|
|
-
|
|
- return this;
|
|
- }
|
|
- }
|
|
-
|
|
- public final String getUnqualifiedName() {
|
|
- if (unqualifiedName == null){
|
|
- String className = getClassName();
|
|
- int index = className.lastIndexOf('.');
|
|
- if (index == -1){
|
|
- unqualifiedName = className;
|
|
- definedInId = "IDL::1.0";
|
|
- }
|
|
- else {
|
|
- unqualifiedName = className.substring(index);
|
|
- definedInId = "IDL:" + className.substring(0, index).replace('.','/') + ":1.0";
|
|
- }
|
|
- }
|
|
-
|
|
- return unqualifiedName;
|
|
- }
|
|
-
|
|
- public final String getDefinedInId() {
|
|
- if (definedInId == null){
|
|
- getUnqualifiedName();
|
|
- }
|
|
-
|
|
- return definedInId;
|
|
- }
|
|
-
|
|
- public final String getTypeString() {
|
|
- return typeString;
|
|
- }
|
|
-
|
|
- public final String getVersionString() {
|
|
- return versionString;
|
|
- }
|
|
-
|
|
- public final String getSerialVersionUID() {
|
|
- return suid;
|
|
- }
|
|
-
|
|
- public final String getActualSerialVersionUID() {
|
|
- return actualSuid;
|
|
- }
|
|
- public final long getSerialVersionUIDAsLong() {
|
|
- return suidLong;
|
|
- }
|
|
-
|
|
- public final long getActualSerialVersionUIDAsLong() {
|
|
- return actualSuidLong;
|
|
- }
|
|
-
|
|
- public final boolean isRMIValueType() {
|
|
- return isRMIValueType;
|
|
- }
|
|
-
|
|
- public final boolean isIDLType() {
|
|
- return isIDLType;
|
|
- }
|
|
-
|
|
- public final String getRepositoryId() {
|
|
- return repId;
|
|
- }
|
|
-
|
|
- public static byte[] getByteArray(String repStr) {
|
|
- synchronized (repStrToByteArray){
|
|
- return (byte[]) repStrToByteArray.get(repStr);
|
|
- }
|
|
- }
|
|
-
|
|
- public static void setByteArray(String repStr, byte[] repStrBytes) {
|
|
- synchronized (repStrToByteArray){
|
|
- repStrToByteArray.put(repStr, repStrBytes);
|
|
- }
|
|
- }
|
|
-
|
|
- public final boolean isSequence() {
|
|
- return isSequence;
|
|
- }
|
|
-
|
|
- public final boolean isSupportedFormat() {
|
|
- return isSupportedFormat;
|
|
- }
|
|
-
|
|
-
|
|
- // This method will return the classname from the typestring OR if the classname turns out to be
|
|
- // a special class "pseudo" name, then the matching real classname is returned.
|
|
- public final String getClassName() {
|
|
-
|
|
- if (isRMIValueType)
|
|
- return typeString;
|
|
- else if (isIDLType)
|
|
- return completeClassName;
|
|
- else return null;
|
|
-
|
|
- }
|
|
-
|
|
- // This method calls getClazzFromType() and falls back to the repStrToClass
|
|
- // cache if no class was found. It's used where any class matching the
|
|
- // given repid is an acceptable result.
|
|
- public final Class getAnyClassFromType() throws ClassNotFoundException {
|
|
- try {
|
|
- return getClassFromType();
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- Class clz = (Class)repStrToClass.get(repId);
|
|
- if (clz != null)
|
|
- return clz;
|
|
- else
|
|
- throw cnfe;
|
|
- }
|
|
- }
|
|
-
|
|
- public final Class getClassFromType()
|
|
- throws ClassNotFoundException {
|
|
- if (clazz != null)
|
|
- return clazz;
|
|
-
|
|
- Class specialCase = (Class)kSpecialCasesClasses.get(getClassName());
|
|
-
|
|
- if (specialCase != null){
|
|
- clazz = specialCase;
|
|
- return specialCase;
|
|
- }
|
|
- else
|
|
- {
|
|
- try{
|
|
- return Util.loadClass(getClassName(), null, null);
|
|
- }
|
|
- catch(ClassNotFoundException cnfe){
|
|
- if (defaultServerURL != null) {
|
|
- try{
|
|
- return getClassFromType(defaultServerURL);
|
|
- }
|
|
- catch(MalformedURLException mue){
|
|
- throw cnfe;
|
|
- }
|
|
- }
|
|
- else throw cnfe;
|
|
- }
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public final Class getClassFromType(Class expectedType, String codebase)
|
|
- throws ClassNotFoundException {
|
|
- if (clazz != null)
|
|
- return clazz;
|
|
-
|
|
- Class specialCase = (Class)kSpecialCasesClasses.get(getClassName());
|
|
-
|
|
- if (specialCase != null){
|
|
- clazz = specialCase;
|
|
- return specialCase;
|
|
- } else {
|
|
- ClassLoader expectedTypeClassLoader = (expectedType == null ? null : expectedType.getClassLoader());
|
|
- return loadClassOfType(getClassName(),
|
|
- codebase,
|
|
- expectedTypeClassLoader,
|
|
- expectedType,
|
|
- expectedTypeClassLoader);
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public final Class getClassFromType(String url)
|
|
- throws ClassNotFoundException, MalformedURLException {
|
|
- return Util.loadClass(getClassName(), url, null);
|
|
- }
|
|
-
|
|
- public final String toString() {
|
|
- return repId;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Checks to see if the FullValueDescription should be retrieved.
|
|
- * @exception Throws IOException if suids do not match or if the repositoryID
|
|
- * is not an RMIValueType
|
|
- */
|
|
- public static boolean useFullValueDescription(Class clazz, String repositoryID)
|
|
- throws IOException{
|
|
-
|
|
- String clazzRepIDStr = createForAnyType(clazz);
|
|
-
|
|
- if (clazzRepIDStr.equals(repositoryID))
|
|
- return false;
|
|
-
|
|
- RepositoryId_1_3_1 targetRepid;
|
|
- RepositoryId_1_3_1 clazzRepid;
|
|
-
|
|
- synchronized(cache) {
|
|
- // to avoid race condition where multiple threads could be
|
|
- // accessing this method, and their access to the cache may
|
|
- // be interleaved giving unexpected results
|
|
-
|
|
- targetRepid = cache.getId(repositoryID);
|
|
- clazzRepid = cache.getId(clazzRepIDStr);
|
|
- }
|
|
- //ObjectStreamClass osc = ObjectStreamClass.lookup(clazz);
|
|
-
|
|
- if ((targetRepid.isRMIValueType()) && (clazzRepid.isRMIValueType())){
|
|
- if (!targetRepid.getSerialVersionUID().equals(clazzRepid.getSerialVersionUID())) {
|
|
-
|
|
- String mssg = "Mismatched serialization UIDs : Source (Rep. ID" +
|
|
- clazzRepid + ") = " +
|
|
- clazzRepid.getSerialVersionUID() + " whereas Target (Rep. ID " + repositoryID +
|
|
- ") = " + targetRepid.getSerialVersionUID();
|
|
- //com.sun.corba.se.impl.io.ValueUtility.log("RepositoryId",mssg);
|
|
- throw new IOException(mssg);
|
|
- }
|
|
- else {
|
|
- return true;
|
|
- }
|
|
- }
|
|
- else {
|
|
-
|
|
- throw new IOException("The repository ID is not of an RMI value type (Expected ID = " + clazzRepIDStr + "; Received ID = " + repositoryID +")");
|
|
- }
|
|
- }
|
|
-
|
|
- private static String createHashString(java.io.Serializable ser) {
|
|
-
|
|
- return createHashString(ser.getClass());
|
|
- }
|
|
-
|
|
- private static String createHashString(java.lang.Class clazz) {
|
|
-
|
|
- if (clazz.isInterface() || !java.io.Serializable.class.isAssignableFrom(clazz))
|
|
- return kInterfaceHashCode;
|
|
-
|
|
- //ObjectStreamClass osc = ObjectStreamClass.lookup(clazz);
|
|
-
|
|
- long actualLong = ObjectStreamClass_1_3_1.getActualSerialVersionUID(clazz);
|
|
- String hash = null;
|
|
- if (actualLong == 0)
|
|
- hash = kInterfaceOnlyHashStr;
|
|
- else if (actualLong == 1)
|
|
- hash = kExternalizableHashStr;
|
|
- else
|
|
- hash = Long.toHexString(actualLong).toUpperCase();
|
|
- while(hash.length() < 16){
|
|
- hash = "0" + hash;
|
|
- }
|
|
-
|
|
- long declaredLong = ObjectStreamClass_1_3_1.getSerialVersionUID(clazz);
|
|
- String declared = null;
|
|
- if (declaredLong == 0)
|
|
- declared = kInterfaceOnlyHashStr;
|
|
- else if (declaredLong == 1)
|
|
- declared = kExternalizableHashStr;
|
|
- else
|
|
- declared = Long.toHexString(declaredLong).toUpperCase();
|
|
- while (declared.length() < 16){
|
|
- declared = "0" + declared;
|
|
- }
|
|
- hash = hash + ":" + declared;
|
|
-
|
|
- return ":" + hash;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a sequence. This is for expert users only as
|
|
- * this method assumes the object passed is an array. If passed an object
|
|
- * that is not an array, it will produce a rep id for a sequence of zero
|
|
- * length. This would be an error.
|
|
- * @param ser The Java object to create a repository ID for
|
|
- **/
|
|
- public static String createSequenceRepID(java.lang.Object ser){
|
|
- return createSequenceRepID(ser.getClass());
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a sequence. This is for expert users only as
|
|
- * this method assumes the object passed is an array. If passed an object
|
|
- * that is not an array, it will produce a malformed rep id.
|
|
- * @param clazz The Java class to create a repository ID for
|
|
- **/
|
|
- public static String createSequenceRepID(java.lang.Class clazz){
|
|
- synchronized (classSeqToRepStr){
|
|
-
|
|
- String repid = (String)classSeqToRepStr.get(clazz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- Class originalClazz = clazz;
|
|
-
|
|
- Class type = null;
|
|
- int numOfDims = 0;
|
|
-
|
|
- while ((type = clazz.getComponentType()) != null) {
|
|
- numOfDims++;
|
|
- clazz = type;
|
|
- }
|
|
-
|
|
- if (clazz.isPrimitive())
|
|
- repid = kValuePrefix + originalClazz.getName() + kPrimitiveSequenceValueHash;
|
|
- else {
|
|
- StringBuffer buf = new StringBuffer();
|
|
- buf.append(kValuePrefix);
|
|
- while(numOfDims-- > 0) {
|
|
- buf.append("[");
|
|
- }
|
|
- buf.append("L");
|
|
- buf.append(convertToISOLatin1(clazz.getName()));
|
|
- buf.append(";");
|
|
- buf.append(createHashString(clazz));
|
|
- repid = buf.toString();
|
|
- }
|
|
- classSeqToRepStr.put(originalClazz,repid);
|
|
- return repid;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
-
|
|
- public static String createForSpecialCase(java.lang.Class clazz){
|
|
- if (clazz.isArray()){
|
|
- return createSequenceRepID(clazz);
|
|
- }
|
|
- else {
|
|
- return (String)kSpecialCasesRepIDs.get(clazz);
|
|
- }
|
|
- }
|
|
-
|
|
- public static String createForSpecialCase(java.io.Serializable ser){
|
|
- Class clazz = ser.getClass();
|
|
- if (clazz.isArray()){
|
|
- return createSequenceRepID(ser);
|
|
- }
|
|
- else
|
|
- return createForSpecialCase(clazz);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a normal Java Type.
|
|
- * @param ser The Java object to create a repository ID for
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser implements the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForJavaType(java.io.Serializable ser)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classToRepStr) {
|
|
- String repid = createForSpecialCase(ser);
|
|
- if (repid != null)
|
|
- return repid;
|
|
- Class clazz = ser.getClass();
|
|
- repid = (String)classToRepStr.get(clazz);
|
|
-
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kValuePrefix + convertToISOLatin1(clazz.getName()) +
|
|
- createHashString(clazz);
|
|
-
|
|
- classToRepStr.put(clazz, repid);
|
|
- repStrToClass.put(repid, clazz);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for a normal Java Type.
|
|
- * @param clz The Java class to create a repository ID for
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser implements the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForJavaType(Class clz)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classToRepStr){
|
|
- String repid = createForSpecialCase(clz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = (String)classToRepStr.get(clz);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kValuePrefix + convertToISOLatin1(clz.getName()) +
|
|
- createHashString(clz);
|
|
-
|
|
- classToRepStr.put(clz, repid);
|
|
- repStrToClass.put(repid, clz);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a repository ID for an IDL Java Type.
|
|
- * @param ser The IDL Value object to create a repository ID for
|
|
- * @param major The major version number
|
|
- * @param minor The minor version number
|
|
- * @exception com.sun.corba.se.impl.io.TypeMismatchException if ser does not implement the
|
|
- * org.omg.CORBA.portable.IDLEntity interface which indicates it is an IDL Value type.
|
|
- **/
|
|
- public static String createForIDLType(Class ser, int major, int minor)
|
|
- throws com.sun.corba.se.impl.io.TypeMismatchException
|
|
- {
|
|
- synchronized (classIDLToRepStr){
|
|
- String repid = (String)classIDLToRepStr.get(ser);
|
|
- if (repid != null)
|
|
- return repid;
|
|
-
|
|
- repid = kIDLPrefix + convertToISOLatin1(ser.getName()).replace('.','/') +
|
|
- ":" + major + "." + minor;
|
|
- classIDLToRepStr.put(ser, repid);
|
|
- return repid;
|
|
- }
|
|
- }
|
|
-
|
|
- private static String getIdFromHelper(Class clazz){
|
|
- try {
|
|
- Class helperClazz = Utility.loadClassForClass(clazz.getName()+"Helper", null,
|
|
- clazz.getClassLoader(), clazz, clazz.getClassLoader());
|
|
- Method idMethod = helperClazz.getDeclaredMethod("id", kNoParamTypes);
|
|
- return (String)idMethod.invoke(null, kNoArgs);
|
|
- }
|
|
- catch(java.lang.ClassNotFoundException cnfe)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(cnfe.toString());
|
|
- }
|
|
- catch(java.lang.NoSuchMethodException nsme)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(nsme.toString());
|
|
- }
|
|
- catch(java.lang.reflect.InvocationTargetException ite)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(ite.toString());
|
|
- }
|
|
- catch(java.lang.IllegalAccessException iae)
|
|
- {
|
|
- throw new org.omg.CORBA.MARSHAL(iae.toString());
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Createa a repository ID for the type if it is either a java type
|
|
- * or an IDL type.
|
|
- * @param type The type to create rep. id for
|
|
- * @return The rep. id.
|
|
- **/
|
|
- public static String createForAnyType(Class type) {
|
|
- try{
|
|
- if (type.isArray())
|
|
- return createSequenceRepID(type);
|
|
- else if (IDLEntity.class.isAssignableFrom(type))
|
|
- {
|
|
- try{
|
|
- return getIdFromHelper(type);
|
|
- }
|
|
- catch(Throwable t) {
|
|
- return createForIDLType(type, 1, 0);
|
|
- }
|
|
- }
|
|
- else return createForJavaType(type);
|
|
- }
|
|
- catch(com.sun.corba.se.impl.io.TypeMismatchException e){
|
|
- return null;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isAbstractBase(Class clazz) {
|
|
- return (clazz.isInterface() &&
|
|
- IDLEntity.class.isAssignableFrom(clazz) &&
|
|
- (!ValueBase.class.isAssignableFrom(clazz)) &&
|
|
- (!org.omg.CORBA.Object.class.isAssignableFrom(clazz)));
|
|
-
|
|
- }
|
|
-
|
|
- public static boolean isAnyRequired(Class clazz) {
|
|
- return ((clazz == java.lang.Object.class) ||
|
|
- (clazz == java.io.Serializable.class) ||
|
|
- (clazz == java.io.Externalizable.class));
|
|
- }
|
|
-
|
|
- public static long fromHex(String hexNumber) {
|
|
- if (hexNumber.startsWith("0x"))
|
|
- return Long.valueOf(hexNumber.substring(2), 16).longValue();
|
|
- else return Long.valueOf(hexNumber, 16).longValue();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Convert strings with illegal IDL identifier characters.
|
|
- * <p>
|
|
- * Section 5.5.7 of OBV spec.
|
|
- */
|
|
- private static String convertToISOLatin1 (String name) {
|
|
-
|
|
- int length = name.length();
|
|
- if (length == 0) {
|
|
- return name;
|
|
- }
|
|
- StringBuffer buffer = null;
|
|
-
|
|
- for (int i = 0; i < length; i++) {
|
|
-
|
|
- char c = name.charAt(i);
|
|
-
|
|
- if (c > 255 || IDL_IDENTIFIER_CHARS[c] == 0) {
|
|
-
|
|
- // We gotta convert. Have we already started?
|
|
-
|
|
- if (buffer == null) {
|
|
-
|
|
- // No, so get set up...
|
|
-
|
|
- buffer = new StringBuffer(name.substring(0,i));
|
|
- }
|
|
-
|
|
- // Convert the character into the IDL escape syntax...
|
|
- buffer.append(
|
|
- "\\U" +
|
|
- (char)ASCII_HEX[(c & 0xF000) >>> 12] +
|
|
- (char)ASCII_HEX[(c & 0x0F00) >>> 8] +
|
|
- (char)ASCII_HEX[(c & 0x00F0) >>> 4] +
|
|
- (char)ASCII_HEX[(c & 0x000F)]);
|
|
-
|
|
- } else {
|
|
- if (buffer != null) {
|
|
- buffer.append(c);
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- if (buffer != null) {
|
|
- name = buffer.toString();
|
|
- }
|
|
-
|
|
- return name;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Convert strings with ISO Latin 1 escape sequences back to original strings.
|
|
- * <p>
|
|
- * Section 5.5.7 of OBV spec.
|
|
- */
|
|
- private static String convertFromISOLatin1 (String name) {
|
|
-
|
|
- int index = -1;
|
|
- StringBuffer buf = new StringBuffer(name);
|
|
-
|
|
- while ((index = buf.toString().indexOf("\\U")) != -1){
|
|
- String str = "0000" + buf.toString().substring(index+2, index+6);
|
|
-
|
|
- // Convert Hexadecimal
|
|
- byte[] buffer = new byte[(str.length() - 4) / 2];
|
|
- for (int i=4, j=0; i < str.length(); i +=2, j++) {
|
|
- buffer[j] = (byte)((ORBUtility.hexOf(str.charAt(i)) << 4) & 0xF0);
|
|
- buffer[j] |= (byte)((ORBUtility.hexOf(str.charAt(i+1)) << 0) & 0x0F);
|
|
- }
|
|
- buf = new StringBuffer(delete(buf.toString(), index, index+6));
|
|
- buf.insert(index, (char)buffer[1]);
|
|
- }
|
|
-
|
|
- return buf.toString();
|
|
-
|
|
-
|
|
- }
|
|
-
|
|
- private static String delete(String str, int from, int to)
|
|
- {
|
|
- return str.substring(0, from) + str.substring(to, str.length());
|
|
- }
|
|
-
|
|
- private static String replace(String target, String arg, String source)
|
|
- {
|
|
- int i = 0;
|
|
- i = target.indexOf(arg);
|
|
-
|
|
- while(i != -1)
|
|
- {
|
|
- String left = target.substring(0, i);
|
|
- String right = target.substring(i+arg.length());
|
|
- target = new String(left+source+right);
|
|
- i = target.indexOf(arg);
|
|
- }
|
|
- return target;
|
|
- }
|
|
-
|
|
- public static int computeValueTag(boolean codeBasePresent, int typeInfo, boolean chunkedEncoding){
|
|
- int value_tag = kInitialValueTag;
|
|
-
|
|
- if (codeBasePresent)
|
|
- value_tag = value_tag | 0x00000001;
|
|
-
|
|
- value_tag = value_tag | typeInfo;
|
|
-
|
|
- if (chunkedEncoding)
|
|
- value_tag = value_tag | kChunkedMask;
|
|
-
|
|
- return value_tag;
|
|
- }
|
|
-
|
|
- public static boolean isCodeBasePresent(int value_tag){
|
|
- return ((value_tag & 0x00000001) == 1);
|
|
- }
|
|
-
|
|
- public static int getTypeInfo(int value_tag){
|
|
- return (value_tag & 0x00000006);
|
|
- }
|
|
-
|
|
- public static boolean isChunkedEncoding(int value_tag){
|
|
- return ((value_tag & kChunkedMask) != 0);
|
|
- }
|
|
-
|
|
- public static String getServerURL(){
|
|
- return defaultServerURL;
|
|
- }
|
|
-
|
|
- /*
|
|
- * Load a class and check that it is assignable to a given type.
|
|
- * @param className the class name.
|
|
- * @param remoteCodebase the codebase to use. May be null.
|
|
- * @param loader the class loader of last resort. May be null.
|
|
- * @param expectedType the expected type. May be null.
|
|
- * @return the loaded class.
|
|
- */
|
|
- private Class loadClassOfType (String className,
|
|
- String remoteCodebase,
|
|
- ClassLoader loader,
|
|
- Class expectedType,
|
|
- ClassLoader expectedTypeClassLoader)
|
|
- throws ClassNotFoundException {
|
|
-
|
|
- Class loadedClass = null;
|
|
-
|
|
- try {
|
|
- //Sequence finding of the stubs according to spec
|
|
- try{
|
|
- //If-else is put here for speed up of J2EE.
|
|
- //According to the OMG spec, the if clause is not dead code.
|
|
- //It can occur if some compiler has allowed generation
|
|
- //into org.omg.stub hierarchy for non-offending
|
|
- //classes. This will encourage people to
|
|
- //produce non-offending class stubs in their own hierarchy.
|
|
- if(!PackagePrefixChecker
|
|
- .hasOffendingPrefix(PackagePrefixChecker
|
|
- .withoutPackagePrefix(className))){
|
|
- loadedClass = Util.loadClass
|
|
- (PackagePrefixChecker.withoutPackagePrefix(className),
|
|
- remoteCodebase,
|
|
- loader);
|
|
- } else {
|
|
- loadedClass = Util.loadClass
|
|
- (className,
|
|
- remoteCodebase,
|
|
- loader);
|
|
- }
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- loadedClass = Util.loadClass
|
|
- (className,
|
|
- remoteCodebase,
|
|
- loader);
|
|
- }
|
|
- if (expectedType == null)
|
|
- return loadedClass;
|
|
- } catch (ClassNotFoundException cnfe) {
|
|
- if (expectedType == null)
|
|
- throw cnfe;
|
|
- }
|
|
-
|
|
- // If no class was not loaded, or if the loaded class is not of the
|
|
- // correct type, make a further attempt to load the correct class
|
|
- // using the classloader of the expected type.
|
|
- // _REVISIT_ Is this step necessary, or should the Util,loadClass
|
|
- // algorithm always produce a valid class if the setup is correct?
|
|
- // Does the OMG standard algorithm need to be changed to include
|
|
- // this step?
|
|
- if (loadedClass == null || !expectedType.isAssignableFrom(loadedClass)) {
|
|
- if (expectedType.getClassLoader() != expectedTypeClassLoader)
|
|
- throw new IllegalArgumentException("expectedTypeClassLoader not class loader of expectedType.");
|
|
-
|
|
- if (expectedTypeClassLoader != null)
|
|
- loadedClass = expectedTypeClassLoader.loadClass(className);
|
|
- else
|
|
- loadedClass = Class.forName(className);
|
|
- }
|
|
-
|
|
- return loadedClass;
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3.java 2012-08-10 09:10:35.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,251 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-/*
|
|
- * Licensed Materials - Property of IBM
|
|
- * RMI-IIOP v1.0
|
|
- * Copyright IBM Corp. 1998 1999 All Rights Reserved
|
|
- *
|
|
- */
|
|
-
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import javax.rmi.CORBA.Util;
|
|
-import javax.rmi.PortableRemoteObject;
|
|
-
|
|
-import java.util.Hashtable;
|
|
-import java.util.Stack;
|
|
-import java.io.IOException;
|
|
-import java.util.EmptyStackException;
|
|
-
|
|
-import com.sun.corba.se.impl.util.Utility;
|
|
-import com.sun.corba.se.impl.io.IIOPInputStream;
|
|
-import com.sun.corba.se.impl.io.IIOPOutputStream;
|
|
-import com.sun.corba.se.impl.util.RepositoryId;
|
|
-import com.sun.corba.se.impl.util.Utility;
|
|
-
|
|
-import org.omg.CORBA.TCKind;
|
|
-import org.omg.CORBA.MARSHAL;
|
|
-import org.omg.CORBA.CompletionStatus;
|
|
-import org.omg.CORBA.portable.IndirectionException;
|
|
-import com.sun.org.omg.SendingContext.CodeBase;
|
|
-
|
|
-import java.security.AccessController;
|
|
-import java.security.PrivilegedAction;
|
|
-
|
|
-/**
|
|
- * This class overrides behavior of our current ValueHandlerImpl to
|
|
- * provide backwards compatibility with JDK 1.3.0.
|
|
- */
|
|
-public class ValueHandlerImpl_1_3 extends com.sun.corba.se.impl.io.ValueHandlerImpl {
|
|
-
|
|
- public ValueHandlerImpl_1_3(){
|
|
- super();
|
|
- }
|
|
-
|
|
- public ValueHandlerImpl_1_3(boolean isInputStream) {
|
|
- super(isInputStream);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Writes the value to the stream using java semantics.
|
|
- * @param out The stream to write the value to
|
|
- * @param value The value to be written to the stream
|
|
- **/
|
|
- public void writeValue(org.omg.CORBA.portable.OutputStream _out, java.io.Serializable value) {
|
|
- super.writeValue(_out, value);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Reads a value from the stream using java semantics.
|
|
- * @param in The stream to read the value from
|
|
- * @param clazz The type of the value to be read in
|
|
- * @param sender The sending context runtime
|
|
- **/
|
|
- public java.io.Serializable readValue(org.omg.CORBA.portable.InputStream _in,
|
|
- int offset,
|
|
- java.lang.Class clazz,
|
|
- String repositoryID,
|
|
- org.omg.SendingContext.RunTime _sender)
|
|
- {
|
|
- return super.readValue(_in, offset, clazz, repositoryID, _sender);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Returns the repository ID for the given RMI value Class.
|
|
- * @param clz The class to return a repository ID for.
|
|
- * @return the repository ID of the Class.
|
|
- **/
|
|
- public java.lang.String getRMIRepositoryID(java.lang.Class clz) {
|
|
- return RepositoryId_1_3.createForJavaType(clz);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Indicates whether the given Class performs custom or
|
|
- * default marshaling.
|
|
- * @param clz The class to test for custom marshaling.
|
|
- * @return True if the class performs custom marshaling, false
|
|
- * if it does not.
|
|
- **/
|
|
- public boolean isCustomMarshaled(java.lang.Class clz) {
|
|
- return super.isCustomMarshaled(clz);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Returns the CodeBase for this ValueHandler. This is used by
|
|
- * the ORB runtime. The server sends the service context containing
|
|
- * the IOR for this CodeBase on the first GIOP reply. The clients
|
|
- * do the same on the first GIOP request.
|
|
- * @return the SendingContext.CodeBase of this ValueHandler.
|
|
- **/
|
|
- public org.omg.SendingContext.RunTime getRunTimeCodeBase() {
|
|
- return super.getRunTimeCodeBase();
|
|
- }
|
|
-
|
|
- /**
|
|
- * If the value contains a writeReplace method then the result
|
|
- * is returned. Otherwise, the value itself is returned.
|
|
- * @return the true value to marshal on the wire.
|
|
- **/
|
|
- public java.io.Serializable writeReplace(java.io.Serializable value) {
|
|
- return super.writeReplace(value);
|
|
- }
|
|
-
|
|
- // methods supported for backward compatability so that the appropriate
|
|
- // Rep-id calculations take place based on the ORB version
|
|
-
|
|
- /**
|
|
- * Returns a boolean of whether or not RepositoryId indicates
|
|
- * FullValueDescriptor.
|
|
- * used for backward compatability
|
|
- */
|
|
-
|
|
- public boolean useFullValueDescription(Class clazz, String repositoryID)
|
|
- throws IOException
|
|
-
|
|
- {
|
|
- return RepositoryId_1_3.useFullValueDescription(clazz, repositoryID);
|
|
- }
|
|
-
|
|
- public String getClassName(String id)
|
|
- {
|
|
- RepositoryId_1_3 repID = RepositoryId_1_3.cache.getId(id);
|
|
- return repID.getClassName();
|
|
- }
|
|
-
|
|
- public Class getClassFromType(String id)
|
|
- throws ClassNotFoundException
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.getClassFromType();
|
|
- }
|
|
-
|
|
- public Class getAnyClassFromType(String id)
|
|
- throws ClassNotFoundException
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.getAnyClassFromType();
|
|
- }
|
|
-
|
|
- public String createForAnyType(Class cl)
|
|
- {
|
|
- return RepositoryId_1_3.createForAnyType(cl);
|
|
- }
|
|
-
|
|
- public String getDefinedInId(String id)
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.getDefinedInId();
|
|
- }
|
|
-
|
|
- public String getUnqualifiedName(String id)
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.getUnqualifiedName();
|
|
- }
|
|
-
|
|
- public String getSerialVersionUID(String id)
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.getSerialVersionUID();
|
|
- }
|
|
-
|
|
- public boolean isAbstractBase(Class clazz)
|
|
- {
|
|
- return RepositoryId_1_3.isAbstractBase(clazz);
|
|
- }
|
|
-
|
|
- public boolean isSequence(String id)
|
|
- {
|
|
- RepositoryId_1_3 repId = RepositoryId_1_3.cache.getId(id);
|
|
- return repId.isSequence();
|
|
- }
|
|
-
|
|
- /**
|
|
- * Preserves the incorrect 1.3 behavior which truncates Java chars in
|
|
- * arrays to 8-bit CORBA chars. Bug 4367783. This enables us to
|
|
- * continue interoperating with our legacy ORBs. If this goes into
|
|
- * Ladybird, then Ladybird and Kestrel will interoperate as long as
|
|
- * people don't use chars greater than 8-bits.
|
|
- */
|
|
- protected void writeCharArray(org.omg.CORBA_2_3.portable.OutputStream out,
|
|
- char[] array,
|
|
- int offset,
|
|
- int length)
|
|
- {
|
|
- out.write_char_array(array, offset, length);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Preserves the incorrect 1.3 behavior which truncates Java chars in
|
|
- * arrays to 8-bit CORBA chars. Bug 4367783. This enables us to
|
|
- * continue interoperating with our legacy ORBs. If this goes into
|
|
- * Ladybird, then Ladybird and Kestrel will interoperate as long as
|
|
- * people don't use chars greater than 8-bits.
|
|
- */
|
|
- protected void readCharArray(org.omg.CORBA_2_3.portable.InputStream in,
|
|
- char[] array,
|
|
- int offset,
|
|
- int length)
|
|
- {
|
|
- in.read_char_array(array, offset, length);
|
|
- }
|
|
-
|
|
- protected final String getOutputStreamClassName() {
|
|
- return "com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3";
|
|
- }
|
|
-
|
|
- protected final String getInputStreamClassName() {
|
|
- return "com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3";
|
|
- }
|
|
-
|
|
- /**
|
|
- * Our JDK 1.3 and JDK 1.3.1 behavior subclasses override this.
|
|
- * The correct behavior is for a Java char to map to a CORBA wchar,
|
|
- * but our older code mapped it to a CORBA char.
|
|
- */
|
|
- protected TCKind getJavaCharTCKind() {
|
|
- return TCKind.tk_char;
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3_1.java 2012-08-10 09:10:35.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3_1.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,77 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation. Oracle designates this
|
|
- * particular file as subject to the "Classpath" exception as provided
|
|
- * by Oracle in the LICENSE file that accompanied this code.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-package com.sun.corba.se.impl.orbutil;
|
|
-
|
|
-import org.omg.CORBA.TCKind;
|
|
-
|
|
-/**
|
|
- * This class overrides behavior of our current ValueHandlerImpl to
|
|
- * provide backwards compatibility with JDK 1.3.1.
|
|
- */
|
|
-public class ValueHandlerImpl_1_3_1
|
|
- extends com.sun.corba.se.impl.io.ValueHandlerImpl
|
|
-{
|
|
- public ValueHandlerImpl_1_3_1() {}
|
|
-
|
|
- public ValueHandlerImpl_1_3_1(boolean isInputStream) {
|
|
- super(isInputStream);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Our JDK 1.3 and JDK 1.3.1 behavior subclasses override this.
|
|
- * The correct behavior is for a Java char to map to a CORBA wchar,
|
|
- * but our older code mapped it to a CORBA char.
|
|
- */
|
|
- protected TCKind getJavaCharTCKind() {
|
|
- return TCKind.tk_char;
|
|
- }
|
|
-
|
|
- /**
|
|
- * RepositoryId_1_3_1 performs an incorrect repId calculation
|
|
- * when using serialPersistentFields and one of the fields no longer
|
|
- * exists on the class itself.
|
|
- */
|
|
- public boolean useFullValueDescription(Class clazz, String repositoryID)
|
|
- throws java.io.IOException
|
|
- {
|
|
- return RepositoryId_1_3_1.useFullValueDescription(clazz, repositoryID);
|
|
- }
|
|
-
|
|
- /**
|
|
- * Installs the legacy IIOPOutputStream_1_3_1 which does
|
|
- * PutFields/GetFields incorrectly. Bug 4407244.
|
|
- */
|
|
- protected final String getOutputStreamClassName() {
|
|
- return "com.sun.corba.se.impl.orbutil.IIOPOutputStream_1_3_1";
|
|
- }
|
|
-
|
|
- /**
|
|
- * Installs the legacy IIOPInputStream_1_3_1 which does
|
|
- * PutFields/GetFields incorrectly. Bug 4407244.
|
|
- */
|
|
- protected final String getInputStreamClassName() {
|
|
- return "com.sun.corba.se.impl.orbutil.IIOPInputStream_1_3_1";
|
|
- }
|
|
-}
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaMessageMediatorImpl.java 2012-08-10 09:10:41.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaMessageMediatorImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -1794,8 +1794,7 @@
|
|
|
|
if (msg.getGIOPVersion().lessThan(GIOPVersion.V1_2)) {
|
|
// locate msgs 1.0 & 1.1 :=> grow,
|
|
- // REVISIT - build from factory
|
|
- outputObject = new CDROutputObject(
|
|
+ outputObject = sun.corba.OutputStreamFactory.newCDROutputObject(
|
|
(ORB) messageMediator.getBroker(),
|
|
this,
|
|
GIOPVersion.V1_0,
|
|
@@ -1804,8 +1803,7 @@
|
|
ORBConstants.STREAM_FORMAT_VERSION_1);
|
|
} else {
|
|
// 1.2 :=> stream
|
|
- // REVISIT - build from factory
|
|
- outputObject = new CDROutputObject(
|
|
+ outputObject = sun.corba.OutputStreamFactory.newCDROutputObject(
|
|
(ORB) messageMediator.getBroker(),
|
|
messageMediator,
|
|
reply,
|
|
@@ -1959,7 +1957,8 @@
|
|
ReplyMessage.NEEDS_ADDRESSING_MODE,
|
|
null, null);
|
|
// REVISIT: via acceptor factory.
|
|
- CDROutputObject outputObject = new CDROutputObject(
|
|
+ CDROutputObject outputObject =
|
|
+ sun.corba.OutputStreamFactory.newCDROutputObject(
|
|
(ORB)messageMediator.getBroker(),
|
|
this,
|
|
messageMediator.getGIOPVersion(),
|
|
@@ -2126,7 +2125,7 @@
|
|
ex.printStackTrace(pw);
|
|
pw.flush(); // NOTE: you must flush or baos will be empty.
|
|
EncapsOutputStream encapsOutputStream =
|
|
- new EncapsOutputStream((ORB)mediator.getBroker());
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)mediator.getBroker());
|
|
encapsOutputStream.putEndian();
|
|
encapsOutputStream.write_wstring(baos.toString());
|
|
UnknownServiceContext serviceContext =
|
|
@@ -2203,12 +2202,11 @@
|
|
// REVISIT = do not use null.
|
|
//
|
|
if (messageMediator.getConnection() == null) {
|
|
- // REVISIT - needs factory
|
|
replyOutputObject =
|
|
- new CDROutputObject(orb, messageMediator,
|
|
- messageMediator.getReplyHeader(),
|
|
- messageMediator.getStreamFormatVersion(),
|
|
- BufferManagerFactory.GROW);
|
|
+ sun.corba.OutputStreamFactory.newCDROutputObject(orb,
|
|
+ messageMediator, messageMediator.getReplyHeader(),
|
|
+ messageMediator.getStreamFormatVersion(),
|
|
+ BufferManagerFactory.GROW);
|
|
} else {
|
|
replyOutputObject = messageMediator.getConnection().getAcceptor()
|
|
.createOutputObject(messageMediator.getBroker(), messageMediator);
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage_1_2.java 2012-08-10 09:10:43.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage_1_2.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -41,7 +41,6 @@
|
|
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
|
|
import com.sun.corba.se.spi.logging.CORBALogDomains ;
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/MessageBase.java 2012-08-10 09:10:45.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/MessageBase.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -60,9 +60,10 @@
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
import com.sun.corba.se.impl.orbutil.ORBConstants;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.impl.protocol.AddressingDispositionException;
|
|
|
|
+import sun.corba.SharedSecrets;
|
|
+
|
|
/**
|
|
* This class acts as the base class for the various GIOP message types. This
|
|
* also serves as a factory to create various message types. We currently
|
|
@@ -909,7 +910,8 @@
|
|
SystemException sysEx = null;
|
|
|
|
try {
|
|
- Class clazz = ORBClassLoader.loadClass(exClassName);
|
|
+ Class<?> clazz =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass(exClassName);
|
|
if (message == null) {
|
|
sysEx = (SystemException) clazz.newInstance();
|
|
} else {
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_0.java 2012-08-10 09:10:46.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_0.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -37,7 +37,6 @@
|
|
import com.sun.corba.se.spi.servicecontext.ServiceContexts;
|
|
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.spi.ior.IOR;
|
|
import com.sun.corba.se.impl.encoding.CDRInputStream;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_1.java 2012-08-10 09:10:46.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_1.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -37,7 +37,6 @@
|
|
import com.sun.corba.se.spi.servicecontext.ServiceContexts;
|
|
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
|
|
import com.sun.corba.se.impl.orbutil.ORBUtility;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader;
|
|
import com.sun.corba.se.spi.ior.IOR;
|
|
import com.sun.corba.se.impl.encoding.CDRInputStream;
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaContactInfoBase.java 2012-08-10 09:10:48.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaContactInfoBase.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -214,7 +214,7 @@
|
|
messageMediator;
|
|
|
|
OutputObject outputObject =
|
|
- new CDROutputObject(orb, messageMediator,
|
|
+ sun.corba.OutputStreamFactory.newCDROutputObject(orb, messageMediator,
|
|
corbaMessageMediator.getRequestHeader(),
|
|
corbaMessageMediator.getStreamFormatVersion());
|
|
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/transport/SharedCDRContactInfoImpl.java 2012-08-10 09:10:50.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/transport/SharedCDRContactInfoImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -134,7 +134,7 @@
|
|
messageMediator;
|
|
// NOTE: GROW.
|
|
OutputObject outputObject =
|
|
- new CDROutputObject(orb, messageMediator,
|
|
+ sun.corba.OutputStreamFactory.newCDROutputObject(orb, messageMediator,
|
|
corbaMessageMediator.getRequestHeader(),
|
|
corbaMessageMediator.getStreamFormatVersion(),
|
|
BufferManagerFactory.GROW);
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java 2012-08-10 09:10:50.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -534,9 +534,9 @@
|
|
{
|
|
CorbaMessageMediator corbaMessageMediator = (CorbaMessageMediator)
|
|
messageMediator;
|
|
- return new CDROutputObject((ORB) broker, corbaMessageMediator,
|
|
- corbaMessageMediator.getReplyHeader(),
|
|
- corbaMessageMediator.getStreamFormatVersion());
|
|
+ return sun.corba.OutputStreamFactory.newCDROutputObject((ORB) broker,
|
|
+ corbaMessageMediator, corbaMessageMediator.getReplyHeader(),
|
|
+ corbaMessageMediator.getStreamFormatVersion());
|
|
}
|
|
|
|
////////////////////////////////////////////////////
|
|
--- corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java 2012-08-10 09:10:50.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -1588,8 +1588,8 @@
|
|
{
|
|
// REVISIT: See comments in CDROutputObject constructor.
|
|
CDROutputObject outputObject =
|
|
- new CDROutputObject((ORB)orb, null, giopVersion, this, msg,
|
|
- ORBConstants.STREAM_FORMAT_VERSION_1);
|
|
+ sun.corba.OutputStreamFactory.newCDROutputObject((ORB)orb, null, giopVersion,
|
|
+ this, msg, ORBConstants.STREAM_FORMAT_VERSION_1);
|
|
msg.write(outputObject);
|
|
|
|
outputObject.writeTo(this);
|
|
--- corba/src/share/classes/com/sun/corba/se/spi/ior/TaggedComponentBase.java 2012-08-10 09:10:59.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/spi/ior/TaggedComponentBase.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -42,7 +42,8 @@
|
|
public org.omg.IOP.TaggedComponent getIOPComponent(
|
|
org.omg.CORBA.ORB orb )
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( (ORB)orb ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)orb);
|
|
write( os ) ;
|
|
InputStream is = (InputStream)(os.create_input_stream() ) ;
|
|
return org.omg.IOP.TaggedComponentHelper.read( is ) ;
|
|
--- corba/src/share/classes/com/sun/corba/se/spi/orb/ORB.java 2012-08-10 09:11:09.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/spi/orb/ORB.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -97,7 +97,8 @@
|
|
|
|
import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl ;
|
|
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader ;
|
|
+import sun.awt.AppContext;
|
|
+import sun.corba.SharedSecrets;
|
|
|
|
public abstract class ORB extends com.sun.corba.se.org.omg.CORBA.ORB
|
|
implements Broker, TypeCodeFactory
|
|
@@ -173,14 +174,7 @@
|
|
|
|
protected MonitoringManager monitoringManager;
|
|
|
|
- // There is only one instance of the PresentationManager
|
|
- // that is shared between all ORBs. This is necessary
|
|
- // because RMI-IIOP requires the PresentationManager in
|
|
- // places where no ORB is available, so the PresentationManager
|
|
- // must be global. It is initialized here as well.
|
|
- protected static PresentationManager globalPM = null ;
|
|
-
|
|
- static {
|
|
+ private static PresentationManager setupPresentationManager() {
|
|
staticWrapper = ORBUtilSystemException.get(
|
|
CORBALogDomains.RPC_PRESENTATION ) ;
|
|
|
|
@@ -207,7 +201,7 @@
|
|
|
|
try {
|
|
// First try the configured class name, if any
|
|
- Class cls = ORBClassLoader.loadClass( className ) ;
|
|
+ Class<?> cls = SharedSecrets.getJavaCorbaAccess().loadClass( className ) ;
|
|
sff = (PresentationManager.StubFactoryFactory)cls.newInstance() ;
|
|
} catch (Exception exc) {
|
|
// Use the default. Log the error as a warning.
|
|
@@ -218,12 +212,13 @@
|
|
return sff ;
|
|
}
|
|
}
|
|
- ) ;
|
|
+ );
|
|
|
|
- globalPM = new PresentationManagerImpl( useDynamicStub ) ;
|
|
- globalPM.setStubFactoryFactory( false,
|
|
+ PresentationManager pm = new PresentationManagerImpl( useDynamicStub ) ;
|
|
+ pm.setStubFactoryFactory( false,
|
|
PresentationDefaults.getStaticStubFactoryFactory() ) ;
|
|
- globalPM.setStubFactoryFactory( true, dynamicStubFactoryFactory ) ;
|
|
+ pm.setStubFactoryFactory( true, dynamicStubFactoryFactory ) ;
|
|
+ return pm;
|
|
}
|
|
|
|
public void destroy() {
|
|
@@ -234,11 +229,19 @@
|
|
byteBufferPool = null;
|
|
}
|
|
|
|
- /** Get the single instance of the PresentationManager
|
|
+ /**
|
|
+ * Returns the Presentation Manager for the current thread group, using the ThreadGroup-specific
|
|
+ * AppContext to hold it. Creates and records one if needed.
|
|
*/
|
|
public static PresentationManager getPresentationManager()
|
|
{
|
|
- return globalPM ;
|
|
+ AppContext ac = AppContext.getAppContext();
|
|
+ PresentationManager pm = (PresentationManager) ac.get(PresentationManager.class);
|
|
+ if (pm == null) {
|
|
+ pm = setupPresentationManager();
|
|
+ ac.put(PresentationManager.class, pm);
|
|
+ }
|
|
+ return pm;
|
|
}
|
|
|
|
/** Get the appropriate StubFactoryFactory. This
|
|
@@ -248,8 +251,9 @@
|
|
public static PresentationManager.StubFactoryFactory
|
|
getStubFactoryFactory()
|
|
{
|
|
- boolean useDynamicStubs = globalPM.useDynamicStubs() ;
|
|
- return globalPM.getStubFactoryFactory( useDynamicStubs ) ;
|
|
+ PresentationManager gPM = getPresentationManager();
|
|
+ boolean useDynamicStubs = gPM.useDynamicStubs() ;
|
|
+ return gPM.getStubFactoryFactory( useDynamicStubs ) ;
|
|
}
|
|
|
|
protected ORB()
|
|
@@ -543,6 +547,7 @@
|
|
public abstract ThreadPoolManager getThreadPoolManager();
|
|
|
|
public abstract CopierManager getCopierManager() ;
|
|
+
|
|
}
|
|
|
|
// End of file.
|
|
--- corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java 2012-08-10 09:11:10.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -35,9 +35,10 @@
|
|
import com.sun.corba.se.spi.logging.CORBALogDomains ;
|
|
|
|
import com.sun.corba.se.impl.logging.ORBUtilSystemException ;
|
|
-import com.sun.corba.se.impl.orbutil.ORBClassLoader ;
|
|
import com.sun.corba.se.impl.orbutil.ObjectUtility ;
|
|
|
|
+import sun.corba.SharedSecrets;
|
|
+
|
|
/** This is a static factory class for commonly used operations
|
|
* for property parsing. The following operations are supported:
|
|
* <ul>
|
|
@@ -247,7 +248,8 @@
|
|
String className = getString( value ) ;
|
|
|
|
try {
|
|
- Class result = ORBClassLoader.loadClass( className ) ;
|
|
+ Class<?> result =
|
|
+ SharedSecrets.getJavaCorbaAccess().loadClass( className ) ;
|
|
return result ;
|
|
} catch (Exception exc) {
|
|
ORBUtilSystemException wrapper = ORBUtilSystemException.get(
|
|
--- corba/src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContext.java 2012-08-10 09:11:11.000000000 -0700
|
|
+++ corba/src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContext.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,8 @@
|
|
*/
|
|
public void write(OutputStream s, GIOPVersion gv) throws SystemException
|
|
{
|
|
- EncapsOutputStream os = new EncapsOutputStream( (ORB)(s.orb()), gv ) ;
|
|
+ EncapsOutputStream os =
|
|
+ sun.corba.OutputStreamFactory.newEncapsOutputStream((ORB)(s.orb()), gv);
|
|
os.putEndian() ;
|
|
writeData( os ) ;
|
|
byte[] data = os.toByteArray() ;
|
|
--- corba/src/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java 2012-08-10 09:11:49.000000000 -0700
|
|
+++ corba/src/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -31,6 +31,10 @@
|
|
|
|
package org.omg.CORBA_2_3.portable;
|
|
|
|
+import java.io.SerializablePermission;
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
+
|
|
/**
|
|
* OutputStream provides interface for writing of all of the mapped IDL type
|
|
* to the stream. It extends org.omg.CORBA.portable.OutputStream, and defines
|
|
@@ -43,6 +47,40 @@
|
|
|
|
public abstract class OutputStream extends org.omg.CORBA.portable.OutputStream {
|
|
|
|
+ private static final String ALLOW_SUBCLASS_PROP = "jdk.corba.allowOutputStreamSubclass";
|
|
+ private static final boolean allowSubclass = AccessController.doPrivileged(
|
|
+ new PrivilegedAction<Boolean>() {
|
|
+ @Override
|
|
+ public Boolean run() {
|
|
+ String prop = System.getProperty(ALLOW_SUBCLASS_PROP);
|
|
+ return prop == null ? false :
|
|
+ (prop.equalsIgnoreCase("false") ? false : true);
|
|
+ }
|
|
+ });
|
|
+
|
|
+ private static Void checkPermission() {
|
|
+ SecurityManager sm = System.getSecurityManager();
|
|
+ if (sm != null) {
|
|
+ if (!allowSubclass)
|
|
+ sm.checkPermission(new
|
|
+ SerializablePermission("enableSubclassImplementation"));
|
|
+ }
|
|
+ return null;
|
|
+ }
|
|
+ private OutputStream(Void ignore) { }
|
|
+
|
|
+ /**
|
|
+ * Create a new instance of this class.
|
|
+ *
|
|
+ * throw SecurityException if SecurityManager is installed and
|
|
+ * enableSubclassImplementation SerializablePermission
|
|
+ * is not granted or jdk.corba.allowOutputStreamSubclass system
|
|
+ * property is either not set or is set to 'false'
|
|
+ */
|
|
+ public OutputStream() {
|
|
+ this(checkPermission());
|
|
+ }
|
|
+
|
|
/**
|
|
* Marshals a value type to the output stream.
|
|
* @param value is the acutal value to write
|
|
--- corba/src/share/classes/sun/corba/JavaCorbaAccess.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ corba/src/share/classes/sun/corba/JavaCorbaAccess.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -0,0 +1,33 @@
|
|
+/*
|
|
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation. Oracle designates this
|
|
+ * particular file as subject to the "Classpath" exception as provided
|
|
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ */
|
|
+
|
|
+package sun.corba;
|
|
+
|
|
+import com.sun.corba.se.impl.io.ValueHandlerImpl;
|
|
+
|
|
+public interface JavaCorbaAccess {
|
|
+ public ValueHandlerImpl newValueHandlerImpl();
|
|
+ public Class<?> loadClass(String className) throws ClassNotFoundException;
|
|
+}
|
|
--- corba/src/share/classes/sun/corba/OutputStreamFactory.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ corba/src/share/classes/sun/corba/OutputStreamFactory.java 2013-06-22 09:39:21.000000000 -0700
|
|
@@ -0,0 +1,149 @@
|
|
+/*
|
|
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation. Oracle designates this
|
|
+ * particular file as subject to the "Classpath" exception as provided
|
|
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ */
|
|
+
|
|
+package sun.corba;
|
|
+
|
|
+import com.sun.corba.se.impl.corba.AnyImpl;
|
|
+import com.sun.corba.se.impl.encoding.BufferManagerWrite;
|
|
+import com.sun.corba.se.impl.encoding.CDROutputObject;
|
|
+import com.sun.corba.se.impl.encoding.EncapsOutputStream;
|
|
+import com.sun.corba.se.impl.encoding.TypeCodeOutputStream;
|
|
+import com.sun.corba.se.impl.protocol.giopmsgheaders.Message;
|
|
+
|
|
+import com.sun.corba.se.pept.protocol.MessageMediator;
|
|
+
|
|
+import com.sun.corba.se.spi.orb.ORB;
|
|
+import com.sun.corba.se.spi.transport.CorbaConnection;
|
|
+import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
|
|
+import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
|
|
+
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
+
|
|
+public final class OutputStreamFactory {
|
|
+
|
|
+ private OutputStreamFactory() {
|
|
+ }
|
|
+
|
|
+ public static TypeCodeOutputStream newTypeCodeOutputStream(
|
|
+ final ORB orb) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<TypeCodeOutputStream>() {
|
|
+ @Override
|
|
+ public TypeCodeOutputStream run() {
|
|
+ return new TypeCodeOutputStream(orb);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static TypeCodeOutputStream newTypeCodeOutputStream(
|
|
+ final ORB orb, final boolean littleEndian) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<TypeCodeOutputStream>() {
|
|
+ @Override
|
|
+ public TypeCodeOutputStream run() {
|
|
+ return new TypeCodeOutputStream(orb, littleEndian);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static EncapsOutputStream newEncapsOutputStream(
|
|
+ final ORB orb) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<EncapsOutputStream>() {
|
|
+ @Override
|
|
+ public EncapsOutputStream run() {
|
|
+ return new EncapsOutputStream(
|
|
+ (com.sun.corba.se.spi.orb.ORB)orb);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static EncapsOutputStream newEncapsOutputStream(
|
|
+ final ORB orb, final GIOPVersion giopVersion) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<EncapsOutputStream>() {
|
|
+ @Override
|
|
+ public EncapsOutputStream run() {
|
|
+ return new EncapsOutputStream(
|
|
+ (com.sun.corba.se.spi.orb.ORB)orb, giopVersion);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static EncapsOutputStream newEncapsOutputStream(
|
|
+ final ORB orb, final boolean isLittleEndian) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<EncapsOutputStream>() {
|
|
+ @Override
|
|
+ public EncapsOutputStream run() {
|
|
+ return new EncapsOutputStream(
|
|
+ (com.sun.corba.se.spi.orb.ORB)orb, isLittleEndian);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static CDROutputObject newCDROutputObject(
|
|
+ final ORB orb, final MessageMediator messageMediator,
|
|
+ final Message header, final byte streamFormatVersion) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<CDROutputObject>() {
|
|
+ @Override
|
|
+ public CDROutputObject run() {
|
|
+ return new CDROutputObject(orb, messageMediator,
|
|
+ header, streamFormatVersion);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static CDROutputObject newCDROutputObject(
|
|
+ final ORB orb, final MessageMediator messageMediator,
|
|
+ final Message header, final byte streamFormatVersion,
|
|
+ final int strategy) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<CDROutputObject>() {
|
|
+ @Override
|
|
+ public CDROutputObject run() {
|
|
+ return new CDROutputObject(orb, messageMediator,
|
|
+ header, streamFormatVersion, strategy);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static CDROutputObject newCDROutputObject(
|
|
+ final ORB orb, final CorbaMessageMediator mediator,
|
|
+ final GIOPVersion giopVersion, final CorbaConnection connection,
|
|
+ final Message header, final byte streamFormatVersion) {
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<CDROutputObject>() {
|
|
+ @Override
|
|
+ public CDROutputObject run() {
|
|
+ return new CDROutputObject(orb, mediator,
|
|
+ giopVersion, connection, header, streamFormatVersion);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+}
|
|
--- corba/src/share/classes/sun/corba/SharedSecrets.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ corba/src/share/classes/sun/corba/SharedSecrets.java 2013-03-09 18:08:34.000000000 -0800
|
|
@@ -0,0 +1,60 @@
|
|
+/*
|
|
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation. Oracle designates this
|
|
+ * particular file as subject to the "Classpath" exception as provided
|
|
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ */
|
|
+
|
|
+package sun.corba;
|
|
+
|
|
+import com.sun.corba.se.impl.io.ValueUtility;
|
|
+import sun.misc.Unsafe;
|
|
+
|
|
+import java.security.AccessController;
|
|
+
|
|
+/** A repository of "shared secrets", which are a mechanism for
|
|
+ calling implementation-private methods in another package without
|
|
+ using reflection. A package-private class implements a public
|
|
+ interface and provides the ability to call package-private methods
|
|
+ within that package; the object implementing that interface is
|
|
+ provided through a third package to which access is restricted.
|
|
+ This framework avoids the primary disadvantage of using reflection
|
|
+ for this purpose, namely the loss of compile-time checking. */
|
|
+
|
|
+// SharedSecrets cloned in corba repo to avoid build issues
|
|
+public class SharedSecrets {
|
|
+ private static final Unsafe unsafe = Unsafe.getUnsafe();
|
|
+ private static JavaCorbaAccess javaCorbaAccess;
|
|
+
|
|
+ public static JavaCorbaAccess getJavaCorbaAccess() {
|
|
+ if (javaCorbaAccess == null) {
|
|
+ // Ensure ValueUtility is initialized; we know that that class
|
|
+ // provides the shared secret
|
|
+ unsafe.ensureClassInitialized(ValueUtility.class);
|
|
+ }
|
|
+ return javaCorbaAccess;
|
|
+ }
|
|
+
|
|
+ public static void setJavaCorbaAccess(JavaCorbaAccess access) {
|
|
+ javaCorbaAccess = access;
|
|
+ }
|
|
+
|
|
+}
|
|
--- hotspot/.hgtags 2012-08-10 09:20:36.000000000 -0700
|
|
+++ hotspot/.hgtags 2013-04-28 16:29:15.000000000 -0700
|
|
@@ -182,6 +182,7 @@
|
|
38fa55e5e79232d48f1bb8cf27d88bc094c9375a hs21-b16
|
|
81d815b05abb564aa1f4100ae13491c949b9a07e jdk7-b147
|
|
81d815b05abb564aa1f4100ae13491c949b9a07e hs21-b17
|
|
+f1a18ada5853af49fce54d43dd5a5b67dc291470 7u0
|
|
9b0ca45cd756d538c4c30afab280a91868eee1a5 jdk7u2-b01
|
|
0cc8a70952c368e06de2adab1f2649a408f5e577 jdk8-b01
|
|
31e253c1da429124bb87570ab095d9bc89850d0a jdk8-b02
|
|
@@ -318,5 +319,69 @@
|
|
02a6c89432d724119565f9ba25672829b136fc5f jdk7u6-b21
|
|
a79d86eef6ac995a1fc35554f082f3a61abe9ae0 jdk7u6-b22
|
|
df57f6208cb76b4e8d1a0bd0eea3d2ad577cb79b jdk7u6-b23
|
|
-02a6c89432d724119565f9ba25672829b136fc5f jdk7u8-b01
|
|
-528502f930967f70c320472a002418f1e38029e0 jdk7u8-b02
|
|
+b03c2687fb16514652e79261ad68d2c601dcee62 jdk7u6-b24
|
|
+cffde29ea7cc8647f17002a4d0e94065dcd82839 jdk7u6-b30
|
|
+7566374c3c89b7d99be9bcdb9342283a3bea6930 jdk7u6-b31
|
|
+f7933fecea9aa494e4032e17ff07e5fcec4b5961 jdk7u7-b10
|
|
+eeef33dc4b40f9ba50c4c9b1ac61b30f0f2523bf jdk7u7-b30
|
|
+f1551c70c7f598b7049bcc33e530fc738a81c7a4 jdk7u7-b11
|
|
+6b9db7216dd4b7846faf372f19566a418c8e391f jdk7u7-b31
|
|
+b66bb0e3224ff15259361a5b501bf8fa6b346113 jdk7u7-b01
|
|
+ca6943c94e6075fc28353d52ac6ea52c80aef9bb jdk7u7-b02
|
|
+e043d96d767d8ba4d74d53c477af8e07b78b6128 jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+b66bb0e3224ff15259361a5b501bf8fa6b346113 jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+ca6943c94e6075fc28353d52ac6ea52c80aef9bb jdk7u9-b02
|
|
+ed42837374ac730ddaf2fd28814017c665634a8b jdk7u9-b04
|
|
+da4aa289ac100017f850ed4d492e8054db6a1e28 jdk7u9-b05
|
|
+8eaa45ed5f804199c0823b409dc37f72e808926f jdk7u9-b31
|
|
+ea83168282c8c3a9f4a8ca723cc86972a3188d58 jdk7u9-b32
|
|
+d2e25680db9d4209b3f0f51e5c848284cedea508 jdk7u10-b10
|
|
+d37fd995683ab5bc2d941648ce7bf8bd194732f2 jdk7u10-b11
|
|
+f26f3d92e6d9ef7842b2d785f92439dbb15e670e jdk7u10-b12
|
|
+58881c615a5179bcea69148d0b3eb47a1f1a7de8 jdk7u10-b13
|
|
+cdbf4d442b56ece8ac521c65b59087682e5ae918 jdk7u10-b14
|
|
+63e8b49b329e4b50547b13f5c732665bed535732 jdk7u10-b15
|
|
+1cb34ef50bddc334c8538cf85d8612383debc74f jdk7u10-b16
|
|
+5c154a591de987d515f5b102a988bcf96d439f53 jdk7u10-b17
|
|
+78c7e1b4a006342230e04fbb73f637834207abef jdk7u10-b18
|
|
+c6b78bbaf6976197ead9d5aa3f65e0224cd13541 jdk7u10-b30
|
|
+07f7daeb261073a4a2946d988979ee65ba8ed753 jdk7u10-b31
|
|
+25a92b94ad538963d009bf8a53ce548e13f55c82 jdk7u11-b20
|
|
+7a2cf85fc36e845db9ccb2a22af195c70af33bdf jdk7u11-b21
|
|
+06b5c3f663b81f11da2080a91d215a96ae431f84 jdk7u11-b32
|
|
+abb5b690122caabf09f93958c747358cc22f8a59 jdk7u11-b33
|
|
+db7028c8a953f46225fceb6148f97de87c784dda jdk7u11-b03
|
|
+4d418a1b8be04220f504cf414b47877821a22a26 jdk7u11-b04
|
|
+f71032f398a3baea567710ba7161c64b94495cac jdk7u11-b05
|
|
+0cbce123c9027d531e585fd81fbc361c5f8407f1 jdk7u11-b06
|
|
+94bf1e3dafef3cc06d3f97f81d304313ccd999ee jdk7u11-b07
|
|
+2b543aa340e4a75671fe05803fcee08bf3e136db jdk7u11-b08
|
|
+34a7b6dda06e2ff6f7e9ad563e3fc3ecd8993579 jdk7u13-b09
|
|
+e0e52e35e0c53a84daadae95f626e36fd74f3eba jdk7u13-b10
|
|
+be57a8d7a1a75971c3b1e7777dcacd20f3d33264 jdk7u13-b30
|
|
+e0e52e35e0c53a84daadae95f626e36fd74f3eba jdk7u13-b20
|
|
+5fbe0cae3a2a78a73946cfd08c56a64860f1afd9 jdk7u15-b01
|
|
+30d72c9abb560bc424d16d96bfd396ccd3c62cbc jdk7u15-b02
|
|
+221c64550c5b4411d78b63820835de1a8cd0c118 jdk7u15-b30
|
|
+0b905a04f573565515aa8614085099abd73dcac4 jdk7u15-b31
|
|
+8b349f332a66ebe5982b5680c85f903efb03da8e jdk7u15-b33
|
|
+5b55cef461b034766f05a46640caa123aa4247d4 jdk7u15-b03
|
|
+34a7b6dda06e2ff6f7e9ad563e3fc3ecd8993579 jdk7u15-b32
|
|
+a4dfda7a2655209abb170b2fa4914dbbba89bcd3 jdk7u17-b01
|
|
+0d82bf449a610602b6e9ddcc9e076839d5351449 jdk7u17-b02
|
|
+7b357c079370e2fd324c229f2e24c982915c80a0 jdk7u17-b30
|
|
+22b6fd616cfe61774525a944f162bf5e7c418f03 jdk7u17-b31
|
|
+be57a8d7a1a75971c3b1e7777dcacd20f3d33264 jdk7u21-b01
|
|
+5119d89c7cc844190c0799dca85710e7592d42e7 jdk7u21-b02
|
|
+ad14169fb640ca532193cca0fd6e14910f226075 jdk7u21-b03
|
|
+c954aab38a7f8f62e33ae5103494576f67fc36d9 jdk7u21-b04
|
|
+0e8e9d990d91dc0f8b8807bb82c090de3264c809 jdk7u21-b05
|
|
+beeb3d6b76f06d9f60c31d6c5b9e04d82f01ad79 jdk7u21-b06
|
|
+663b5c744e82d1c884048cd9b38f625e52004773 jdk7u21-b07
|
|
+87e9bb582938552180b024dd99bc5166816f3921 jdk7u21-b08
|
|
+1f195ee7856aecb6527bc5c957f66e1960e51a12 jdk7u21-b09
|
|
+d4a4c2bd389abcd80c25d20e0ffb7d5cee356715 jdk7u21-b10
|
|
+d07dafb51e1d75f110a3c506c250d995235acca6 jdk7u21-b11
|
|
+a977dedec81c346247631ead6f3364c76949d67a jdk7u21-b30
|
|
--- hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2012-08-10 09:21:14.000000000 -0700
|
|
+++ hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -33,6 +33,7 @@
|
|
import sun.jvm.hotspot.debugger.remote.*;
|
|
import sun.jvm.hotspot.debugger.windbg.*;
|
|
import sun.jvm.hotspot.debugger.linux.*;
|
|
+import sun.jvm.hotspot.debugger.bsd.*;
|
|
import sun.jvm.hotspot.memory.*;
|
|
import sun.jvm.hotspot.oops.*;
|
|
import sun.jvm.hotspot.runtime.*;
|
|
--- hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2012-08-10 09:21:38.000000000 -0700
|
|
+++ hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -35,6 +35,7 @@
|
|
import sun.jvm.hotspot.debugger.windbg.*;
|
|
import sun.jvm.hotspot.debugger.linux.*;
|
|
import sun.jvm.hotspot.debugger.sparc.*;
|
|
+import sun.jvm.hotspot.debugger.bsd.*;
|
|
import sun.jvm.hotspot.debugger.remote.*;
|
|
import sun.jvm.hotspot.livejvm.*;
|
|
import sun.jvm.hotspot.memory.*;
|
|
--- hotspot/make/bsd/Makefile 2012-08-10 09:22:55.000000000 -0700
|
|
+++ hotspot/make/bsd/Makefile 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
#
|
|
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
@@ -211,6 +211,8 @@
|
|
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) LIBRARY_SUFFIX=$(LIBRARY_SUFFIX)
|
|
BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION)
|
|
|
|
+BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE)
|
|
+
|
|
BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS)
|
|
|
|
#-------------------------------------------------------------------------------
|
|
@@ -337,9 +339,11 @@
|
|
|
|
# Doc target. This is the same for all build options.
|
|
# Hence create a docs directory beside ...$(ARCH)_[...]
|
|
+# We specify 'BUILD_FLAVOR=product' so that the proper
|
|
+# ENABLE_FULL_DEBUG_SYMBOLS value is used.
|
|
docs: checks
|
|
$(QUIETLY) mkdir -p $(SUBDIR_DOCS)
|
|
- $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs
|
|
+ $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs
|
|
|
|
# Synonyms for win32-like targets.
|
|
compiler2: jvmg product
|
|
--- hotspot/make/bsd/makefiles/buildtree.make 2012-08-10 09:22:57.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/buildtree.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
#
|
|
-# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
@@ -242,6 +242,16 @@
|
|
echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
|
|
[ -n "$(CFLAGS_BROWSE)" ] && \
|
|
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
|
|
+ [ -n "$(ENABLE_FULL_DEBUG_SYMBOLS)" ] && \
|
|
+ echo && echo "ENABLE_FULL_DEBUG_SYMBOLS = $(ENABLE_FULL_DEBUG_SYMBOLS)"; \
|
|
+ [ -n "$(OBJCOPY)" ] && \
|
|
+ echo && echo "OBJCOPY = $(OBJCOPY)"; \
|
|
+ [ -n "$(STRIP_POLICY)" ] && \
|
|
+ echo && echo "STRIP_POLICY = $(STRIP_POLICY)"; \
|
|
+ [ -n "$(ZIP_DEBUGINFO_FILES)" ] && \
|
|
+ echo && echo "ZIP_DEBUGINFO_FILES = $(ZIP_DEBUGINFO_FILES)"; \
|
|
+ [ -n "$(ZIPEXE)" ] && \
|
|
+ echo && echo "ZIPEXE = $(ZIPEXE)"; \
|
|
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
|
|
echo && \
|
|
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
|
|
@@ -359,7 +369,7 @@
|
|
$(QUIETLY) ( \
|
|
$(BUILDTREE_COMMENT); \
|
|
echo "JDK=${JAVA_HOME}"; \
|
|
- ) > $@
|
|
+ ) > $@
|
|
|
|
.dbxrc: $(BUILDTREE_MAKE)
|
|
@echo Creating $@ ...
|
|
--- hotspot/make/bsd/makefiles/defs.make 2012-08-10 09:22:57.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/defs.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -86,7 +86,7 @@
|
|
VM_PLATFORM = bsd_i486
|
|
HS_ARCH = x86
|
|
# We have to reset ARCH to i386 since SRCARCH relies on it
|
|
- ARCH = i386
|
|
+ ARCH = i386
|
|
endif
|
|
endif
|
|
|
|
@@ -124,6 +124,107 @@
|
|
HS_ARCH = ppc
|
|
endif
|
|
|
|
+# determine if HotSpot is being built in JDK6 or earlier version
|
|
+JDK6_OR_EARLIER=0
|
|
+ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
|
|
+ # if the longer variable names (newer build style) are set, then check those
|
|
+ ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
|
|
+ JDK6_OR_EARLIER=1
|
|
+ endif
|
|
+else
|
|
+ # the longer variables aren't set so check the shorter variable names
|
|
+ ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
|
|
+ JDK6_OR_EARLIER=1
|
|
+ endif
|
|
+endif
|
|
+
|
|
+ifeq ($(JDK6_OR_EARLIER),0)
|
|
+ # Full Debug Symbols is supported on JDK7 or newer.
|
|
+ # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
|
|
+ # builds is enabled with debug info files ZIP'ed to save space. For
|
|
+ # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
|
|
+ # debug build without debug info isn't very useful.
|
|
+ # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
|
|
+ #
|
|
+ # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
|
|
+ # disabled for a BUILD_FLAVOR == product build.
|
|
+ #
|
|
+ # Note: Use of a different variable name for the FDS override option
|
|
+ # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
|
|
+ # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
|
|
+ # in options via environment variables, use of distinct variables
|
|
+ # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
|
|
+ # product build, the FULL_DEBUG_SYMBOLS environment variable will be
|
|
+ # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
|
|
+ # the same variable name is used, then different values can be picked
|
|
+ # up by different parts of the build. Just to be clear, we only need
|
|
+ # two variable names because the incoming option value can be
|
|
+ # overridden in some situations, e.g., a BUILD_FLAVOR != product
|
|
+ # build.
|
|
+
|
|
+ ifeq ($(BUILD_FLAVOR), product)
|
|
+ FULL_DEBUG_SYMBOLS ?= 1
|
|
+ ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
|
|
+ else
|
|
+ # debug variants always get Full Debug Symbols (if available)
|
|
+ ENABLE_FULL_DEBUG_SYMBOLS = 1
|
|
+ endif
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
|
|
+ # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
|
|
+
|
|
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ # Default OBJCOPY comes from GNU Binutils on Linux:
|
|
+ DEF_OBJCOPY=/usr/bin/objcopy
|
|
+ ifdef CROSS_COMPILE_ARCH
|
|
+ # don't try to generate .debuginfo files when cross compiling
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
|
|
+ "skipping .debuginfo generation.")
|
|
+ OBJCOPY=
|
|
+ else
|
|
+ OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
|
|
+ ifneq ($(ALT_OBJCOPY),)
|
|
+ _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
|
|
+ OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
|
|
+ endif
|
|
+ endif
|
|
+ else
|
|
+ OBJCOPY=
|
|
+ endif
|
|
+
|
|
+ ifeq ($(OBJCOPY),)
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
|
|
+ ENABLE_FULL_DEBUG_SYMBOLS=0
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
|
|
+ else
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
|
|
+
|
|
+ # Library stripping policies for .debuginfo configs:
|
|
+ # all_strip - strips everything from the library
|
|
+ # min_strip - strips most stuff from the library; leaves minimum symbols
|
|
+ # no_strip - does not strip the library at all
|
|
+ #
|
|
+ # Oracle security policy requires "all_strip". A waiver was granted on
|
|
+ # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
|
|
+ #
|
|
+ # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
|
|
+ #
|
|
+ STRIP_POLICY ?= min_strip
|
|
+
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
|
+
|
|
+ ZIP_DEBUGINFO_FILES ?= 1
|
|
+
|
|
+ _JUNK_ := $(shell \
|
|
+ echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
|
|
+ endif
|
|
+endif
|
|
+
|
|
JDK_INCLUDE_SUBDIR=bsd
|
|
|
|
# Library suffix
|
|
@@ -141,18 +242,39 @@
|
|
|
|
# client and server subdirectories have symbolic links to ../libjsig.so
|
|
EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
|
|
+ else
|
|
+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
|
|
+ endif
|
|
+endif
|
|
EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
|
|
EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
|
|
|
|
ifndef BUILD_CLIENT_ONLY
|
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
|
|
EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
|
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
|
|
+ else
|
|
+ EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
|
|
+ endif
|
|
+ endif
|
|
endif
|
|
|
|
ifneq ($(ZERO_BUILD), true)
|
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
|
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
|
|
+ else
|
|
+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
|
|
+ endif
|
|
+ endif
|
|
endif
|
|
endif
|
|
|
|
@@ -164,6 +286,15 @@
|
|
$(EXPORT_LIB_DIR)/sa-jdi.jar
|
|
ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
|
|
$(EXPORT_LIB_DIR)/sa-jdi.jar
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
|
|
+ ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
|
|
+ else
|
|
+ ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
|
|
+ ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
|
|
+ endif
|
|
+endif
|
|
ADD_SA_BINARIES/ppc =
|
|
ADD_SA_BINARIES/ia64 =
|
|
ADD_SA_BINARIES/arm =
|
|
--- hotspot/make/bsd/makefiles/gcc.make 2012-08-10 09:22:57.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/gcc.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
#
|
|
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
@@ -124,7 +124,11 @@
|
|
ARCHFLAG/ia64 =
|
|
ARCHFLAG/sparc = -m32 -mcpu=v9
|
|
ARCHFLAG/sparcv9 = -m64 -mcpu=v9
|
|
+ARCHFLAG/arm = -fsigned-char
|
|
ARCHFLAG/zero = $(ZERO_ARCHFLAG)
|
|
+ifndef E500V2
|
|
+ARCHFLAG/ppc = -mcpu=powerpc
|
|
+endif
|
|
|
|
# Darwin-specific build flags
|
|
ifeq ($(OS_VENDOR), Darwin)
|
|
@@ -285,6 +289,26 @@
|
|
DEBUG_CFLAGS += -gstabs
|
|
endif
|
|
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ FASTDEBUG_CFLAGS/ia64 = -g
|
|
+ FASTDEBUG_CFLAGS/amd64 = -g
|
|
+ FASTDEBUG_CFLAGS/arm = -g
|
|
+ FASTDEBUG_CFLAGS/ppc = -g
|
|
+ FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
|
|
+ ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),)
|
|
+ FASTDEBUG_CFLAGS += -gstabs
|
|
+ endif
|
|
+
|
|
+ OPT_CFLAGS/ia64 = -g
|
|
+ OPT_CFLAGS/amd64 = -g
|
|
+ OPT_CFLAGS/arm = -g
|
|
+ OPT_CFLAGS/ppc = -g
|
|
+ OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH))
|
|
+ ifeq ($(OPT_CFLAGS/$(BUILDARCH)),)
|
|
+ OPT_CFLAGS += -gstabs
|
|
+ endif
|
|
+endif
|
|
+
|
|
# DEBUG_BINARIES overrides everything, use full -g debug information
|
|
ifeq ($(DEBUG_BINARIES), true)
|
|
DEBUG_CFLAGS = -g
|
|
@@ -302,3 +326,9 @@
|
|
ifdef MINIMIZE_RAM_USAGE
|
|
CFLAGS += -DMINIMIZE_RAM_USAGE
|
|
endif
|
|
+
|
|
+ifdef CROSS_COMPILE_ARCH
|
|
+ STRIP = $(ALT_COMPILER_PATH)/strip
|
|
+else
|
|
+ STRIP = strip
|
|
+endif
|
|
--- hotspot/make/bsd/makefiles/jsig.make 2012-08-10 09:22:58.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/jsig.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -36,9 +36,16 @@
|
|
LIBJSIG_G = lib$(JSIG_G).so
|
|
endif
|
|
|
|
+LIBJSIG_DEBUGINFO = lib$(JSIG).debuginfo
|
|
+LIBJSIG_DIZ = lib$(JSIG).diz
|
|
+LIBJSIG_G_DEBUGINFO = lib$(JSIG_G).debuginfo
|
|
+LIBJSIG_G_DIZ = lib$(JSIG_G).diz
|
|
+
|
|
JSIGSRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/vm
|
|
|
|
DEST_JSIG = $(JDK_LIBDIR)/$(LIBJSIG)
|
|
+DEST_JSIG_DEBUGINFO = $(JDK_LIBDIR)/$(LIBJSIG_DEBUGINFO)
|
|
+DEST_JSIG_DIZ = $(JDK_LIBDIR)/$(LIBJSIG_DIZ)
|
|
|
|
LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
|
|
|
|
@@ -57,11 +64,33 @@
|
|
$(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
|
|
@echo Making signal interposition lib...
|
|
$(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
|
|
- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $<
|
|
+ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) -o $@ $<
|
|
$(QUIETLY) [ -f $(LIBJSIG_G) ] || { ln -s $@ $(LIBJSIG_G); }
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
|
|
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@
|
|
+ ifeq ($(STRIP_POLICY),all_strip)
|
|
+ $(QUIETLY) $(STRIP) $@
|
|
+ else
|
|
+ ifeq ($(STRIP_POLICY),min_strip)
|
|
+ $(QUIETLY) $(STRIP) -S $@
|
|
+ # implied else here is no stripping at all
|
|
+ endif
|
|
+ endif
|
|
+ [ -f $(LIBJSIG_G_DEBUGINFO) ] || { ln -s $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO); }
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO)
|
|
+ $(RM) $(LIBJSIG_DEBUGINFO) $(LIBJSIG_G_DEBUGINFO)
|
|
+ [ -f $(LIBJSIG_G_DIZ) ] || { ln -s $(LIBJSIG_DIZ) $(LIBJSIG_G_DIZ); }
|
|
+ endif
|
|
+endif
|
|
|
|
install_jsig: $(LIBJSIG)
|
|
@echo "Copying $(LIBJSIG) to $(DEST_JSIG)"
|
|
+ $(QUIETLY) test -f $(LIBJSIG_DEBUGINFO) && \
|
|
+ cp -f $(LIBJSIG_DEBUGINFO) $(DEST_JSIG_DEBUGINFO)
|
|
+ $(QUIETLY) test -f $(LIBJSIG_DIZ) && \
|
|
+ cp -f $(LIBJSIG_DIZ) $(DEST_JSIG_DIZ)
|
|
$(QUIETLY) cp -f $(LIBJSIG) $(DEST_JSIG) && echo "Done"
|
|
|
|
.PHONY: install_jsig
|
|
--- hotspot/make/bsd/makefiles/launcher.make 2012-08-10 09:22:58.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/launcher.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -50,7 +50,7 @@
|
|
LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS)
|
|
else
|
|
LAUNCHER.o = launcher.o
|
|
- LFLAGS_LAUNCHER += -L`pwd`
|
|
+ LFLAGS_LAUNCHER += -L`pwd`
|
|
|
|
# The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a
|
|
# freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting
|
|
--- hotspot/make/bsd/makefiles/mapfile-vers-debug 2012-08-10 09:22:58.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/mapfile-vers-debug 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -221,6 +221,7 @@
|
|
JVM_SetArrayElement;
|
|
JVM_SetClassSigners;
|
|
JVM_SetLength;
|
|
+ JVM_SetNativeThreadName;
|
|
JVM_SetPrimitiveArrayElement;
|
|
JVM_SetProtectionDomain;
|
|
JVM_SetSockOpt;
|
|
@@ -244,24 +245,6 @@
|
|
JVM_Yield;
|
|
JVM_handle_bsd_signal;
|
|
|
|
- # Old reflection routines
|
|
- # These do not need to be present in the product build in JDK 1.4
|
|
- # but their code has not been removed yet because there will not
|
|
- # be a substantial code savings until JVM_InvokeMethod and
|
|
- # JVM_NewInstanceFromConstructor can also be removed; see
|
|
- # reflectionCompat.hpp.
|
|
- JVM_GetClassConstructor;
|
|
- JVM_GetClassConstructors;
|
|
- JVM_GetClassField;
|
|
- JVM_GetClassFields;
|
|
- JVM_GetClassMethod;
|
|
- JVM_GetClassMethods;
|
|
- JVM_GetField;
|
|
- JVM_GetPrimitiveField;
|
|
- JVM_NewInstance;
|
|
- JVM_SetField;
|
|
- JVM_SetPrimitiveField;
|
|
-
|
|
# debug JVM
|
|
JVM_AccessVMBooleanFlag;
|
|
JVM_AccessVMIntFlag;
|
|
--- hotspot/make/bsd/makefiles/mapfile-vers-product 2012-08-10 09:22:58.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/mapfile-vers-product 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -221,6 +221,7 @@
|
|
JVM_SetArrayElement;
|
|
JVM_SetClassSigners;
|
|
JVM_SetLength;
|
|
+ JVM_SetNativeThreadName;
|
|
JVM_SetPrimitiveArrayElement;
|
|
JVM_SetProtectionDomain;
|
|
JVM_SetSockOpt;
|
|
@@ -244,24 +245,6 @@
|
|
JVM_Yield;
|
|
JVM_handle_bsd_signal;
|
|
|
|
- # Old reflection routines
|
|
- # These do not need to be present in the product build in JDK 1.4
|
|
- # but their code has not been removed yet because there will not
|
|
- # be a substantial code savings until JVM_InvokeMethod and
|
|
- # JVM_NewInstanceFromConstructor can also be removed; see
|
|
- # reflectionCompat.hpp.
|
|
- JVM_GetClassConstructor;
|
|
- JVM_GetClassConstructors;
|
|
- JVM_GetClassField;
|
|
- JVM_GetClassFields;
|
|
- JVM_GetClassMethod;
|
|
- JVM_GetClassMethods;
|
|
- JVM_GetField;
|
|
- JVM_GetPrimitiveField;
|
|
- JVM_NewInstance;
|
|
- JVM_SetField;
|
|
- JVM_SetPrimitiveField;
|
|
-
|
|
# miscellaneous functions
|
|
jio_fprintf;
|
|
jio_printf;
|
|
--- hotspot/make/bsd/makefiles/ppc.make 2012-08-10 09:22:58.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/ppc.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -28,3 +28,6 @@
|
|
# Must also specify if CPU is big endian
|
|
CFLAGS += -DVM_BIG_ENDIAN
|
|
|
|
+ifdef E500V2
|
|
+ASFLAGS += -Wa,-mspe -Wa,--defsym -Wa,E500V2=1
|
|
+endif
|
|
--- hotspot/make/bsd/makefiles/saproc.make 2012-08-10 09:22:59.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/saproc.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -36,6 +36,11 @@
|
|
LIBSAPROC_G = lib$(SAPROC_G).so
|
|
endif
|
|
|
|
+LIBSAPROC_DEBUGINFO = lib$(SAPROC).debuginfo
|
|
+LIBSAPROC_DIZ = lib$(SAPROC).diz
|
|
+LIBSAPROC_G_DEBUGINFO = lib$(SAPROC_G).debuginfo
|
|
+LIBSAPROC_G_DIZ = lib$(SAPROC_G).diz
|
|
+
|
|
AGENT_DIR = $(GAMMADIR)/agent
|
|
|
|
SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)
|
|
@@ -66,7 +71,9 @@
|
|
|
|
SAMAPFILE = $(SASRCDIR)/mapfile
|
|
|
|
-DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
|
|
+DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC)
|
|
+DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
|
|
+DEST_SAPROC_DIZ = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ)
|
|
|
|
# DEBUG_BINARIES overrides everything, use full -g debug information
|
|
ifeq ($(DEBUG_BINARIES), true)
|
|
@@ -114,10 +121,32 @@
|
|
-o $@ \
|
|
$(SALIBS)
|
|
$(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); }
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
|
|
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
|
|
+ ifeq ($(STRIP_POLICY),all_strip)
|
|
+ $(QUIETLY) $(STRIP) $@
|
|
+ else
|
|
+ ifeq ($(STRIP_POLICY),min_strip)
|
|
+ $(QUIETLY) $(STRIP) -S $@
|
|
+ # implied else here is no stripping at all
|
|
+ endif
|
|
+ endif
|
|
+ [ -f $(LIBSAPROC_G_DEBUGINFO) ] || { ln -s $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO); }
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO)
|
|
+ $(RM) $(LIBSAPROC_DEBUGINFO) $(LIBSAPROC_G_DEBUGINFO)
|
|
+ [ -f $(LIBSAPROC_G_DIZ) ] || { ln -s $(LIBSAPROC_DIZ) $(LIBSAPROC_G_DIZ); }
|
|
+ endif
|
|
+endif
|
|
|
|
install_saproc: $(BUILDLIBSAPROC)
|
|
$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \
|
|
echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \
|
|
+ test -f $(LIBSAPROC_DEBUGINFO) && \
|
|
+ cp -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
|
|
+ test -f $(LIBSAPROC_DIZ) && \
|
|
+ cp -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \
|
|
cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \
|
|
fi
|
|
|
|
--- hotspot/make/bsd/makefiles/vm.make 2012-08-10 09:22:59.000000000 -0700
|
|
+++ hotspot/make/bsd/makefiles/vm.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
#
|
|
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
#
|
|
# This code is free software; you can redistribute it and/or modify it
|
|
@@ -60,10 +60,16 @@
|
|
# The order is important for the precompiled headers to work.
|
|
INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
|
|
|
|
-ifeq (${VERSION}, debug)
|
|
+# SYMFLAG is used by {jsig,saproc}.make
|
|
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ # always build with debug info when we can create .debuginfo files
|
|
SYMFLAG = -g
|
|
else
|
|
- SYMFLAG =
|
|
+ ifeq (${VERSION}, debug)
|
|
+ SYMFLAG = -g
|
|
+ else
|
|
+ SYMFLAG =
|
|
+ endif
|
|
endif
|
|
|
|
# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
|
|
@@ -100,9 +106,11 @@
|
|
CXXFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\""
|
|
endif
|
|
|
|
-ifndef JAVASE_EMBEDDED
|
|
+ifndef JAVASE_EMBEDDED
|
|
+ifneq (${ARCH},arm)
|
|
CFLAGS += -DINCLUDE_TRACE
|
|
endif
|
|
+endif
|
|
|
|
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
|
CFLAGS += $(CFLAGS_WARN/BYFILE)
|
|
@@ -145,6 +153,11 @@
|
|
LIBJVM_G = lib$(JVM)$(G_SUFFIX).so
|
|
endif
|
|
|
|
+LIBJVM_DEBUGINFO = lib$(JVM).debuginfo
|
|
+LIBJVM_DIZ = lib$(JVM).diz
|
|
+LIBJVM_G_DEBUGINFO = lib$(JVM)$(G_SUFFIX).debuginfo
|
|
+LIBJVM_G_DIZ = lib$(JVM)$(G_SUFFIX).diz
|
|
+
|
|
SPECIAL_PATHS:=adlc c1 gc_implementation opto shark libadt
|
|
|
|
SOURCE_PATHS=\
|
|
@@ -155,11 +168,13 @@
|
|
SOURCE_PATHS+=$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm
|
|
SOURCE_PATHS+=$(HS_COMMON_SRC)/os_cpu/$(Platform_os_arch)/vm
|
|
|
|
-ifndef JAVASE_EMBEDDED
|
|
+ifndef JAVASE_EMBEDDED
|
|
+ifneq (${ARCH},arm)
|
|
SOURCE_PATHS+=$(shell if [ -d $(HS_ALT_SRC)/share/vm/jfr ]; then \
|
|
find $(HS_ALT_SRC)/share/vm/jfr -type d; \
|
|
fi)
|
|
endif
|
|
+endif
|
|
|
|
CORE_PATHS=$(foreach path,$(SOURCE_PATHS),$(call altsrc,$(path)) $(path))
|
|
CORE_PATHS+=$(GENERATED)/jvmtifiles
|
|
@@ -316,11 +331,38 @@
|
|
rm -f $@.1; ln -s $@ $@.1; \
|
|
[ -f $(LIBJVM_G) ] || { ln -s $@ $(LIBJVM_G); ln -s $@.1 $(LIBJVM_G).1; }; \
|
|
}
|
|
+ifeq ($(CROSS_COMPILE_ARCH),)
|
|
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
|
|
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
|
|
+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
|
|
+ ifeq ($(STRIP_POLICY),all_strip)
|
|
+ $(QUIETLY) $(STRIP) $@
|
|
+ else
|
|
+ ifeq ($(STRIP_POLICY),min_strip)
|
|
+ $(QUIETLY) $(STRIP) -S $@
|
|
+ # implied else here is no stripping at all
|
|
+ endif
|
|
+ endif
|
|
+ $(QUIETLY) [ -f $(LIBJVM_G_DEBUGINFO) ] || ln -s $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
|
|
+ ifeq ($(ZIP_DEBUGINFO_FILES),1)
|
|
+ $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
|
|
+ $(RM) $(LIBJVM_DEBUGINFO) $(LIBJVM_G_DEBUGINFO)
|
|
+ [ -f $(LIBJVM_G_DIZ) ] || { ln -s $(LIBJVM_DIZ) $(LIBJVM_G_DIZ); }
|
|
+ endif
|
|
+ endif
|
|
+endif
|
|
|
|
-DEST_JVM = $(JDK_LIBDIR)/$(VM_SUBDIR)/$(LIBJVM)
|
|
+DEST_SUBDIR = $(JDK_LIBDIR)/$(VM_SUBDIR)
|
|
+DEST_JVM = $(DEST_SUBDIR)/$(LIBJVM)
|
|
+DEST_JVM_DEBUGINFO = $(DEST_SUBDIR)/$(LIBJVM_DEBUGINFO)
|
|
+DEST_JVM_DIZ = $(DEST_SUBDIR)/$(LIBJVM_DIZ)
|
|
|
|
install_jvm: $(LIBJVM)
|
|
@echo "Copying $(LIBJVM) to $(DEST_JVM)"
|
|
+ $(QUIETLY) test -f $(LIBJVM_DEBUGINFO) && \
|
|
+ cp -f $(LIBJVM_DEBUGINFO) $(DEST_JVM_DEBUGINFO)
|
|
+ $(QUIETLY) test -f $(LIBJVM_DIZ) && \
|
|
+ cp -f $(LIBJVM_DIZ) $(DEST_JVM_DIZ)
|
|
$(QUIETLY) cp -f $(LIBJVM) $(DEST_JVM) && echo "Done"
|
|
|
|
#----------------------------------------------------------------------
|
|
--- hotspot/make/hotspot_version 2012-08-10 09:23:01.000000000 -0700
|
|
+++ hotspot/make/hotspot_version 2013-04-28 16:29:12.000000000 -0700
|
|
@@ -31,11 +31,11 @@
|
|
#
|
|
|
|
# Don't put quotes (fail windows build).
|
|
-HOTSPOT_VM_COPYRIGHT=Copyright 2012
|
|
+HOTSPOT_VM_COPYRIGHT=Copyright 2013
|
|
|
|
HS_MAJOR_VER=23
|
|
-HS_MINOR_VER=2
|
|
-HS_BUILD_NUMBER=09
|
|
+HS_MINOR_VER=21
|
|
+HS_BUILD_NUMBER=01
|
|
|
|
JDK_MAJOR_VER=1
|
|
JDK_MINOR_VER=7
|
|
--- hotspot/make/solaris/makefiles/defs.make 2012-08-10 09:23:12.000000000 -0700
|
|
+++ hotspot/make/solaris/makefiles/defs.make 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -194,8 +194,8 @@
|
|
endif
|
|
ifeq ($(ARCH_DATA_MODEL), 32)
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
|
|
- EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
|
- EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
|
+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
|
|
+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_db.$(LIBRARY_SUFFIX)
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
|
|
EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_dtrace.$(LIBRARY_SUFFIX)
|
|
--- hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2012-08-10 09:23:56.000000000 -0700
|
|
+++ hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -71,7 +71,11 @@
|
|
define_pd_global(bool, RewriteBytecodes, true);
|
|
define_pd_global(bool, RewriteFrequentPairs, true);
|
|
|
|
+#ifdef _ALLBSD_SOURCE
|
|
+define_pd_global(bool, UseMembar, true);
|
|
+#else
|
|
define_pd_global(bool, UseMembar, false);
|
|
+#endif
|
|
|
|
// GC Ergo Flags
|
|
define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
|
|
--- hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp 2012-08-10 09:23:58.000000000 -0700
|
|
+++ hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -698,6 +698,17 @@
|
|
if (arg_slots.is_constant() && arg_slots.as_constant() == 0)
|
|
return;
|
|
|
|
+ // We have to insert at least one word, so bang the stack.
|
|
+ if (UseStackBanging) {
|
|
+ // Save G3_method_handle since bang_stack_with_offset uses it as a temp register
|
|
+ __ mov(G3_method_handle, temp_reg);
|
|
+ int frame_size = (arg_slots.is_constant() ? -1 * arg_slots.as_constant() * wordSize : 0);
|
|
+ if (frame_size <= 0)
|
|
+ frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ __ generate_stack_overflow_check(frame_size);
|
|
+ __ mov(temp_reg, G3_method_handle);
|
|
+ }
|
|
+
|
|
assert_different_registers(argslot_reg, temp_reg, temp2_reg, temp3_reg,
|
|
(!arg_slots.is_register() ? Gargs : arg_slots.as_register()));
|
|
|
|
@@ -1702,6 +1713,14 @@
|
|
"copied argument(s) must fall within current frame");
|
|
}
|
|
|
|
+ if (UseStackBanging) {
|
|
+ // Save G3_method_handle since bang_stack_with_offset uses it as a temp register
|
|
+ __ mov(G3_method_handle, O3_scratch);
|
|
+ // Bang the stack before pushing args.
|
|
+ int frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ __ generate_stack_overflow_check(frame_size + sizeof(RicochetFrame));
|
|
+ __ mov(O3_scratch, G3_method_handle);
|
|
+ }
|
|
// insert location is always the bottom of the argument list:
|
|
__ neg(O1_stack_move);
|
|
push_arg_slots(_masm, O0_argslot, O1_stack_move, O2_scratch, O3_scratch);
|
|
@@ -2118,6 +2137,18 @@
|
|
// The return handler will further cut back the stack when it takes
|
|
// down the RF. Perhaps there is a way to streamline this further.
|
|
|
|
+ if (UseStackBanging) {
|
|
+ // Save G3_method_handle since bang_stack_with_offset uses it as a temp register
|
|
+ __ mov(G3_method_handle, O4_scratch);
|
|
+ // Bang the stack before recursive call.
|
|
+ // Even if slots == 0, we are inside a RicochetFrame.
|
|
+ int frame_size = collect_count.is_constant() ? collect_count.as_constant() * wordSize : -1;
|
|
+ if (frame_size < 0) {
|
|
+ frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ }
|
|
+ __ generate_stack_overflow_check(frame_size + sizeof(RicochetFrame));
|
|
+ __ mov(O4_scratch, G3_method_handle);
|
|
+ }
|
|
// State during recursive call:
|
|
// ... keep1 | dest | dest=42 | keep3 | RF... | collect | bounce_pc |
|
|
__ jump_to_method_handle_entry(G3_method_handle, O1_scratch);
|
|
--- hotspot/src/cpu/x86/vm/methodHandles_x86.cpp 2012-08-10 09:24:07.000000000 -0700
|
|
+++ hotspot/src/cpu/x86/vm/methodHandles_x86.cpp 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -691,6 +691,14 @@
|
|
if (VerifyMethodHandles)
|
|
verify_stack_move(_masm, arg_slots, -1);
|
|
|
|
+ // We have to insert at least one word, so bang the stack.
|
|
+ if (UseStackBanging) {
|
|
+ int frame_size = (arg_slots.is_constant() ? -1 * arg_slots.as_constant() * wordSize : 0);
|
|
+ if (frame_size <= 0)
|
|
+ frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ __ generate_stack_overflow_check(frame_size);
|
|
+ }
|
|
+
|
|
// Make space on the stack for the inserted argument(s).
|
|
// Then pull down everything shallower than rax_argslot.
|
|
// The stacked return address gets pulled down with everything else.
|
|
@@ -1769,6 +1777,11 @@
|
|
"copied argument(s) must fall within current frame");
|
|
}
|
|
|
|
+ if (UseStackBanging) {
|
|
+ // Bang the stack before pushing args.
|
|
+ int frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ __ generate_stack_overflow_check(frame_size + sizeof(RicochetFrame));
|
|
+ }
|
|
// insert location is always the bottom of the argument list:
|
|
Address insert_location = __ argument_address(constant(0));
|
|
int pre_arg_words = insert_location.disp() / wordSize; // return PC is pushed
|
|
@@ -2206,6 +2219,15 @@
|
|
// The return handler will further cut back the stack when it takes
|
|
// down the RF. Perhaps there is a way to streamline this further.
|
|
|
|
+ if (UseStackBanging) {
|
|
+ // Bang the stack before recursive call.
|
|
+ // Even if slots == 0, we are inside a RicochetFrame.
|
|
+ int frame_size = collect_count.is_constant() ? collect_count.as_constant() * wordSize : -1;
|
|
+ if (frame_size < 0) {
|
|
+ frame_size = 256 * Interpreter::stackElementSize; // conservative
|
|
+ }
|
|
+ __ generate_stack_overflow_check(frame_size + sizeof(RicochetFrame));
|
|
+ }
|
|
// State during recursive call:
|
|
// ... keep1 | dest | dest=42 | keep3 | RF... | collect | bounce_pc |
|
|
__ jump_to_method_handle_entry(rcx_recv, rdx_temp);
|
|
@@ -2366,10 +2388,15 @@
|
|
// case in a 32-bit version of the VM) we have to save 'rsi'
|
|
// on the stack because later on (at 'L_array_is_empty') 'rsi'
|
|
// will be overwritten.
|
|
- { if (rsi_temp == saved_last_sp) __ push(saved_last_sp); }
|
|
+ if (rsi_temp == saved_last_sp) {
|
|
+ __ push(saved_last_sp);
|
|
+ // Need to re-push return PC to keep it on stack top.
|
|
+ __ lea(saved_last_sp, ExternalAddress(SharedRuntime::ricochet_blob()->bounce_addr()).addr());
|
|
+ __ push(saved_last_sp);
|
|
+ }
|
|
// Also prepare a handy macro which restores 'rsi' if required.
|
|
#define UNPUSH_RSI \
|
|
- { if (rsi_temp == saved_last_sp) __ pop(saved_last_sp); }
|
|
+ { if (rsi_temp == saved_last_sp) { __ pop(saved_last_sp); __ pop(saved_last_sp); } }
|
|
|
|
__ jmp(L_array_is_empty);
|
|
__ bind(L_skip);
|
|
@@ -2382,7 +2409,12 @@
|
|
// called in the case of a null pointer exception will not be
|
|
// confused by the extra value on the stack (it expects the
|
|
// return pointer on top of the stack)
|
|
- { if (rsi_temp == saved_last_sp) __ push(saved_last_sp); }
|
|
+ if (rsi_temp == saved_last_sp) {
|
|
+ __ push(saved_last_sp);
|
|
+ // Need to re-push return PC to keep it on stack top.
|
|
+ __ lea(saved_last_sp, ExternalAddress(SharedRuntime::ricochet_blob()->bounce_addr()).addr());
|
|
+ __ push(saved_last_sp);
|
|
+ }
|
|
|
|
// Check the array type.
|
|
Register rbx_klass = rbx_temp;
|
|
--- hotspot/src/os/bsd/vm/decoder_bsd.cpp 1969-12-31 16:00:00.000000000 -0800
|
|
+++ hotspot/src/os/bsd/vm/decoder_bsd.cpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -0,0 +1,46 @@
|
|
+/*
|
|
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ *
|
|
+ */
|
|
+
|
|
+#include "prims/jvm.h"
|
|
+#include "utilities/decoder_elf.hpp"
|
|
+
|
|
+#include <cxxabi.h>
|
|
+
|
|
+bool ElfDecoder::demangle(const char* symbol, char *buf, int buflen) {
|
|
+ int status;
|
|
+ char* result;
|
|
+ size_t size = (size_t)buflen;
|
|
+
|
|
+ // Don't pass buf to __cxa_demangle. In case of the 'buf' is too small,
|
|
+ // __cxa_demangle will call system "realloc" for additional memory, which
|
|
+ // may use different malloc/realloc mechanism that allocates 'buf'.
|
|
+ if ((result = abi::__cxa_demangle(symbol, NULL, NULL, &status)) != NULL) {
|
|
+ jio_snprintf(buf, buflen, "%s", result);
|
|
+ // call c library's free
|
|
+ ::free(result);
|
|
+ return true;
|
|
+ }
|
|
+ return false;
|
|
+}
|
|
+
|
|
--- hotspot/src/os/bsd/vm/os_bsd.cpp 2012-08-10 09:24:18.000000000 -0700
|
|
+++ hotspot/src/os/bsd/vm/os_bsd.cpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -2341,14 +2341,14 @@
|
|
}
|
|
|
|
void os::print_os_info_brief(outputStream* st) {
|
|
- st->print("Bsd");
|
|
+ st->print("BSD");
|
|
|
|
os::Posix::print_uname_info(st);
|
|
}
|
|
|
|
void os::print_os_info(outputStream* st) {
|
|
st->print("OS:");
|
|
- st->print("Bsd");
|
|
+ st->print("BSD");
|
|
|
|
os::Posix::print_uname_info(st);
|
|
|
|
@@ -2357,10 +2357,6 @@
|
|
os::Posix::print_load_average(st);
|
|
}
|
|
|
|
-void os::pd_print_cpu_info(outputStream* st) {
|
|
- // Nothing to do for now.
|
|
-}
|
|
-
|
|
void os::print_memory_info(outputStream* st) {
|
|
|
|
st->print("Memory:");
|
|
@@ -2377,6 +2373,7 @@
|
|
st->print("(" UINT64_FORMAT "k free)",
|
|
os::available_memory() >> 10);
|
|
#ifndef _ALLBSD_SOURCE
|
|
+ // FIXME: Make this work for *BSD
|
|
st->print(", swap " UINT64_FORMAT "k",
|
|
((jlong)si.totalswap * si.mem_unit) >> 10);
|
|
st->print("(" UINT64_FORMAT "k free)",
|
|
@@ -2384,12 +2381,22 @@
|
|
#endif
|
|
st->cr();
|
|
|
|
+ // FIXME: Make this work for *BSD
|
|
// meminfo
|
|
st->print("\n/proc/meminfo:\n");
|
|
_print_ascii_file("/proc/meminfo", st);
|
|
st->cr();
|
|
}
|
|
|
|
+void os::pd_print_cpu_info(outputStream* st) {
|
|
+ // FIXME: Make this work for *BSD
|
|
+ st->print("\n/proc/cpuinfo:\n");
|
|
+ if (!_print_ascii_file("/proc/cpuinfo", st)) {
|
|
+ st->print(" <Not Available>");
|
|
+ }
|
|
+ st->cr();
|
|
+}
|
|
+
|
|
// Taken from /usr/include/bits/siginfo.h Supposed to be architecture specific
|
|
// but they're the same for all the bsd arch that we support
|
|
// and they're the same for solaris but there's no common place to put this.
|
|
@@ -2532,6 +2539,25 @@
|
|
len = strlen(buf);
|
|
jrelib_p = buf + len;
|
|
|
|
+#ifndef __APPLE__
|
|
+ snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch);
|
|
+ if (0 != access(buf, F_OK)) {
|
|
+ snprintf(jrelib_p, buflen-len, "/lib/%s", cpu_arch);
|
|
+ }
|
|
+
|
|
+ if (0 == access(buf, F_OK)) {
|
|
+ // Use current module name "libjvm[_g].so" instead of
|
|
+ // "libjvm"debug_only("_g")".so" since for fastdebug version
|
|
+ // we should have "libjvm.so" but debug_only("_g") adds "_g"!
|
|
+ len = strlen(buf);
|
|
+ snprintf(buf + len, buflen-len, "/hotspot/libjvm%s.so", p);
|
|
+ } else {
|
|
+ // Go back to path of .so
|
|
+ rp = realpath(dli_fname, buf);
|
|
+ if (rp == NULL)
|
|
+ return;
|
|
+ }
|
|
+#else
|
|
// Add the appropriate library subdir
|
|
snprintf(jrelib_p, buflen-len, "/jre/lib");
|
|
if (0 != access(buf, F_OK)) {
|
|
@@ -2561,6 +2587,7 @@
|
|
if (rp == NULL)
|
|
return;
|
|
}
|
|
+#endif
|
|
}
|
|
}
|
|
}
|
|
@@ -2817,7 +2844,11 @@
|
|
}
|
|
|
|
void os::free_memory(char *addr, size_t bytes, size_t alignment_hint) {
|
|
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
|
|
+ commit_memory(addr, bytes, alignment_hint, false);
|
|
+#else
|
|
::madvise(addr, bytes, MADV_DONTNEED);
|
|
+#endif
|
|
}
|
|
|
|
void os::numa_make_global(char *addr, size_t bytes) {
|
|
--- hotspot/src/os/bsd/vm/os_bsd.hpp 2012-08-10 09:24:18.000000000 -0700
|
|
+++ hotspot/src/os/bsd/vm/os_bsd.hpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -103,6 +103,12 @@
|
|
|
|
static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
|
|
|
|
+ static void print_full_memory_info(outputStream* st);
|
|
+#ifndef _ALLBSD_SOURCE
|
|
+ static void print_distro_info(outputStream* st);
|
|
+ static void print_libversion_info(outputStream* st);
|
|
+#endif
|
|
+
|
|
public:
|
|
|
|
static void init_thread_fpu_state();
|
|
--- hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2012-08-10 09:24:18.000000000 -0700
|
|
+++ hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -31,10 +31,22 @@
|
|
# include "atomic_bsd_x86.inline.hpp"
|
|
# include "orderAccess_bsd_x86.inline.hpp"
|
|
#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_sparc
|
|
+# include "atomic_bsd_sparc.inline.hpp"
|
|
+# include "orderAccess_bsd_sparc.inline.hpp"
|
|
+#endif
|
|
#ifdef TARGET_OS_ARCH_bsd_zero
|
|
# include "atomic_bsd_zero.inline.hpp"
|
|
# include "orderAccess_bsd_zero.inline.hpp"
|
|
#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_arm
|
|
+# include "atomic_bsd_arm.inline.hpp"
|
|
+# include "orderAccess_bsd_arm.inline.hpp"
|
|
+#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_ppc
|
|
+# include "atomic_bsd_ppc.inline.hpp"
|
|
+# include "orderAccess_bsd_ppc.inline.hpp"
|
|
+#endif
|
|
|
|
// System includes
|
|
|
|
--- hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2012-08-10 09:24:18.000000000 -0700
|
|
+++ hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -34,11 +34,26 @@
|
|
# include "orderAccess_bsd_x86.inline.hpp"
|
|
# include "prefetch_bsd_x86.inline.hpp"
|
|
#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_sparc
|
|
+# include "atomic_bsd_sparc.inline.hpp"
|
|
+# include "orderAccess_bsd_sparc.inline.hpp"
|
|
+# include "prefetch_bsd_sparc.inline.hpp"
|
|
+#endif
|
|
#ifdef TARGET_OS_ARCH_bsd_zero
|
|
# include "atomic_bsd_zero.inline.hpp"
|
|
# include "orderAccess_bsd_zero.inline.hpp"
|
|
# include "prefetch_bsd_zero.inline.hpp"
|
|
#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_arm
|
|
+# include "atomic_bsd_arm.inline.hpp"
|
|
+# include "orderAccess_bsd_arm.inline.hpp"
|
|
+# include "prefetch_bsd_arm.inline.hpp"
|
|
+#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_ppc
|
|
+# include "atomic_bsd_ppc.inline.hpp"
|
|
+# include "orderAccess_bsd_ppc.inline.hpp"
|
|
+# include "prefetch_bsd_ppc.inline.hpp"
|
|
+#endif
|
|
|
|
// Contains inlined functions for class Thread and ThreadLocalStorage
|
|
|
|
--- hotspot/src/os/posix/vm/os_posix.cpp 2012-08-10 09:24:20.000000000 -0700
|
|
+++ hotspot/src/os/posix/vm/os_posix.cpp 2013-04-28 16:29:16.000000000 -0700
|
|
@@ -75,6 +75,47 @@
|
|
return;
|
|
}
|
|
|
|
+// Multiple threads can race in this code, and can remap over each other with MAP_FIXED,
|
|
+// so on posix, unmap the section at the start and at the end of the chunk that we mapped
|
|
+// rather than unmapping and remapping the whole chunk to get requested alignment.
|
|
+char* os::reserve_memory_aligned(size_t size, size_t alignment) {
|
|
+ assert((alignment & (os::vm_allocation_granularity() - 1)) == 0,
|
|
+ "Alignment must be a multiple of allocation granularity (page size)");
|
|
+ assert((size & (alignment -1)) == 0, "size must be 'alignment' aligned");
|
|
+
|
|
+ size_t extra_size = size + alignment;
|
|
+ assert(extra_size >= size, "overflow, size is too large to allow alignment");
|
|
+
|
|
+ char* extra_base = os::reserve_memory(extra_size, NULL, alignment);
|
|
+
|
|
+ if (extra_base == NULL) {
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ // Do manual alignment
|
|
+ char* aligned_base = (char*) align_size_up((uintptr_t) extra_base, alignment);
|
|
+
|
|
+ // [ | | ]
|
|
+ // ^ extra_base
|
|
+ // ^ extra_base + begin_offset == aligned_base
|
|
+ // extra_base + begin_offset + size ^
|
|
+ // extra_base + extra_size ^
|
|
+ // |<>| == begin_offset
|
|
+ // end_offset == |<>|
|
|
+ size_t begin_offset = aligned_base - extra_base;
|
|
+ size_t end_offset = (extra_base + extra_size) - (aligned_base + size);
|
|
+
|
|
+ if (begin_offset > 0) {
|
|
+ os::release_memory(extra_base, begin_offset);
|
|
+ }
|
|
+
|
|
+ if (end_offset > 0) {
|
|
+ os::release_memory(extra_base + begin_offset + size, end_offset);
|
|
+ }
|
|
+
|
|
+ return aligned_base;
|
|
+}
|
|
+
|
|
void os::Posix::print_load_average(outputStream* st) {
|
|
st->print("load average:");
|
|
double loadavg[3];
|
|
@@ -110,11 +151,19 @@
|
|
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
else st->print("%d", rlim.rlim_cur);
|
|
|
|
+#ifdef __OpenBSD__
|
|
+ st->print(", DATA ");
|
|
+ getrlimit(RLIMIT_DATA, &rlim);
|
|
+ if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
+ else st->print("%uk", rlim.rlim_cur >> 10);
|
|
+ st->cr();
|
|
+#else
|
|
st->print(", AS ");
|
|
getrlimit(RLIMIT_AS, &rlim);
|
|
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
|
|
else st->print("%uk", rlim.rlim_cur >> 10);
|
|
st->cr();
|
|
+#endif
|
|
}
|
|
|
|
void os::Posix::print_uname_info(outputStream* st) {
|
|
--- hotspot/src/os/windows/vm/os_windows.cpp 2012-08-10 09:24:30.000000000 -0700
|
|
+++ hotspot/src/os/windows/vm/os_windows.cpp 2013-04-28 16:29:12.000000000 -0700
|
|
@@ -2941,6 +2941,36 @@
|
|
}
|
|
}
|
|
|
|
+// Multiple threads can race in this code but it's not possible to unmap small sections of
|
|
+// virtual space to get requested alignment, like posix-like os's.
|
|
+// Windows prevents multiple thread from remapping over each other so this loop is thread-safe.
|
|
+char* os::reserve_memory_aligned(size_t size, size_t alignment) {
|
|
+ assert((alignment & (os::vm_allocation_granularity() - 1)) == 0,
|
|
+ "Alignment must be a multiple of allocation granularity (page size)");
|
|
+ assert((size & (alignment -1)) == 0, "size must be 'alignment' aligned");
|
|
+
|
|
+ size_t extra_size = size + alignment;
|
|
+ assert(extra_size >= size, "overflow, size is too large to allow alignment");
|
|
+
|
|
+ char* aligned_base = NULL;
|
|
+
|
|
+ do {
|
|
+ char* extra_base = os::reserve_memory(extra_size, NULL, alignment);
|
|
+ if (extra_base == NULL) {
|
|
+ return NULL;
|
|
+ }
|
|
+ // Do manual alignment
|
|
+ aligned_base = (char*) align_size_up((uintptr_t) extra_base, alignment);
|
|
+
|
|
+ os::release_memory(extra_base, extra_size);
|
|
+
|
|
+ aligned_base = os::reserve_memory(size, aligned_base);
|
|
+
|
|
+ } while (aligned_base == NULL);
|
|
+
|
|
+ return aligned_base;
|
|
+}
|
|
+
|
|
char* os::reserve_memory(size_t bytes, char* addr, size_t alignment_hint) {
|
|
assert((size_t)addr % os::vm_allocation_granularity() == 0,
|
|
"reserve alignment");
|
|
--- hotspot/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp 2012-08-10 09:24:32.000000000 -0700
|
|
+++ hotspot/src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -52,7 +52,7 @@
|
|
/* Posix Thread IDs */ \
|
|
/**********************/ \
|
|
\
|
|
- declare_unsigned_integer_type(thread_t) \
|
|
+ declare_unsigned_integer_type(OS_THREAD_ID_TYPE) \
|
|
declare_unsigned_integer_type(pthread_t) \
|
|
\
|
|
/* This must be the last entry, and must be present */ \
|
|
--- hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2012-08-10 09:24:33.000000000 -0700
|
|
+++ hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -24,7 +24,7 @@
|
|
*/
|
|
|
|
#if defined(_ALLBSD_SOURCE) && !defined(__APPLE__) && !defined(__NetBSD__)
|
|
-#include <pthread.h>
|
|
+# include <pthread.h>
|
|
# include <pthread_np.h> /* For pthread_attr_get_np */
|
|
#endif
|
|
|
|
--- hotspot/src/share/vm/compiler/compilerOracle.cpp 2012-08-10 09:26:19.000000000 -0700
|
|
+++ hotspot/src/share/vm/compiler/compilerOracle.cpp 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -575,7 +575,7 @@
|
|
char token[1024];
|
|
int pos = 0;
|
|
int c = getc(stream);
|
|
- while(c != EOF) {
|
|
+ while(c != EOF && pos < (int)(sizeof(token)-1)) {
|
|
if (c == '\n') {
|
|
token[pos++] = '\0';
|
|
parse_from_line(token);
|
|
@@ -596,7 +596,7 @@
|
|
int pos = 0;
|
|
const char* sp = str;
|
|
int c = *sp++;
|
|
- while (c != '\0') {
|
|
+ while (c != '\0' && pos < (int)(sizeof(token)-1)) {
|
|
if (c == '\n') {
|
|
token[pos++] = '\0';
|
|
parse_line(token);
|
|
--- hotspot/src/share/vm/interpreter/linkResolver.cpp 2012-08-10 09:27:05.000000000 -0700
|
|
+++ hotspot/src/share/vm/interpreter/linkResolver.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -712,7 +712,7 @@
|
|
|
|
if (check_access &&
|
|
// a) check if ACC_SUPER flag is set for the current class
|
|
- current_klass->is_super() &&
|
|
+ (current_klass->is_super() || !AllowNonVirtualCalls) &&
|
|
// b) check if the method class is a superclass of the current class (superclass relation is not reflexive!)
|
|
current_klass->is_subtype_of(method_klass()) && current_klass() != method_klass() &&
|
|
// c) check if the method is not <init>
|
|
--- hotspot/src/share/vm/oops/cpCacheOop.cpp 2012-08-10 09:27:18.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/cpCacheOop.cpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -470,6 +470,24 @@
|
|
return false;
|
|
}
|
|
|
|
+// a constant pool cache entry should never contain old or obsolete methods
|
|
+bool ConstantPoolCacheEntry::check_no_old_or_obsolete_entries() {
|
|
+ if (is_vfinal()) {
|
|
+ // virtual and final so _f2 contains method ptr instead of vtable index
|
|
+ methodOop m = (methodOop)_f2;
|
|
+ // Return false if _f2 refers to an old or an obsolete method.
|
|
+ // _f2 == NULL || !m->is_method() are just as unexpected here.
|
|
+ return (m != NULL && m->is_method() && !m->is_old() && !m->is_obsolete());
|
|
+ } else if ((oop)_f1 == NULL || !((oop)_f1)->is_method()) {
|
|
+ // _f1 == NULL || !_f1->is_method() are OK here
|
|
+ return true;
|
|
+ }
|
|
+
|
|
+ methodOop m = (methodOop)_f1;
|
|
+ // return false if _f1 refers to an old or an obsolete method
|
|
+ return (!m->is_old() && !m->is_obsolete());
|
|
+}
|
|
+
|
|
bool ConstantPoolCacheEntry::is_interesting_method_entry(klassOop k) {
|
|
if (!is_method_entry()) {
|
|
// not a method entry so not interesting by default
|
|
@@ -492,7 +510,7 @@
|
|
}
|
|
|
|
assert(m != NULL && m->is_method(), "sanity check");
|
|
- if (m == NULL || !m->is_method() || m->method_holder() != k) {
|
|
+ if (m == NULL || !m->is_method() || (k != NULL && m->method_holder() != k)) {
|
|
// robustness for above sanity checks or method is not in
|
|
// the interesting class
|
|
return false;
|
|
@@ -577,3 +595,22 @@
|
|
}
|
|
}
|
|
}
|
|
+
|
|
+// the constant pool cache should never contain old or obsolete methods
|
|
+bool constantPoolCacheOopDesc::check_no_old_or_obsolete_entries() {
|
|
+ for (int i = 1; i < length(); i++) {
|
|
+ if (entry_at(i)->is_interesting_method_entry(NULL) &&
|
|
+ !entry_at(i)->check_no_old_or_obsolete_entries()) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+}
|
|
+
|
|
+void constantPoolCacheOopDesc::dump_cache() {
|
|
+ for (int i = 1; i < length(); i++) {
|
|
+ if (entry_at(i)->is_interesting_method_entry(NULL)) {
|
|
+ entry_at(i)->print(tty, i);
|
|
+ }
|
|
+ }
|
|
+}
|
|
--- hotspot/src/share/vm/oops/cpCacheOop.hpp 2012-08-10 09:27:18.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/cpCacheOop.hpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -298,6 +298,7 @@
|
|
// group don't print the klass name.
|
|
bool adjust_method_entry(methodOop old_method, methodOop new_method,
|
|
bool * trace_name_printed);
|
|
+ bool check_no_old_or_obsolete_entries();
|
|
bool is_interesting_method_entry(klassOop k);
|
|
bool is_field_entry() const { return (_flags & (1 << hotSwapBit)) == 0; }
|
|
bool is_method_entry() const { return (_flags & (1 << hotSwapBit)) != 0; }
|
|
@@ -405,6 +406,8 @@
|
|
// group don't print the klass name.
|
|
void adjust_method_entries(methodOop* old_methods, methodOop* new_methods,
|
|
int methods_length, bool * trace_name_printed);
|
|
+ bool check_no_old_or_obsolete_entries();
|
|
+ void dump_cache();
|
|
};
|
|
|
|
#endif // SHARE_VM_OOPS_CPCACHEOOP_HPP
|
|
--- hotspot/src/share/vm/oops/klassVtable.cpp 2012-08-10 09:27:23.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/klassVtable.cpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -640,11 +640,37 @@
|
|
new_method->name()->as_C_string(),
|
|
new_method->signature()->as_C_string()));
|
|
}
|
|
+ // cannot 'break' here; see for-loop comment above.
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+// a vtable should never contain old or obsolete methods
|
|
+bool klassVtable::check_no_old_or_obsolete_entries() {
|
|
+ for (int i = 0; i < length(); i++) {
|
|
+ methodOop m = unchecked_method_at(i);
|
|
+ if (m != NULL && (m->is_old() || m->is_obsolete())) {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ return true;
|
|
+}
|
|
+
|
|
+void klassVtable::dump_vtable() {
|
|
+ tty->print_cr("vtable dump --");
|
|
+ for (int i = 0; i < length(); i++) {
|
|
+ methodOop m = unchecked_method_at(i);
|
|
+ if (m != NULL) {
|
|
+ tty->print(" (%5d) ", i);
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
// CDS/RedefineClasses support - clear vtables so they can be reinitialized
|
|
void klassVtable::clear_vtable() {
|
|
for (int i = 0; i < _length; i++) table()[i].clear();
|
|
@@ -994,13 +1020,42 @@
|
|
new_method->name()->as_C_string(),
|
|
new_method->signature()->as_C_string()));
|
|
}
|
|
- break;
|
|
+ // cannot 'break' here; see for-loop comment above.
|
|
}
|
|
ime++;
|
|
}
|
|
}
|
|
}
|
|
|
|
+// an itable should never contain old or obsolete methods
|
|
+bool klassItable::check_no_old_or_obsolete_entries() {
|
|
+ itableMethodEntry* ime = method_entry(0);
|
|
+ for (int i = 0; i < _size_method_table; i++) {
|
|
+ methodOop m = ime->method();
|
|
+ if (m != NULL && (m->is_old() || m->is_obsolete())) {
|
|
+ return false;
|
|
+ }
|
|
+ ime++;
|
|
+ }
|
|
+ return true;
|
|
+}
|
|
+
|
|
+void klassItable::dump_itable() {
|
|
+ itableMethodEntry* ime = method_entry(0);
|
|
+ tty->print_cr("itable dump --");
|
|
+ for (int i = 0; i < _size_method_table; i++) {
|
|
+ methodOop m = ime->method();
|
|
+ if (m != NULL) {
|
|
+ tty->print(" (%5d) ", i);
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ ime++;
|
|
+ }
|
|
+}
|
|
+
|
|
|
|
// Setup
|
|
class InterfaceVisiterClosure : public StackObj {
|
|
@@ -1287,33 +1342,6 @@
|
|
tty->print_cr("%6d bytes total", total);
|
|
}
|
|
|
|
-bool klassVtable::check_no_old_entries() {
|
|
- // Check that there really is no entry
|
|
- for (int i = 0; i < length(); i++) {
|
|
- methodOop m = unchecked_method_at(i);
|
|
- if (m != NULL) {
|
|
- if (m->is_old()) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
- }
|
|
- return true;
|
|
-}
|
|
-
|
|
-void klassVtable::dump_vtable() {
|
|
- tty->print_cr("vtable dump --");
|
|
- for (int i = 0; i < length(); i++) {
|
|
- methodOop m = unchecked_method_at(i);
|
|
- if (m != NULL) {
|
|
- tty->print(" (%5d) ", i);
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- }
|
|
- }
|
|
-}
|
|
-
|
|
int klassItable::_total_classes; // Total no. of classes with itables
|
|
long klassItable::_total_size; // Total no. of bytes used for itables
|
|
|
|
--- hotspot/src/share/vm/oops/klassVtable.hpp 2012-08-10 09:27:23.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/klassVtable.hpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -98,6 +98,8 @@
|
|
// group don't print the klass name.
|
|
void adjust_method_entries(methodOop* old_methods, methodOop* new_methods,
|
|
int methods_length, bool * trace_name_printed);
|
|
+ bool check_no_old_or_obsolete_entries();
|
|
+ void dump_vtable();
|
|
|
|
// Garbage collection
|
|
void oop_follow_contents();
|
|
@@ -118,11 +120,6 @@
|
|
void verify(outputStream* st, bool force = false);
|
|
static void print_statistics() PRODUCT_RETURN;
|
|
|
|
-#ifndef PRODUCT
|
|
- bool check_no_old_entries();
|
|
- void dump_vtable();
|
|
-#endif
|
|
-
|
|
protected:
|
|
friend class vtableEntry;
|
|
private:
|
|
@@ -292,6 +289,8 @@
|
|
// group don't print the klass name.
|
|
void adjust_method_entries(methodOop* old_methods, methodOop* new_methods,
|
|
int methods_length, bool * trace_name_printed);
|
|
+ bool check_no_old_or_obsolete_entries();
|
|
+ void dump_itable();
|
|
|
|
// Garbage collection
|
|
void oop_follow_contents();
|
|
--- hotspot/src/share/vm/oops/methodOop.cpp 2012-08-10 09:27:25.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/methodOop.cpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -1346,10 +1346,6 @@
|
|
}
|
|
|
|
|
|
-//-----------------------------------------------------------------------------------
|
|
-// Non-product code
|
|
-
|
|
-#ifndef PRODUCT
|
|
class SignatureTypePrinter : public SignatureTypeNames {
|
|
private:
|
|
outputStream* _st;
|
|
@@ -1386,6 +1382,10 @@
|
|
}
|
|
|
|
|
|
+//-----------------------------------------------------------------------------------
|
|
+// Non-product code
|
|
+
|
|
+#ifndef PRODUCT
|
|
void methodOopDesc::print_codes_on(outputStream* st) const {
|
|
print_codes_on(0, code_size(), st);
|
|
}
|
|
--- hotspot/src/share/vm/oops/methodOop.hpp 2012-08-10 09:27:26.000000000 -0700
|
|
+++ hotspot/src/share/vm/oops/methodOop.hpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -703,8 +703,8 @@
|
|
static bool has_unloaded_classes_in_signature(methodHandle m, TRAPS);
|
|
|
|
// Printing
|
|
- void print_short_name(outputStream* st) /*PRODUCT_RETURN*/; // prints as klassname::methodname; Exposed so field engineers can debug VM
|
|
- void print_name(outputStream* st) PRODUCT_RETURN; // prints as "virtual void foo(int)"
|
|
+ void print_short_name(outputStream* st); // prints as klassname::methodname; Exposed so field engineers can debug VM
|
|
+ void print_name(outputStream* st); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
|
|
|
|
// Helper routine used for method sorting
|
|
static void sort_methods(objArrayOop methods,
|
|
--- hotspot/src/share/vm/opto/library_call.cpp 2012-08-10 09:27:37.000000000 -0700
|
|
+++ hotspot/src/share/vm/opto/library_call.cpp 2013-04-28 16:29:13.000000000 -0700
|
|
@@ -3931,7 +3931,8 @@
|
|
}
|
|
}
|
|
}
|
|
- else if (method->is_method_handle_adapter()) {
|
|
+
|
|
+ if (method->is_method_handle_adapter()) {
|
|
// This is an internal adapter frame from the MethodHandleCompiler -- skip it
|
|
return true;
|
|
}
|
|
@@ -5476,4 +5477,3 @@
|
|
push(result);
|
|
return true;
|
|
}
|
|
-
|
|
--- hotspot/src/share/vm/opto/loopTransform.cpp 2012-08-10 09:27:38.000000000 -0700
|
|
+++ hotspot/src/share/vm/opto/loopTransform.cpp 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -2733,6 +2733,8 @@
|
|
result_mem = new (C, 1) ProjNode(call,TypeFunc::Memory);
|
|
_igvn.register_new_node_with_optimizer(result_mem);
|
|
|
|
+/* Disable following optimization until proper fix (add missing checks).
|
|
+
|
|
// If this fill is tightly coupled to an allocation and overwrites
|
|
// the whole body, allow it to take over the zeroing.
|
|
AllocateNode* alloc = AllocateNode::Ideal_allocation(base, this);
|
|
@@ -2756,6 +2758,7 @@
|
|
#endif
|
|
}
|
|
}
|
|
+*/
|
|
|
|
// Redirect the old control and memory edges that are outside the loop.
|
|
Node* exit = head->loopexit()->proj_out(0);
|
|
--- hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp 2012-08-10 09:27:50.000000000 -0700
|
|
+++ hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp 2013-04-28 16:29:14.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -129,8 +129,15 @@
|
|
// See jvmtiExport.hpp for detailed explanation.
|
|
JvmtiExport::set_has_redefined_a_class();
|
|
|
|
-#ifdef ASSERT
|
|
- SystemDictionary::classes_do(check_class, thread);
|
|
+// check_class() is optionally called for product bits, but is
|
|
+// always called for non-product bits.
|
|
+#ifdef PRODUCT
|
|
+ if (RC_TRACE_ENABLED(0x00004000)) {
|
|
+#endif
|
|
+ RC_TRACE_WITH_THREAD(0x00004000, thread, ("calling check_class"));
|
|
+ SystemDictionary::classes_do(check_class, thread);
|
|
+#ifdef PRODUCT
|
|
+ }
|
|
#endif
|
|
}
|
|
|
|
@@ -3366,76 +3373,116 @@
|
|
}
|
|
}
|
|
|
|
-#ifndef PRODUCT
|
|
void VM_RedefineClasses::check_class(klassOop k_oop,
|
|
oop initiating_loader, TRAPS) {
|
|
Klass *k = k_oop->klass_part();
|
|
if (k->oop_is_instance()) {
|
|
HandleMark hm(THREAD);
|
|
instanceKlass *ik = (instanceKlass *) k;
|
|
+ bool no_old_methods = true; // be optimistic
|
|
+ ResourceMark rm(THREAD);
|
|
|
|
- if (ik->vtable_length() > 0) {
|
|
- ResourceMark rm(THREAD);
|
|
- if (!ik->vtable()->check_no_old_entries()) {
|
|
- tty->print_cr("klassVtable::check_no_old_entries failure -- OLD method found -- class: %s", ik->signature_name());
|
|
+ // a vtable should never contain old or obsolete methods
|
|
+ if (ik->vtable_length() > 0 &&
|
|
+ !ik->vtable()->check_no_old_or_obsolete_entries()) {
|
|
+ if (RC_TRACE_ENABLED(0x00004000)) {
|
|
+ RC_TRACE_WITH_THREAD(0x00004000, THREAD,
|
|
+ ("klassVtable::check_no_old_or_obsolete_entries failure"
|
|
+ " -- OLD or OBSOLETE method found -- class: %s",
|
|
+ ik->signature_name()));
|
|
ik->vtable()->dump_vtable();
|
|
+ }
|
|
+ no_old_methods = false;
|
|
+ }
|
|
+
|
|
+ // an itable should never contain old or obsolete methods
|
|
+ if (ik->itable_length() > 0 &&
|
|
+ !ik->itable()->check_no_old_or_obsolete_entries()) {
|
|
+ if (RC_TRACE_ENABLED(0x00004000)) {
|
|
+ RC_TRACE_WITH_THREAD(0x00004000, THREAD,
|
|
+ ("klassItable::check_no_old_or_obsolete_entries failure"
|
|
+ " -- OLD or OBSOLETE method found -- class: %s",
|
|
+ ik->signature_name()));
|
|
+ ik->itable()->dump_itable();
|
|
+ }
|
|
+ no_old_methods = false;
|
|
+ }
|
|
+
|
|
+ // the constant pool cache should never contain old or obsolete methods
|
|
+ if (ik->constants() != NULL &&
|
|
+ ik->constants()->cache() != NULL &&
|
|
+ !ik->constants()->cache()->check_no_old_or_obsolete_entries()) {
|
|
+ if (RC_TRACE_ENABLED(0x00004000)) {
|
|
+ RC_TRACE_WITH_THREAD(0x00004000, THREAD,
|
|
+ ("cp-cache::check_no_old_or_obsolete_entries failure"
|
|
+ " -- OLD or OBSOLETE method found -- class: %s",
|
|
+ ik->signature_name()));
|
|
+ ik->constants()->cache()->dump_cache();
|
|
+ }
|
|
+ no_old_methods = false;
|
|
+ }
|
|
+
|
|
+ if (!no_old_methods) {
|
|
+ if (RC_TRACE_ENABLED(0x00004000)) {
|
|
dump_methods();
|
|
- assert(false, "OLD method found");
|
|
+ } else {
|
|
+ tty->print_cr("INFO: use the '-XX:TraceRedefineClasses=16384' option "
|
|
+ "to see more info about the following guarantee() failure.");
|
|
}
|
|
+ guarantee(false, "OLD and/or OBSOLETE method(s) found");
|
|
}
|
|
}
|
|
}
|
|
|
|
void VM_RedefineClasses::dump_methods() {
|
|
- int j;
|
|
- tty->print_cr("_old_methods --");
|
|
- for (j = 0; j < _old_methods->length(); ++j) {
|
|
- methodOop m = (methodOop) _old_methods->obj_at(j);
|
|
- tty->print("%4d (%5d) ", j, m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- }
|
|
- tty->print_cr("_new_methods --");
|
|
- for (j = 0; j < _new_methods->length(); ++j) {
|
|
- methodOop m = (methodOop) _new_methods->obj_at(j);
|
|
- tty->print("%4d (%5d) ", j, m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- }
|
|
- tty->print_cr("_matching_(old/new)_methods --");
|
|
- for (j = 0; j < _matching_methods_length; ++j) {
|
|
- methodOop m = _matching_old_methods[j];
|
|
- tty->print("%4d (%5d) ", j, m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- m = _matching_new_methods[j];
|
|
- tty->print(" (%5d) ", m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->cr();
|
|
- }
|
|
- tty->print_cr("_deleted_methods --");
|
|
- for (j = 0; j < _deleted_methods_length; ++j) {
|
|
- methodOop m = _deleted_methods[j];
|
|
- tty->print("%4d (%5d) ", j, m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- }
|
|
- tty->print_cr("_added_methods --");
|
|
- for (j = 0; j < _added_methods_length; ++j) {
|
|
- methodOop m = _added_methods[j];
|
|
- tty->print("%4d (%5d) ", j, m->vtable_index());
|
|
- m->access_flags().print_on(tty);
|
|
- tty->print(" -- ");
|
|
- m->print_name(tty);
|
|
- tty->cr();
|
|
- }
|
|
+ int j;
|
|
+ RC_TRACE(0x00004000, ("_old_methods --"));
|
|
+ for (j = 0; j < _old_methods->length(); ++j) {
|
|
+ methodOop m = (methodOop) _old_methods->obj_at(j);
|
|
+ RC_TRACE_NO_CR(0x00004000, ("%4d (%5d) ", j, m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ RC_TRACE(0x00004000, ("_new_methods --"));
|
|
+ for (j = 0; j < _new_methods->length(); ++j) {
|
|
+ methodOop m = (methodOop) _new_methods->obj_at(j);
|
|
+ RC_TRACE_NO_CR(0x00004000, ("%4d (%5d) ", j, m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ RC_TRACE(0x00004000, ("_matching_(old/new)_methods --"));
|
|
+ for (j = 0; j < _matching_methods_length; ++j) {
|
|
+ methodOop m = _matching_old_methods[j];
|
|
+ RC_TRACE_NO_CR(0x00004000, ("%4d (%5d) ", j, m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ m = _matching_new_methods[j];
|
|
+ RC_TRACE_NO_CR(0x00004000, (" (%5d) ", m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ RC_TRACE(0x00004000, ("_deleted_methods --"));
|
|
+ for (j = 0; j < _deleted_methods_length; ++j) {
|
|
+ methodOop m = _deleted_methods[j];
|
|
+ RC_TRACE_NO_CR(0x00004000, ("%4d (%5d) ", j, m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
+ RC_TRACE(0x00004000, ("_added_methods --"));
|
|
+ for (j = 0; j < _added_methods_length; ++j) {
|
|
+ methodOop m = _added_methods[j];
|
|
+ RC_TRACE_NO_CR(0x00004000, ("%4d (%5d) ", j, m->vtable_index()));
|
|
+ m->access_flags().print_on(tty);
|
|
+ tty->print(" -- ");
|
|
+ m->print_name(tty);
|
|
+ tty->cr();
|
|
+ }
|
|
}
|
|
-#endif
|
|
--- hotspot/src/share/vm/prims/jvmtiRedefineClasses.hpp 2012-08-10 09:27:50.000000000 -0700
|
|
+++ hotspot/src/share/vm/prims/jvmtiRedefineClasses.hpp 2013-04-28 16:29:14.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -478,9 +478,8 @@
|
|
|
|
void flush_dependent_code(instanceKlassHandle k_h, TRAPS);
|
|
|
|
- static void check_class(klassOop k_oop, oop initiating_loader, TRAPS) PRODUCT_RETURN;
|
|
-
|
|
- static void dump_methods() PRODUCT_RETURN;
|
|
+ static void check_class(klassOop k_oop, oop initiating_loader, TRAPS);
|
|
+ static void dump_methods();
|
|
|
|
public:
|
|
VM_RedefineClasses(jint class_count,
|
|
--- hotspot/src/share/vm/prims/jvmtiRedefineClassesTrace.hpp 2012-08-10 09:27:50.000000000 -0700
|
|
+++ hotspot/src/share/vm/prims/jvmtiRedefineClassesTrace.hpp 2013-04-28 16:29:14.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -54,7 +54,7 @@
|
|
// 0x00000800 | 2048 - previous class breakpoint mgmt
|
|
// 0x00001000 | 4096 - detect calls to obsolete methods
|
|
// 0x00002000 | 8192 - fail a guarantee() in addition to detection
|
|
-// 0x00004000 | 16384 - unused
|
|
+// 0x00004000 | 16384 - detect old/obsolete methods in metadata
|
|
// 0x00008000 | 32768 - old/new method matching/add/delete
|
|
// 0x00010000 | 65536 - impl details: CP size info
|
|
// 0x00020000 | 131072 - impl details: CP merge pass info
|
|
@@ -82,6 +82,13 @@
|
|
tty->print_cr args; \
|
|
} while (0)
|
|
|
|
+#define RC_TRACE_NO_CR(level, args) \
|
|
+ if ((TraceRedefineClasses & level) != 0) { \
|
|
+ ResourceMark rm; \
|
|
+ tty->print("RedefineClasses-0x%x: ", level); \
|
|
+ tty->print args; \
|
|
+ } while (0)
|
|
+
|
|
#define RC_TRACE_WITH_THREAD(level, thread, args) \
|
|
if ((TraceRedefineClasses & level) != 0) { \
|
|
ResourceMark rm(thread); \
|
|
--- hotspot/src/share/vm/prims/methodHandles.cpp 2012-08-10 09:27:52.000000000 -0700
|
|
+++ hotspot/src/share/vm/prims/methodHandles.cpp 2013-04-28 16:29:14.000000000 -0700
|
|
@@ -645,6 +645,13 @@
|
|
}
|
|
}
|
|
methodHandle m = result.resolved_method();
|
|
+ KlassHandle mklass = m->method_holder();
|
|
+ KlassHandle receiver_limit = result.resolved_klass();
|
|
+ if (receiver_limit.is_null() ||
|
|
+ // ignore passed-in limit; interfaces are interconvertible
|
|
+ receiver_limit->is_interface() && mklass->is_interface()) {
|
|
+ receiver_limit = mklass;
|
|
+ }
|
|
oop vmtarget = NULL;
|
|
int vmindex = methodOopDesc::nonvirtual_vtable_index;
|
|
if (defc->is_interface()) {
|
|
@@ -665,6 +672,7 @@
|
|
java_lang_invoke_MemberName::set_vmtarget(mname(), vmtarget);
|
|
java_lang_invoke_MemberName::set_vmindex(mname(), vmindex);
|
|
java_lang_invoke_MemberName::set_modifiers(mname(), mods);
|
|
+ java_lang_invoke_MemberName::set_clazz(mname(), receiver_limit->java_mirror());
|
|
DEBUG_ONLY(KlassHandle junk1; int junk2);
|
|
assert(decode_MemberName(mname(), junk1, junk2) == result.resolved_method(),
|
|
"properly stored for later decoding");
|
|
--- hotspot/src/share/vm/runtime/arguments.cpp 2012-08-10 09:27:53.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/arguments.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -829,6 +829,9 @@
|
|
} else {
|
|
jio_fprintf(defaultStream::error_stream(), "%s", locked_message_buf);
|
|
}
|
|
+ } else {
|
|
+ jio_fprintf(defaultStream::error_stream(),
|
|
+ "Unrecognized VM option '%s'\n", argname);
|
|
}
|
|
|
|
// allow for commandline "commenting out" options like -XX:#+Verbose
|
|
@@ -857,7 +860,7 @@
|
|
bool result = true;
|
|
|
|
int c = getc(stream);
|
|
- while(c != EOF) {
|
|
+ while(c != EOF && pos < (int)(sizeof(token)-1)) {
|
|
if (in_white_space) {
|
|
if (in_comment) {
|
|
if (c == '\n') in_comment = false;
|
|
--- hotspot/src/share/vm/runtime/atomic.cpp 2012-08-10 09:27:53.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/atomic.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -54,6 +54,12 @@
|
|
#ifdef TARGET_OS_ARCH_windows_x86
|
|
# include "atomic_windows_x86.inline.hpp"
|
|
#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_x86
|
|
+# include "atomic_bsd_x86.inline.hpp"
|
|
+#endif
|
|
+#ifdef TARGET_OS_ARCH_bsd_zero
|
|
+# include "atomic_bsd_zero.inline.hpp"
|
|
+#endif
|
|
#ifdef TARGET_OS_ARCH_linux_arm
|
|
# include "atomic_linux_arm.inline.hpp"
|
|
#endif
|
|
--- hotspot/src/share/vm/runtime/globals.hpp 2012-08-10 09:27:59.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/globals.hpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -3902,7 +3902,10 @@
|
|
product(bool, UseVMInterruptibleIO, false, \
|
|
"(Unstable, Solaris-specific) Thread interrupt before or with " \
|
|
"EINTR for I/O operations results in OS_INTRPT. The default value"\
|
|
- " of this flag is true for JDK 6 and earlier")
|
|
+ " of this flag is true for JDK 6 and earlier") \
|
|
+ \
|
|
+ product(bool, AllowNonVirtualCalls, false, \
|
|
+ "Obey the ACC_SUPER flag and allow invokenonvirtual calls")
|
|
|
|
/*
|
|
* Macros for factoring of globals
|
|
--- hotspot/src/share/vm/runtime/os.hpp 2012-08-10 09:28:05.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/os.hpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -30,6 +30,9 @@
|
|
#include "runtime/extendedPC.hpp"
|
|
#include "runtime/handles.hpp"
|
|
#include "utilities/top.hpp"
|
|
+#ifdef TARGET_OS_FAMILY_bsd
|
|
+# include "jvm_bsd.h"
|
|
+#endif
|
|
#ifdef TARGET_OS_FAMILY_linux
|
|
# include "jvm_linux.h"
|
|
#endif
|
|
@@ -233,6 +236,7 @@
|
|
static int vm_allocation_granularity();
|
|
static char* reserve_memory(size_t bytes, char* addr = 0,
|
|
size_t alignment_hint = 0);
|
|
+ static char* reserve_memory_aligned(size_t size, size_t alignment);
|
|
static char* attempt_reserve_memory_at(size_t bytes, char* addr);
|
|
static void split_reserved_memory(char *base, size_t size,
|
|
size_t split, bool realloc);
|
|
@@ -694,8 +698,8 @@
|
|
# include "os_windows.hpp"
|
|
#endif
|
|
#ifdef TARGET_OS_FAMILY_bsd
|
|
-# include "os_posix.hpp"
|
|
# include "os_bsd.hpp"
|
|
+# include "os_posix.hpp"
|
|
#endif
|
|
#ifdef TARGET_OS_ARCH_linux_x86
|
|
# include "os_linux_x86.hpp"
|
|
--- hotspot/src/share/vm/runtime/thread.cpp 2012-08-10 09:28:14.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/thread.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -3555,6 +3555,9 @@
|
|
os::dll_build_name(buffer, sizeof(buffer), Arguments::get_dll_dir(), name);
|
|
library = os::dll_load(buffer, ebuf, sizeof ebuf);
|
|
#ifdef KERNEL
|
|
+
|
|
+ // Dead code, KERNEL is never built in JDK7 or later. This code will be removed in a future update release.
|
|
+
|
|
// Download instrument dll
|
|
if (library == NULL && strcmp(name, "instrument") == 0) {
|
|
char *props = Arguments::get_kernel_properties();
|
|
--- hotspot/src/share/vm/runtime/virtualspace.cpp 2012-08-10 09:28:16.000000000 -0700
|
|
+++ hotspot/src/share/vm/runtime/virtualspace.cpp 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -340,20 +340,9 @@
|
|
if ((((size_t)base + noaccess_prefix) & (alignment - 1)) != 0) {
|
|
// Base not aligned, retry
|
|
if (!os::release_memory(base, size)) fatal("os::release_memory failed");
|
|
- // Reserve size large enough to do manual alignment and
|
|
- // increase size to a multiple of the desired alignment
|
|
+ // Make sure that size is aligned
|
|
size = align_size_up(size, alignment);
|
|
- size_t extra_size = size + alignment;
|
|
- do {
|
|
- char* extra_base = os::reserve_memory(extra_size, NULL, alignment);
|
|
- if (extra_base == NULL) return;
|
|
- // Do manual alignement
|
|
- base = (char*) align_size_up((uintptr_t) extra_base, alignment);
|
|
- assert(base >= extra_base, "just checking");
|
|
- // Re-reserve the region at the aligned base address.
|
|
- os::release_memory(extra_base, extra_size);
|
|
- base = os::reserve_memory(size, base);
|
|
- } while (base == NULL);
|
|
+ base = os::reserve_memory_aligned(size, alignment);
|
|
|
|
if (requested_address != 0 &&
|
|
failed_to_reserve_as_requested(base, requested_address, size, false)) {
|
|
--- hotspot/src/share/vm/utilities/accessFlags.cpp 2012-08-10 09:28:53.000000000 -0700
|
|
+++ hotspot/src/share/vm/utilities/accessFlags.cpp 2013-04-28 16:29:15.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,8 +59,6 @@
|
|
} while(f != old_flags);
|
|
}
|
|
|
|
-#ifndef PRODUCT
|
|
-
|
|
void AccessFlags::print_on(outputStream* st) const {
|
|
if (is_public ()) st->print("public " );
|
|
if (is_private ()) st->print("private " );
|
|
@@ -79,8 +77,6 @@
|
|
if (is_obsolete ()) st->print("{obsolete} " );
|
|
}
|
|
|
|
-#endif
|
|
-
|
|
void accessFlags_init() {
|
|
assert(sizeof(AccessFlags) == sizeof(jint), "just checking size of flags");
|
|
}
|
|
--- hotspot/src/share/vm/utilities/accessFlags.hpp 2012-08-10 09:28:53.000000000 -0700
|
|
+++ hotspot/src/share/vm/utilities/accessFlags.hpp 2013-04-28 16:29:15.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -233,7 +233,7 @@
|
|
inline friend AccessFlags accessFlags_from(jint flags);
|
|
|
|
// Printing/debugging
|
|
- void print_on(outputStream* st) const PRODUCT_RETURN;
|
|
+ void print_on(outputStream* st) const;
|
|
};
|
|
|
|
inline AccessFlags accessFlags_from(jint flags) {
|
|
--- hotspot/test/compiler/5091921/Test7005594.sh 2012-08-10 09:28:58.000000000 -0700
|
|
+++ hotspot/test/compiler/5091921/Test7005594.sh 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -71,6 +71,9 @@
|
|
# Windows/MKS
|
|
MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'`
|
|
MEM="$(($machine_memory / 1024))"
|
|
+elif [ -n `sysctl -n hw.physmem64 2> /dev/null` -o -n `sysctl -n hw.physmem 2> /dev/null` ];
|
|
+ # BSD
|
|
+ MEM=`sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }'`
|
|
else
|
|
echo "Unable to determine amount of physical memory on the machine"
|
|
fi
|
|
--- hotspot/test/compiler/7158807/Test7158807.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ hotspot/test/compiler/7158807/Test7158807.java 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -0,0 +1,66 @@
|
|
+/*
|
|
+ * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ *
|
|
+ */
|
|
+
|
|
+/**
|
|
+ * @test
|
|
+ * @bug 7158807
|
|
+ * @summary Revise stack management with volatile call sites
|
|
+ * @author Marc Schonefeld
|
|
+ *
|
|
+ * @run main/othervm -XX:CompileThreshold=100 -Xbatch -Xss248k Test7158807
|
|
+ */
|
|
+
|
|
+import java.lang.invoke.MethodHandle;
|
|
+import java.lang.invoke.MethodType;
|
|
+import java.lang.invoke.VolatileCallSite;
|
|
+
|
|
+public class Test7158807 {
|
|
+ /**
|
|
+ * @param args the command line arguments
|
|
+ */
|
|
+ public static void main(String[] args) throws Throwable {
|
|
+ for (int i = 0; i < 25600; i++) {
|
|
+ MethodType mt = MethodType.methodType(java.lang.String.class);
|
|
+ System.out.println(mt);
|
|
+ MethodType mt3 = null;
|
|
+ try {
|
|
+ mt3 = MethodType.genericMethodType(i);
|
|
+ } catch (IllegalArgumentException e) {
|
|
+ System.out.println("Passed");
|
|
+ System.exit(95);
|
|
+ }
|
|
+ System.out.println(i+":");
|
|
+ try {
|
|
+ VolatileCallSite vcs = new VolatileCallSite(mt3);
|
|
+ System.out.println(vcs);
|
|
+ MethodHandle mh = vcs.dynamicInvoker();
|
|
+ vcs.setTarget(mh);
|
|
+ // System.out.println(mh);
|
|
+ mh.invoke(mt, mh);
|
|
+ } catch (Throwable e) {
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+}
|
|
+
|
|
--- hotspot/test/gc/6941923/test6941923.sh 2012-08-10 09:29:15.000000000 -0700
|
|
+++ hotspot/test/gc/6941923/test6941923.sh 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -9,7 +9,7 @@
|
|
## skip on windows
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux )
|
|
+ SunOS | Linux | *BSD )
|
|
NULL=/dev/null
|
|
PS=":"
|
|
FS="/"
|
|
--- hotspot/test/runtime/7020373/Test7020373.sh 2012-08-10 09:29:17.000000000 -0700
|
|
+++ hotspot/test/runtime/7020373/Test7020373.sh 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -32,7 +32,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
NULL=/dev/null
|
|
PS=":"
|
|
FS="/"
|
|
--- hotspot/test/runtime/7110720/Test7110720.sh 2012-08-10 09:29:18.000000000 -0700
|
|
+++ hotspot/test/runtime/7110720/Test7110720.sh 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -37,7 +37,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux )
|
|
+ SunOS | Linux | *BSD )
|
|
FS="/"
|
|
RM=/bin/rm
|
|
CP=/bin/cp
|
|
--- hotspot/test/runtime/7158800/BadUtf8.java 2012-08-10 09:29:18.000000000 -0700
|
|
+++ hotspot/test/runtime/7158800/BadUtf8.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,1254 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-/*
|
|
- * @test
|
|
- * @bug 7158800
|
|
- * @summary Test that 1200 symbols that hash to the same value triggers
|
|
- * the symbol table alternate hashing mechanism. There isn't actually a
|
|
- * way to verify this.
|
|
- */
|
|
-//
|
|
-// Generate large number of strings that hash to the same value
|
|
-// to slow down symbol table lookup.
|
|
-
|
|
-import java.io.BufferedOutputStream;
|
|
-import java.io.FileOutputStream;
|
|
-
|
|
-public class BadUtf8 {
|
|
-static String[] strings = {
|
|
- "EOcLKvbddZyPxYpb",
|
|
- "DncLKvbdPxmAGrqj",
|
|
- "DoCjjvbdpxoIHQdY",
|
|
- "EPCkKvbdqYoHfqEY",
|
|
- "DnbkKvbdezvYdiUX",
|
|
- "DnbjjvbdeEoRbXCj",
|
|
- "EObkKvbdbsCkUEKB",
|
|
- "EOcLKvbdnUtyjiqf",
|
|
- "DncLKvbdRWnDcMHc",
|
|
- "DoCkKvbdrSUkOLAm",
|
|
- "DncLKvbdfNFwGmJk",
|
|
- "EPDLKvbdvAdYroFI",
|
|
- "DoDLKvbdiGibyViu",
|
|
- "DncLKvbdYqNEhmFR",
|
|
- "DoCkKvbdEARhlzXX",
|
|
- "DncLKvbdSZjHsCvA",
|
|
- "DncKjvbdqTsgRqkU",
|
|
- "DnbjjvbdqAiFAXHd",
|
|
- "EPDKjvbdGcjvJaij",
|
|
- "DnbkKvbdwtldpxkn",
|
|
- "DoDKjvbdYkrETnMN",
|
|
- "EPCjjvbdbBWEfQQX",
|
|
- "EPCjjvbduMXwAtBX",
|
|
- "DncLKvbdbsCkTcia",
|
|
- "DoCjjvbdczYpYZRC",
|
|
- "EOcKjvbdFeiqmhsq",
|
|
- "DoCkKvbdKCicQibx",
|
|
- "EOcKjvbdZLrEUOLm",
|
|
- "DoCjjvbdaNKbStmH",
|
|
- "DoDKjvbdJbjDQjDY",
|
|
- "EPCkKvbdemFwGmKL",
|
|
- "EPDKjvbdZQleImEq",
|
|
- "DncKjvbdZjShPfbG",
|
|
- "DnbjjvbdqYnhHREY",
|
|
- "DoCkKvbdaRfDIUGL",
|
|
- "DoDKjvbdLrWlyuQz",
|
|
- "DnbjjvbdZisHofaf",
|
|
- "EObjjvbdhtydvrUb",
|
|
- "DnbjjvbdRotHKGEX",
|
|
- "EObjjvbdNeEThhkE",
|
|
- "EPCjjvbdZtJJZESn",
|
|
- "DoDKjvbdnPyxvLYb",
|
|
- "EPDKjvbdeEoRbWbj",
|
|
- "EOcLKvbdFxttaEXb",
|
|
- "EObjjvbddwystRez",
|
|
- "EPCjjvbdJpzEnenF",
|
|
- "DnbkKvbdTppntuIN",
|
|
- "EPCkKvbdTukpKUBR",
|
|
- "DnbkKvbdhlFEOUcZ",
|
|
- "EObkKvbdlhdUQuRa",
|
|
- "DnbjjvbdkClKqHUg",
|
|
- "EOcKjvbdqTtGqqkU",
|
|
- "DncKjvbdtkwvaUBX",
|
|
- "DoDKjvbdsQWOjCuf",
|
|
- "DncLKvbdEKIJuwjA",
|
|
- "DncKjvbdGLErcIMu",
|
|
- "EOcLKvbdNPwpumfs",
|
|
- "EObkKvbdnVUzLJrG",
|
|
- "DoCkKvbdcTDKsdKB",
|
|
- "DncKjvbdKRZdoFme",
|
|
- "EOcLKvbdemFvgNKL",
|
|
- "EPCkKvbdznopdblY",
|
|
- "EPDLKvbdOYPVzdOU",
|
|
- "DnbjjvbdsZlPsAhO",
|
|
- "DoDLKvbdKCjDRKDY",
|
|
- "DoCkKvbdhuZeXSVC",
|
|
- "EPDKjvbdOStVgEtp",
|
|
- "DncLKvbdvwMAvBWV",
|
|
- "EPDKjvbdBcoaWJlf",
|
|
- "EOcKjvbdZxdKODMS",
|
|
- "DoCjjvbdbsCkTcjB",
|
|
- "EOcLKvbdwWlAuaWV",
|
|
- "DnbjjvbdFejRnJUR",
|
|
- "DnbjjvbdmIdTqVSB",
|
|
- "DnbkKvbdqBIeAWhE",
|
|
- "DncKjvbdrMzJyMIJ",
|
|
- "DoCkKvbdZGvdAOsJ",
|
|
- "DncLKvbdjggLfFnL",
|
|
- "DoCjjvbdYqNFJMdq",
|
|
- "DoCkKvbdqZPHfqDx",
|
|
- "DncLKvbdOEdThiLE",
|
|
- "DoCkKvbdZirgpGaf",
|
|
- "EPDLKvbdziuQPdSt",
|
|
- "EObkKvbdKQyeOenF",
|
|
- "DoDLKvbduaDySndh",
|
|
- "DoCjjvbdVUNUGLvK",
|
|
- "DncKjvbdAMhYrvzY",
|
|
- "DnbkKvbdnQZxvKxb",
|
|
- "EPCjjvbdBhjakJFj",
|
|
- "DncLKvbdmfeYNNfy",
|
|
- "DoDLKvbdjlbLydfo",
|
|
- "DoDLKvbdpyPIGpcx",
|
|
- "EOcLKvbdnVUzLJqf",
|
|
- "DoCjjvbdmJETqVSB",
|
|
- "DoDLKvbdJTZAsMxM",
|
|
- "DoCkKvbdnQZxvLZC",
|
|
- "DoDKjvbdACqwizJQ",
|
|
- "DncKjvbdvBEZSoFI",
|
|
- "DncKjvbdGckVjCJj",
|
|
- "DncLKvbdiMFENtcZ",
|
|
- "Dnbjjvbdjuvmcaww",
|
|
- "DnbkKvbdZyEKNblS",
|
|
- "DoCjjvbduMYXBUBX",
|
|
- "DnbjjvbdFWYopNJe",
|
|
- "DoDKjvbdelfXGljL",
|
|
- "DnbjjvbdakLenmcA",
|
|
- "EPDKjvbdfILWRmpg",
|
|
- "EObjjvbdSLYeuHLT",
|
|
- "DoCjjvbdMfbolotk",
|
|
- "EPDLKvbdrRuKnKaN",
|
|
- "EOcKjvbdyzdnRhIh",
|
|
- "DoDLKvbdGAoRZJzm",
|
|
- "DoCjjvbdhlFDnUcZ",
|
|
- "EPDLKvbdmpZyVkYb",
|
|
- "DncKjvbdTpqPUuIN",
|
|
- "DncLKvbdHDjvJaij",
|
|
- "EPDLKvbdYlRcsmkm",
|
|
- "EPDLKvbdvlvAMdFN",
|
|
- "DncKjvbdIsZArmYM",
|
|
- "EOcLKvbdegjuqnQg",
|
|
- "EOcLKvbdZQmFJNFR",
|
|
- "DoCjjvbdZxdJmcMS",
|
|
- "EPCkKvbdlZTSTYgU",
|
|
- "DoDKjvbdqceJPnWB",
|
|
- "DncLKvbdVgwuxGxz",
|
|
- "DncKjvbdDnbkLXDE",
|
|
- "EPDLKvbdatbHYKsh",
|
|
- "DncKjvbdEzsqFLbi",
|
|
- "EPDLKvbdnVVZkKRf",
|
|
- "EOcKjvbdKeegbBQu",
|
|
- "EPCkKvbdKfGHaaRV",
|
|
- "EPDKjvbdmIctRVRa",
|
|
- "EPCjjvbdRMxBxnUz",
|
|
- "DnbjjvbdJYTbILpp",
|
|
- "EPCkKvbdTAEiHbPE",
|
|
- "EOcLKvbdfelZnGgA",
|
|
- "DoCjjvbdOStWGeUp",
|
|
- "EOcLKvbdemGXHNJk",
|
|
- "DoDKjvbdYTMAmUOx",
|
|
- "EPCkKvbdpyOhGpcx",
|
|
- "EPCkKvbdAMgxsWzY",
|
|
- "DnbjjvbdYkrETnMN",
|
|
- "EPDLKvbdUQqPUtgm",
|
|
- "DncKjvbdehKurNqH",
|
|
- "DoCjjvbdZMSETnLm",
|
|
- "DoDKjvbdIHGyyXwg",
|
|
- "EObjjvbdXGYzUAPT",
|
|
- "DoCjjvbdhbPCeWqR",
|
|
- "DoCkKvbdKNADzGuB",
|
|
- "DnbjjvbdFeirOJTq",
|
|
- "DncLKvbdaRecHtFk",
|
|
- "DnbkKvbdzoPpeClY",
|
|
- "EObkKvbdZRMeJMeR",
|
|
- "DnbjjvbdYfvdAPSi",
|
|
- "DncLKvbdJcKCqJcY",
|
|
- "EOcLKvbdqvokbhyR",
|
|
- "DoDLKvbdrRuLNjaN",
|
|
- "DoCjjvbdTlWPBWOi",
|
|
- "DoCkKvbdjvWnEBxX",
|
|
- "DoDLKvbdTkunaVoJ",
|
|
- "DoCkKvbdQZNAHTSK",
|
|
- "EObjjvbdqwPkbhyR",
|
|
- "EOcLKvbdNHDPlpUk",
|
|
- "DncLKvbdIHHZxxYH",
|
|
- "DncLKvbdtkxXAtAw",
|
|
- "DncLKvbdSCEFMJZL",
|
|
- "DnbjjvbdZQmEhldq",
|
|
- "DoCjjvbdNGbolotk",
|
|
- "DnbjjvbdnCKWwnmu",
|
|
- "DncLKvbdzHZMANEw",
|
|
- "DoDKjvbdmttykJrG",
|
|
- "DnbkKvbdlrZUzSci",
|
|
- "EPDKjvbdSKyGVHKs",
|
|
- "DoCjjvbdKVuGEFGi",
|
|
- "EPCjjvbdCIkBkIej",
|
|
- "DncLKvbdzHZMAMeX",
|
|
- "DnbkKvbdaSFbgsek",
|
|
- "DncLKvbdHDjujBij",
|
|
- "DoDKjvbdGZVUaDwb",
|
|
- "DnbjjvbdZnnJFEzK",
|
|
- "DoCkKvbdtcDUwWOo",
|
|
- "DoCkKvbdlBMoNALA",
|
|
- "EOcKjvbdNsUWHFUp",
|
|
- "DoDLKvbdVUNUFlVj",
|
|
- "DnbkKvbdhkdcnUcZ",
|
|
- "DncLKvbdLiBkqYAS",
|
|
- "EOcKjvbdzoPpdcLx",
|
|
- "EPDKjvbdijGIJmXr",
|
|
- "EOcKjvbdZisHofaf",
|
|
- "DoDLKvbdeOdrkUUS",
|
|
- "DoDLKvbdnPyxvKxb",
|
|
- "EPDKjvbdIxUBhMRQ",
|
|
- "DncLKvbdlhctRUqa",
|
|
- "DoDLKvbdmgFXlnGy",
|
|
- "DncKjvbdCJKbKiGK",
|
|
- "EOcLKvbddndrjtUS",
|
|
- "DnbjjvbdkDLjqGuH",
|
|
- "DncKjvbdmIcsptqa",
|
|
- "DoCkKvbdvvlAvBWV",
|
|
- "EObjjvbdjblLQftg",
|
|
- "DnbjjvbdCEQBWKMf",
|
|
- "DnbjjvbdBdPaVilf",
|
|
- "DoCkKvbdZxcjODLr",
|
|
- "DoCkKvbdEObjjwCd",
|
|
- "EPDKjvbdyTNhlqbH",
|
|
- "EPCkKvbdUMVoAvPJ",
|
|
- "DncKjvbdUxhUZjoO",
|
|
- "DncKjvbdqqtjmkAm",
|
|
- "DncKjvbdKfGICBRV",
|
|
- "EPCjjvbdVrOXaeLc",
|
|
- "EPDLKvbdwXLaWBWV",
|
|
- "EPCkKvbdjblKqHUg",
|
|
- "DnbjjvbduDCuWuoP",
|
|
- "EPDKjvbdNGbpMouL",
|
|
- "EObjjvbdBcoaVjNG",
|
|
- "DncLKvbdrWpMDIxq",
|
|
- "DncLKvbdhaoCdwRR",
|
|
- "DnbkKvbdFxtuBDwb",
|
|
- "DncKjvbdIjEAKPgE",
|
|
- "EOcLKvbduCbuXVoP",
|
|
- "DoDKjvbdZtIiZDsO",
|
|
- "DnbjjvbdEztRElCi",
|
|
- "DncLKvbdxmsHwsJD",
|
|
- "DnbjjvbdRbEElIxk",
|
|
- "DoDKjvbdWHwvXgYz",
|
|
- "EOcKjvbdQlwbYnUz",
|
|
- "EOcLKvbdVTltFkuj",
|
|
- "DncKjvbdliETptqa",
|
|
- "DnbkKvbddoErjtTr",
|
|
- "DoCkKvbdgPazvdXh",
|
|
- "DncKjvbdySmhlqag",
|
|
- "DoCjjvbdbPgHDkzd",
|
|
- "DoCkKvbdFWZPomKF",
|
|
- "EObjjvbdssSSxydc",
|
|
- "EObjjvbdzQnliJwA",
|
|
- "EObkKvbdKCjCpibx",
|
|
- "EPCjjvbdpyOhHREY",
|
|
- "DncLKvbddjJqutzn",
|
|
- "EObkKvbdBdQAujMf",
|
|
- "EPCkKvbdLAjflbXq",
|
|
- "DncLKvbdLBLGlaxR",
|
|
- "DoDLKvbdrpWPJbuf",
|
|
- "DoCjjvbdEKHiuxKA",
|
|
- "DoCjjvbdXsMAlsnx",
|
|
- "EObkKvbdptTgSSLU",
|
|
- "DoDKjvbdnHFXmNfy",
|
|
- "DncKjvbdCJKbKhej",
|
|
- "EPCjjvbdhlEdOUby",
|
|
- "EOcKjvbdKWUfEFGi",
|
|
- "DoDKjvbdZQmFJMdq",
|
|
- "EPCjjvbdiGjDZWKV",
|
|
- "EObkKvbdVAbQrprZ",
|
|
- "DoDKjvbdfekzNgHA",
|
|
- "DoDLKvbdnHEwlmgZ",
|
|
- "DncKjvbdwzHeexEr",
|
|
- "DoCjjvbdmpZxujyC",
|
|
- "EPDKjvbdwMvAMcdm",
|
|
- "DoCjjvbdfHkVrNqH",
|
|
- "EPCkKvbdYzbfRiuy",
|
|
- "EPCkKvbdZtIiZDrn",
|
|
- "DnbjjvbdjvWnDbYX",
|
|
- "DoCjjvbdOStVgEtp",
|
|
- "EPDLKvbdZMSETmlN",
|
|
- "EPDKjvbdBhjajhej",
|
|
- "EPCjjvbddoFTLUUS",
|
|
- "DnbkKvbdsQVoJcWG",
|
|
- "EPCjjvbdrEFJQNvB",
|
|
- "DoCjjvbdMpYRWOGs",
|
|
- "EOcLKvbdZirgpHBf",
|
|
- "EPDLKvbdyOTIXsJD",
|
|
- "DoCkKvbdKRZdnfNe",
|
|
- "DnbjjvbdbBWFFoow",
|
|
- "EPCjjvbdgFlZnHHA",
|
|
- "DnbkKvbdGGJrOIsq",
|
|
- "DoDLKvbduDCtwWPP",
|
|
- "EObjjvbdNddUIhjd",
|
|
- "DnbjjvbdxsNiMqag",
|
|
- "EObjjvbddeOrCWbj",
|
|
- "EObjjvbdPxmAGsRj",
|
|
- "EOcLKvbddeOrCXDK",
|
|
- "DoDLKvbddeOrBwCj",
|
|
- "DoCjjvbdVqnYCElD",
|
|
- "DnbkKvbdUyIUZjoO",
|
|
- "EObjjvbdeFOrCXDK",
|
|
- "EObkKvbdVrNxCFLc",
|
|
- "EObjjvbdTfzmkwWF",
|
|
- "EOcKjvbdIHGzZYYH",
|
|
- "EPDKjvbdtbbuXWPP",
|
|
- "DoCjjvbdZisIQHBf",
|
|
- "EObjjvbdbsCkUDjB",
|
|
- "EPCkKvbdVwJXudFH",
|
|
- "EPDKjvbdrouoKDVf",
|
|
- "EPCkKvbdFyVVBEYC",
|
|
- "DncLKvbdZnnIeEzK",
|
|
- "EPDLKvbdxVNFQxkn",
|
|
- "DoDKjvbdpxnggRDx",
|
|
- "DoDLKvbdqZOgfpcx",
|
|
- "DncKjvbdCIjakJGK",
|
|
- "EPCkKvbdCJLBjhej",
|
|
- "DoDLKvbdnPzYvKxb",
|
|
- "EOcKjvbdqTsgSRkU",
|
|
- "EOcLKvbdLBLGlaxR",
|
|
- "DoDLKvbdcbTMrAUN",
|
|
- "DncLKvbdzitoodSt",
|
|
- "DoDKjvbdJvUfDdfi",
|
|
- "EOcLKvbdHDjvKCJj",
|
|
- "EPCkKvbdeOeTKssr",
|
|
- "DnbkKvbdlYrqsYft",
|
|
- "DncLKvbdiiehKMxS",
|
|
- "DncKjvbdURQoVUhN",
|
|
- "DnbkKvbduMYXBUAw",
|
|
- "DoDLKvbdSPtHJfEX",
|
|
- "EObkKvbdqBJFAWgd",
|
|
- "EOcKjvbdFpATWgFy",
|
|
- "DoDLKvbdBsBDTfXS",
|
|
- "DncKjvbdjhHLfFmk",
|
|
- "DoCjjvbdCJKakIfK",
|
|
- "DnbkKvbddoFSjtTr",
|
|
- "EObkKvbdANIYsWzY",
|
|
- "EObjjvbdCTAbtFvr",
|
|
- "EObjjvbdrRtkOLAm",
|
|
- "DnbkKvbdkxsSTYgU",
|
|
- "DoCjjvbdnBiwXnmu",
|
|
- "EObjjvbdwtmEqYlO",
|
|
- "EPDKjvbdrylQTAhO",
|
|
- "DoDLKvbdtbbtvvOo",
|
|
- "EPCjjvbdZLrETmlN",
|
|
- "EPDLKvbdWXJYWDdg",
|
|
- "DoCkKvbdKQzFOfOF",
|
|
- "EPCjjvbdwzIFfXeS",
|
|
- "DncKjvbdRjyFuHLT",
|
|
- "EPDLKvbdULunaWPJ",
|
|
- "DncKjvbdUxhTykOn",
|
|
- "DnbkKvbdJcKCqKDY",
|
|
- "EPDLKvbdcbSmSATm",
|
|
- "DnbkKvbdegjurNqH",
|
|
- "EPDKjvbdZjTIQGbG",
|
|
- "EPCjjvbdiLddNuCy",
|
|
- "DoCjjvbdZQldiNEq",
|
|
- "EOcLKvbdakMGPODA",
|
|
- "EObjjvbdnHEwlmgZ",
|
|
- "EOcLKvbdBsAcUGXS",
|
|
- "EPCkKvbdiVZdwSUb",
|
|
- "EOcLKvbddCTNSAUN",
|
|
- "DnbkKvbdEXxMUUUM",
|
|
- "DncKjvbdYpldiMeR",
|
|
- "DoDKjvbdNddTiIjd",
|
|
- "DoDLKvbdZLqdUNlN",
|
|
- "EPCkKvbdiBncFWpq",
|
|
- "DncLKvbdiCPDEvqR",
|
|
- "EOcKjvbdUyHszKoO",
|
|
- "DncKjvbdhtydvqtb",
|
|
- "EPCjjvbdpxoHgQcx",
|
|
- "EObkKvbdkWWnDaxX",
|
|
- "DnbjjvbdBhkBkJFj",
|
|
- "DoCkKvbdRacdkhyL",
|
|
- "EOcLKvbdZjTHpHCG",
|
|
- "EPCkKvbdMowqWOGs",
|
|
- "DncLKvbdegjurNpg",
|
|
- "EObjjvbdfMfWfmKL",
|
|
- "EPDLKvbdZirgpGaf",
|
|
- "DoDLKvbdiZuFlQnG",
|
|
- "DncLKvbdFxuVAcxC",
|
|
- "EObkKvbdZisHofaf",
|
|
- "EOcKjvbdJSyBSmYM",
|
|
- "EPDLKvbdVYgtZkPO",
|
|
- "EOcKjvbdRbEFMJYk",
|
|
- "DncLKvbdrEFIonWB",
|
|
- "DncKjvbdKDJbqJcY",
|
|
- "EOcLKvbdhfjCxuiu",
|
|
- "EObjjvbdLLAhWAKZ",
|
|
- "DoCkKvbdRXNcblID",
|
|
- "DoDLKvbdcbSmSATm",
|
|
- "EOcLKvbdwWlAvAuu",
|
|
- "EObkKvbdiBnbdvpq",
|
|
- "DoCkKvbdNQXpumgT",
|
|
- "DncLKvbdkVwOECYX",
|
|
- "DnbkKvbdfoazwDxI",
|
|
- "DoDLKvbdbBWFFpPw",
|
|
- "DoDLKvbdvBDxsPEh",
|
|
- "EPDKjvbdJqZdoFme",
|
|
- "DoDLKvbdIryArmXl",
|
|
- "EPCjjvbdANIZSwZx",
|
|
- "EPCkKvbdVhYVxGxz",
|
|
- "DncKjvbdLAjgNCYR",
|
|
- "DncKjvbdxxIjCQZk",
|
|
- "DncKjvbdbiNKKewY",
|
|
- "EPCjjvbdlrZVZsEJ",
|
|
- "EPDKjvbdIryAsMwl",
|
|
- "DoCkKvbdtAHRIAAr",
|
|
- "EPDKjvbdJmAEZfuB",
|
|
- "EPCkKvbdZjSgogBf",
|
|
- "DoDLKvbdOXnuzcnU",
|
|
- "DnbkKvbdehKvRnQg",
|
|
- "EObjjvbdZyDimbkr",
|
|
- "DoDKjvbdmajWwoOV",
|
|
- "EOcKjvbdkMalZeHP",
|
|
- "EOcKjvbdIjEAJpHE",
|
|
- "EPCkKvbdDihKVxKA",
|
|
- "DncKjvbdNddUIiKd",
|
|
- "EObjjvbdqdFIpOWB",
|
|
- "DoCkKvbdxnShXsJD",
|
|
- "DoDLKvbdjmBkzEfo",
|
|
- "EOcLKvbdatagYLTh",
|
|
- "DoCjjvbdVhYVxHYz",
|
|
- "DnbjjvbdJbjDRKDY",
|
|
- "EPCjjvbdLBLHNCYR",
|
|
- "DnbjjvbdnGeYNOGy",
|
|
- "EOcLKvbdUsmTekvK",
|
|
- "EPCjjvbdtkxXBTaX",
|
|
- "EPCjjvbdzoPqFCkx",
|
|
- "DncKjvbdCIjbKhej",
|
|
- "DncKjvbdZLqdTmkm",
|
|
- "DoDKjvbdsPunicVf",
|
|
- "EOcKjvbdmgFXmNgZ",
|
|
- "EObkKvbdiMFENuCy",
|
|
- "DoDKjvbdhanbeXRR",
|
|
- "EObkKvbdACqwiyhp",
|
|
- "DncKjvbdZisIQHBf",
|
|
- "EPCjjvbdgQBzwDwh",
|
|
- "DnbjjvbdyYJJaoyk",
|
|
- "DoDKjvbdxUldqZMO",
|
|
- "EObkKvbdkClLQgVH",
|
|
- "EPCjjvbdZQldiMeR",
|
|
- "EPDLKvbdZyEKOClS",
|
|
- "EPDLKvbdcIlikFvx",
|
|
- "DoDKjvbdrzMQTBHn",
|
|
- "DnbjjvbdVYgtZkPO",
|
|
- "DoDLKvbdHEKuiajK",
|
|
- "EPCkKvbdczZQXxqC",
|
|
- "DoDKjvbdrDdiQNua",
|
|
- "DncLKvbdcImKLGWx",
|
|
- "DoCjjvbdVYgtZkPO",
|
|
- "EPDLKvbdZnnIeFZj",
|
|
- "EPDKjvbdMIakqYAS",
|
|
- "DoCkKvbdSLYfUgLT",
|
|
- "EPDLKvbdiCObdvpq",
|
|
- "DnbjjvbdRpUHKFcw",
|
|
- "DoDLKvbdIHHZyYXg",
|
|
- "EPCjjvbdypoMhiwA",
|
|
- "DnbkKvbdCEPaVjMf",
|
|
- "DnbkKvbderAvzlDP",
|
|
- "DnbkKvbdZQleImFR",
|
|
- "EOcKjvbdKRZdneme",
|
|
- "DoDLKvbdiBnbeXQq",
|
|
- "DncLKvbdEPDKjvcE",
|
|
- "EOcLKvbdauCGwkTh",
|
|
- "DncLKvbdEvZQPmJe",
|
|
- "EPCkKvbdURQnuVIN",
|
|
- "DncLKvbdegjvSOQg",
|
|
- "EPCjjvbdKaKgMawq",
|
|
- "DnbkKvbdRzKISbvA",
|
|
- "DncLKvbdiLdcnUcZ",
|
|
- "EPDLKvbdkDMKpfuH",
|
|
- "DoDLKvbdRbDdkhyL",
|
|
- "DnbjjvbdDwxMUUTl",
|
|
- "DnbkKvbdrpWPKCuf",
|
|
- "DnbkKvbdNVSqjmAX",
|
|
- "DoDKjvbdRbDeMIxk",
|
|
- "EOcLKvbdcyxpXyRC",
|
|
- "DncLKvbdRMwbYnUz",
|
|
- "EObjjvbdqlzJxlHi",
|
|
- "DoCkKvbdJYUCIMQp",
|
|
- "DncLKvbdLZQjSzuG",
|
|
- "EOcKjvbdxVNEqYkn",
|
|
- "DnbkKvbdZoOIeFZj",
|
|
- "DoCjjvbdBraCtFwS",
|
|
- "EOcLKvbdliDsqVSB",
|
|
- "EPCkKvbdeATqNXif",
|
|
- "DncLKvbdkMbLydgP",
|
|
- "EObjjvbdZxdJmbkr",
|
|
- "DoCjjvbdraellHLZ",
|
|
- "EObkKvbduDCuWvPP",
|
|
- "DoCkKvbdpstGrSLU",
|
|
- "DoCjjvbdLGFgbBQu",
|
|
- "DnbkKvbdhtzFWquC",
|
|
- "EObjjvbdoAKztHdO",
|
|
- "EPDLKvbdatafxKtI",
|
|
- "EPDKjvbdkWXNcaww",
|
|
- "DoCkKvbdwkXEHzzG",
|
|
- "EObkKvbdmgEwmNgZ",
|
|
- "DncKjvbdBiLCLJFj",
|
|
- "DoCjjvbdeOdsKssr",
|
|
- "EOcLKvbdfILWSORH",
|
|
- "EObkKvbdCDpAujMf",
|
|
- "EPDKjvbdKDKDQibx",
|
|
- "DoDKjvbdVUMtGLuj",
|
|
- "EObkKvbdrXQMCiYq",
|
|
- "DncKjvbdePEsLTtS",
|
|
- "DncLKvbdDxYLtUTl",
|
|
- "EPCkKvbdGYuVBEYC",
|
|
- "DncLKvbdNeEUIiKd",
|
|
- "EPCkKvbdpxoIHRDx",
|
|
- "EObjjvbdFkEsDHlu",
|
|
- "EObjjvbdssSSxzFD",
|
|
- "DoCkKvbdUtNTfMVj",
|
|
- "DnbjjvbdJcKDRKDY",
|
|
- "DncKjvbdqiAKEmOe",
|
|
- "DoDKjvbdtlXwAtBX",
|
|
- "DnbkKvbdxmsIYTIc",
|
|
- "EObkKvbdLrXMzUpz",
|
|
- "DoCjjvbdkxsSSxft",
|
|
- "DncKjvbdQlwaxnUz",
|
|
- "EObkKvbdjhGlFfNk",
|
|
- "EPCkKvbdxsNhmRag",
|
|
- "DoDLKvbdMfcPmQUk",
|
|
- "DoDKjvbdQvnEDLhD",
|
|
- "EObjjvbdVgxVxHYz",
|
|
- "DoDLKvbdlrYtyrdJ",
|
|
- "DoCjjvbdezvYeIsw",
|
|
- "DncLKvbdNddTiIjd",
|
|
- "EPDLKvbdGGJrNiUR",
|
|
- "EPDLKvbdRzJhTDWA",
|
|
- "EPCjjvbdvvkaWBVu",
|
|
- "EOcKjvbdRXNdCkgc",
|
|
- "EOcKjvbdQZNAHTSK",
|
|
- "EPCkKvbdsCGNLfkZ",
|
|
- "EOcLKvbdDwwktTsl",
|
|
- "EOcLKvbdqlzJyLgi",
|
|
- "EOcLKvbdxsNiMqag",
|
|
- "EOcLKvbdhzVFlROG",
|
|
- "EOcKjvbdEztRFMCi",
|
|
- "DnbkKvbdqiAJdmPF",
|
|
- "EPDLKvbdjcMKqGtg",
|
|
- "EObkKvbdTlWOaWOi",
|
|
- "EPDLKvbdURRPUuHm",
|
|
- "DoDKjvbdelfWgNKL",
|
|
- "EOcLKvbdGAnqZJzm",
|
|
- "EObjjvbdGZUuAdXb",
|
|
- "DoDLKvbduLwwAtAw",
|
|
- "DoCjjvbdZjTIQGbG",
|
|
- "EPCjjvbdRNXbYnUz",
|
|
- "EPDLKvbdiLeENtby",
|
|
- "EObjjvbdMowpunGs",
|
|
- "EOcKjvbdbiNJjevx",
|
|
- "DoDKjvbdEYYLstTl",
|
|
- "DoDLKvbdqUTfrRjt",
|
|
- "DoDKjvbdbsCkUEJa",
|
|
- "DoDKjvbdXsMBNUPY",
|
|
- "EPCjjvbdRNXaxnUz",
|
|
- "DoDLKvbdNGcQNQUk",
|
|
- "DnbjjvbdEARiMywX",
|
|
- "EPDKjvbdSKxfUfkT",
|
|
- "DncKjvbdhtyeXRtb",
|
|
- "DncKjvbdZLqcsnLm",
|
|
- "EObkKvbdZnmheEzK",
|
|
- "EObjjvbdtbcUvuno",
|
|
- "DnbjjvbdrzMQTBHn",
|
|
- "DnbjjvbdDwwktTsl",
|
|
- "EPDKjvbdkxsSTYgU",
|
|
- "DoDKjvbdIryArlxM",
|
|
- "DoDKjvbdnBivxOnV",
|
|
- "DoDKjvbdeATplwif",
|
|
- "EOcLKvbdKeegbApu",
|
|
- "EPCjjvbdMgDQMotk",
|
|
- "DoCjjvbduCbtwWOo",
|
|
- "DnbkKvbdyNsHwrhc",
|
|
- "DnbkKvbdtvNxJpsA",
|
|
- "EOcLKvbdqAheAWgd",
|
|
- "DoCkKvbdURQoUtgm",
|
|
- "EOcKjvbdqceIpOWB",
|
|
- "DoCkKvbdVwIwudFH",
|
|
- "DnbkKvbdbLMFnmcA",
|
|
- "EOcLKvbdZjTHpHBf",
|
|
- "EOcKjvbdRXNdCkhD",
|
|
- "EPDLKvbdiHJcZViu",
|
|
- "DoCjjvbdxxIjCPzL",
|
|
- "DnbkKvbdBcpBWJmG",
|
|
- "EPCkKvbdZyEKOCkr",
|
|
- "EPDKjvbdOTUWHFVQ",
|
|
- "DoCjjvbdIGgZxwwg",
|
|
- "EPDLKvbdFjeSbhMu",
|
|
- "EPDLKvbdhgKCxvJu",
|
|
- "EOcLKvbdNsUWGdtp",
|
|
- "EPDKjvbduVnXipsA",
|
|
- "DncLKvbdGYuVBEXb",
|
|
- "EPDLKvbdZtIhyESn",
|
|
- "DoDKjvbdZxdJmcLr",
|
|
- "DoCjjvbdUsltGLuj",
|
|
- "DoDKjvbdDoDLKvbd",
|
|
- "DncLKvbdrDdhpNvB",
|
|
- "EPDLKvbdKCjDRJbx",
|
|
- "DoDLKvbdxLWdHzyf",
|
|
- "EObkKvbdrzMQTAhO",
|
|
- "EOcLKvbdOFDtJJKd",
|
|
- "EPCkKvbdrSVKmjaN",
|
|
- "EOcKjvbdWWiYVdEg",
|
|
- "EOcKjvbdWWhwvDdg",
|
|
- "DncKjvbdpstHRqjt",
|
|
- "EPCkKvbdKWVFceGi",
|
|
- "DoCkKvbdZjShPfbG",
|
|
- "DoCkKvbdSxKlNzkY",
|
|
- "EPDLKvbdIwtCHkqQ",
|
|
- "EOcKjvbdsCGNLgLZ",
|
|
- "DncKjvbdzaAOfgCM",
|
|
- "DoDLKvbdxmrhYSiD",
|
|
- "DncLKvbdfMfWgMjL",
|
|
- "EPDKjvbdqFdEsuaI",
|
|
- "EOcLKvbdiLeDnUcZ",
|
|
- "DoCjjvbdKVuFceHJ",
|
|
- "DoCjjvbdfekzNgHA",
|
|
- "EOcKjvbdOFEThiLE",
|
|
- "EPDLKvbdqceJPnWB",
|
|
- "DoDLKvbduCbtwWOo",
|
|
- "DncKjvbdTqROtuIN",
|
|
- "DncKjvbdpedFUWBI",
|
|
- "DoDLKvbdrEFJQNua",
|
|
- "DoDLKvbdyXhjCPyk",
|
|
- "EPCkKvbdJYUBhLqQ",
|
|
- "EPCkKvbdtcCuXVno",
|
|
- "DoDLKvbdZLrEUOLm",
|
|
- "EPCkKvbdpstGrRjt",
|
|
- "DncLKvbddePSCXCj",
|
|
- "EObkKvbdauCHXjsh",
|
|
- "DoDLKvbdkHfkefNk",
|
|
- "EObjjvbdMRwMzUpz",
|
|
- "EObjjvbdaMkCTVNH",
|
|
- "DoCkKvbdGGJrNhtR",
|
|
- "EPDLKvbdvBDxrneI",
|
|
- "EPDLKvbdIHHZxwxH",
|
|
- "EOcLKvbdrJAJdmPF",
|
|
- "EOcKjvbdGZUuAdXb",
|
|
- "EOcLKvbdbUbHYLUI",
|
|
- "DnbjjvbdJzofYEAN",
|
|
- "EPDKjvbdFxtuBDxC",
|
|
- "DnbkKvbdQvnDbkgc",
|
|
- "EPDKjvbdJmADzGta",
|
|
- "DoDKjvbdZRMdhleR",
|
|
- "DnbkKvbdsrqsZZeD",
|
|
- "EObkKvbdrovPJbuf",
|
|
- "EPCjjvbddeOqbXCj",
|
|
- "EObjjvbdtcDVXVoP",
|
|
- "DncKjvbdMfbpNQVL",
|
|
- "DoCkKvbdhbPCeXQq",
|
|
- "DoCkKvbdNHComQVL",
|
|
- "EObjjvbdvBDxroFI",
|
|
- "EPCjjvbdnBivwoNu",
|
|
- "EObjjvbdbhljKewY",
|
|
- "EPDKjvbdZyDimcMS",
|
|
- "EObkKvbdWSOXbElD",
|
|
- "EOcKjvbdTfznMXVe",
|
|
- "EPCjjvbdZtJJYcsO",
|
|
- "DoCjjvbdRjxfVHLT",
|
|
- "DoCkKvbdVTltGMVj",
|
|
- "DncKjvbdYfwEAOri",
|
|
- "DncKjvbdYkrEUOMN",
|
|
- "EObkKvbdqGEEsuaI",
|
|
- "DncLKvbdjJfHimXr",
|
|
- "EPDLKvbddndsLUTr",
|
|
- "DnbkKvbdqBJFAWhE",
|
|
- "EPDLKvbdEOcKjwDE",
|
|
- "EPCkKvbdtvOYJqTA",
|
|
- "DncLKvbdkyTRsZHU",
|
|
- "DoCjjvbdTppnuVIN",
|
|
- "DncLKvbdwyhFeweS",
|
|
- "DncKjvbdsBelkgKy",
|
|
- "DoCjjvbdKDKCqJcY",
|
|
- "DoCjjvbdkClKqHVH",
|
|
- "DoCjjvbdcTCjtDia",
|
|
- "EPDLKvbdUVkpJtAq",
|
|
- "EPDLKvbdRyjITCvA",
|
|
- "DnbjjvbdJuuFcdgJ",
|
|
- "DoDKjvbdrJAJdmOe",
|
|
- "DncKjvbdJcJbqKCx",
|
|
- "DoDLKvbdJcJbqJcY",
|
|
- "DoDKjvbdeEoSCXDK",
|
|
- "DoDLKvbdSwjlNzkY",
|
|
- "EObjjvbdzitopDrt",
|
|
- "DoCkKvbdKWVGEEgJ",
|
|
- "DncKjvbdpssfqrKt",
|
|
- "EOcLKvbdUMWPBVoJ",
|
|
- "DncKjvbdyzdmrIIh",
|
|
- "EPCjjvbdxUldqZLn",
|
|
- "DoDLKvbdySnImRbH",
|
|
- "DoCjjvbdGdKvJaij",
|
|
- "DoCkKvbdxZgeewdr",
|
|
- "EObkKvbdiLddNuDZ",
|
|
- "DnbjjvbdSCDdkiZL",
|
|
- "DncKjvbdznpREcMY",
|
|
- "EOcLKvbdaRebhTfL",
|
|
- "DnbjjvbdZQldiMdq",
|
|
- "EPCjjvbdbrbjtEKB",
|
|
- "EOcKjvbdEARiMzXX",
|
|
- "DoDLKvbdXrkaNTnx",
|
|
- "EPCkKvbdQZNAHTRj",
|
|
- "DoDLKvbdEzspeLcJ",
|
|
- "EPCjjvbduVnYKRTA",
|
|
- "EObjjvbdJXtBhMQp",
|
|
- "EPDKjvbdeOdrjssr",
|
|
- "EPCjjvbdLqwMytpz",
|
|
- "EPDKjvbdUMVoBVoJ",
|
|
- "DncKjvbdRpUGifDw",
|
|
- "EPDLKvbdZyDinDLr",
|
|
- "DnbkKvbdNrsufeVQ",
|
|
- "EPCkKvbdZMSDtNlN",
|
|
- "EPCkKvbdySnJNSCH",
|
|
- "EPCjjvbdfMevfljL",
|
|
- "DncLKvbdXsMBNTnx",
|
|
- "DnbkKvbdpxoHfqDx",
|
|
- "DncLKvbdUQpntthN",
|
|
- "DncKjvbdIsZArlwl",
|
|
- "DoDLKvbdZGwEAOsJ",
|
|
- "EOcKjvbdVvhwvDdg",
|
|
- "EOcLKvbduWNxJqTA",
|
|
- "EPCjjvbdHEKvJaij",
|
|
- "DoDKjvbdrpWOjCuf",
|
|
- "DncLKvbdrpWOjDVf",
|
|
- "DoCjjvbdIHGzYwwg",
|
|
- "DoDLKvbdpxoIGqEY",
|
|
- "DoDLKvbdJcJbqKDY",
|
|
- "DoCjjvbdRWmdClHc",
|
|
- "EPCjjvbdFWYopNJe",
|
|
- "DncKjvbdmfdwlmfy",
|
|
- "DoCkKvbdxUleQxlO",
|
|
- "EObjjvbdnGdxMnGy",
|
|
- "EPCjjvbdvvlAvBVu",
|
|
- "DncLKvbddndsKssr",
|
|
- "EObjjvbdZMRcsnLm",
|
|
- "EOcKjvbdFxttaEXb",
|
|
- "DncKjvbdVUNTfMVj",
|
|
- "EOcLKvbdNrtWHFUp",
|
|
- "DoDKjvbdwuMdqYlO",
|
|
- "EPDLKvbdrXPkbhxq",
|
|
- "EObjjvbdrEFIpNua",
|
|
- "EObjjvbdziuQQDrt",
|
|
- "EOcLKvbdqYoIGpcx",
|
|
- "DnbjjvbdsQVoJcVf",
|
|
- "EObkKvbdkDMKpgUg",
|
|
- "EObjjvbdvBDyTPFI",
|
|
- "DncKjvbduCbuWvOo",
|
|
- "EPCjjvbdkVvnECYX",
|
|
- "DncLKvbdZGvdAOri",
|
|
- "DoCkKvbdrXPlDJZR",
|
|
- "EOcLKvbduCcVWvOo",
|
|
- "DoDKjvbdCEPaWJlf",
|
|
- "EPDKjvbddoErjssr",
|
|
- "DncKjvbdACqxKZiQ",
|
|
- "EPCjjvbdUVlPitAq",
|
|
- "EPDKjvbdjJfHjMxS",
|
|
- "EObkKvbdAMhYsWzY",
|
|
- "DoDKjvbdnBivxOmu",
|
|
- "EOcLKvbdbiNKKfXY",
|
|
- "EPDKjvbdYqMeIleR",
|
|
- "EObkKvbdJmADygUa",
|
|
- "EObjjvbdEPDLLWcE",
|
|
- "EPCjjvbdrXPkcIxq",
|
|
- "EOcLKvbdliDtQtqa",
|
|
- "DoCjjvbdmoyxujyC",
|
|
- "EPDLKvbddoFTLTsr",
|
|
- "EOcLKvbdCWzdJEpW",
|
|
- "DnbjjvbdrEEhpOWB",
|
|
- "DoDKjvbdZLrDtNkm",
|
|
- "EOcLKvbdLFfHbAqV",
|
|
- "EOcKjvbdmttzLKSG",
|
|
- "EOcLKvbdmbJvwoOV",
|
|
- "EOcKjvbdUaCQrqSZ",
|
|
- "DnbjjvbdmgExMnGy",
|
|
- "EPDKjvbddndrkUUS",
|
|
- "EObkKvbdDwwkstTl",
|
|
- "DoCkKvbdcJMjLFwY",
|
|
- "DnbjjvbdaNLBruMg",
|
|
- "DoDLKvbdQYmAHTRj",
|
|
- "DnbkKvbdsQWOicWG",
|
|
- "EObkKvbdMRwMzUpz",
|
|
- "DoDLKvbdZshiZDrn",
|
|
- "EPDLKvbdnPzYujxb",
|
|
- "EOcKjvbdCEQAujMf",
|
|
- "EPDLKvbdKefHbApu",
|
|
- "DoDLKvbdYpldiNFR",
|
|
- "DoCkKvbdFWZQQNJe",
|
|
- "DncLKvbdznpQeCkx",
|
|
- "EOcKjvbdnQZxvKxb",
|
|
- "DoCkKvbdVBBprpqy",
|
|
- "DnbkKvbdZirhPfaf",
|
|
- "DnbkKvbdegjvSNqH",
|
|
- "EOcLKvbdqdEiPnWB",
|
|
- "EObjjvbdBhkCKiGK",
|
|
- "EObjjvbdxZgfGYFS",
|
|
- "DnbjjvbdNQYQumgT",
|
|
- "EPCjjvbdxsNhlrBg",
|
|
- "DoCkKvbdQdDApRDr",
|
|
- "DoCkKvbdxxIiaoyk",
|
|
- "EPDKjvbdFeirNhtR",
|
|
- "DoCjjvbdegjvSOQg",
|
|
- "EObkKvbdqcdiQNvB",
|
|
- "DncLKvbdiMEdNtcZ",
|
|
- "DncLKvbdTqRPUthN",
|
|
- "EPCkKvbdwygeexFS",
|
|
- "DoDKjvbdyTOJMrBg",
|
|
- "DncLKvbdeEoRavbj",
|
|
- "EPCjjvbdtbcUvvOo",
|
|
- "EObjjvbdKCicRJcY",
|
|
- "EObjjvbdZyEKODMS",
|
|
- "DnbjjvbdmJDtQtrB",
|
|
- "DncLKvbdEARhlyvw",
|
|
- "DnbjjvbdIxTbILqQ",
|
|
- "EOcLKvbdwygefYFS",
|
|
- "DoCjjvbdznoqFCkx",
|
|
- "DoCjjvbdRpUGjGDw",
|
|
- "DncKjvbdhzVGMQnG",
|
|
- "EPCjjvbdhkeDnVCy",
|
|
- "EObkKvbdOEdUIiKd",
|
|
- "DncKjvbdrDeIomua",
|
|
- "DncLKvbdiHJbxuiu",
|
|
- "EPDKjvbddxZstRez",
|
|
- "EPDLKvbdmSYuZrdJ",
|
|
- "EObkKvbdVUNUFkvK",
|
|
- "EPDLKvbdNeEUJIjd",
|
|
- "DoCkKvbdiMEdNuCy",
|
|
- "DoDLKvbdRDcApQcr",
|
|
- "EPCjjvbdTlVoBVoJ",
|
|
- "EObjjvbdLBKgNBwq",
|
|
- "EPCkKvbdsCFllHKy",
|
|
- "EObjjvbdnVUzLJqf",
|
|
- "DoDKjvbdqrVLNkBN",
|
|
- "DoCkKvbdqFcdtWBI",
|
|
- "DncLKvbdbVCGxLTh",
|
|
- "EOcLKvbdeFPSCXCj",
|
|
- "EOcLKvbdRpTgKFdX",
|
|
- "EObjjvbdznpQeDLx",
|
|
- "EOcKjvbdjvXNcaxX",
|
|
- "DnbjjvbdHDkWJbJj",
|
|
- "DncKjvbdhkeENuDZ",
|
|
- "DnbkKvbdnUtyjjSG",
|
|
- "DoDKjvbdSQUHJfDw",
|
|
- "DncKjvbdbUbHYLUI",
|
|
- "EOcLKvbdNsTvGduQ",
|
|
- "EPDLKvbdSZigsCvA",
|
|
- "DncKjvbdMfcPlpUk",
|
|
- "DoDLKvbdxrnIlrBg",
|
|
- "DncKjvbdiLdcnVCy",
|
|
- "EPCjjvbdmfeYNOHZ",
|
|
- "DoCkKvbdjvWmcaxX",
|
|
- "DoDKjvbdbUbHXkUI",
|
|
- "DncKjvbdBhkBjiFj",
|
|
- "DoDLKvbdNHColpVL",
|
|
- "EOcKjvbdrykosAhO",
|
|
- "DncLKvbdqGDeUVaI",
|
|
- "DnbkKvbdhgJcZViu",
|
|
- "DnbjjvbduLxXAtBX",
|
|
- "EPCjjvbdYpleJNFR",
|
|
- "EPDLKvbdQvmdClHc",
|
|
- "DnbjjvbdJYTbIMRQ",
|
|
- "DncLKvbdznpRFDMY",
|
|
- "EOcLKvbdZnmiFEyj",
|
|
- "DnbkKvbdrRuLOLAm",
|
|
- "EObkKvbdhkeEOUby",
|
|
- "DncLKvbdYlSEUOLm",
|
|
- "DoCjjvbdhkdcmtby",
|
|
- "DncLKvbdddnrCXDK",
|
|
- "DoDLKvbdKaLHNCYR",
|
|
- "EOcKjvbdcyxpYZQb",
|
|
- "EPDLKvbdACqwjZhp",
|
|
- "DoCkKvbdBsBDTevr",
|
|
- "EObkKvbdeKJqvUzn",
|
|
- "EObkKvbdcImJkGWx",
|
|
- "DncLKvbdYSlAltOx",
|
|
- "DncLKvbdlrYtyrdJ",
|
|
- "EObkKvbdKxqJrztf",
|
|
- "EOcKjvbdsQWPJcVf",
|
|
- "DoDKjvbdkySqrxgU",
|
|
- "EObjjvbdeEoRbXCj",
|
|
- "EOcKjvbdHDkVjBij",
|
|
- "DoDLKvbdCTBCsfXS",
|
|
- "DoCjjvbdKCjDQibx",
|
|
- "DoCjjvbdlhdTqUrB",
|
|
- "DoDKjvbdTulQKTaR",
|
|
- "DoCkKvbdRjxetfkT",
|
|
- "EPCjjvbdEuyQQNKF",
|
|
- "EPCjjvbdDoDKkXDE",
|
|
- "DoCjjvbdsQWPJbuf",
|
|
- "DoDKjvbdhuZdvqtb",
|
|
- "EPDLKvbdiHKCyWJu",
|
|
- "EPDLKvbdLFegaaQu",
|
|
- "DoCjjvbdqZPHgRDx",
|
|
- "DncKjvbdUWMPjUAq",
|
|
- "DoDLKvbdTYKkmzjx",
|
|
- "DoDKjvbdegjvSOQg",
|
|
- "DnbkKvbdUtNTekvK",
|
|
- "EObkKvbdNsTvGeVQ",
|
|
- "DoDLKvbdfNFvgMjL",
|
|
- "EOcLKvbdZQmEiNEq",
|
|
- "EPDKjvbdBraDTfWr",
|
|
- "EPDKjvbdNGcQNQVL",
|
|
- "EPDLKvbdZyEKODMS",
|
|
- "EOcKjvbdBvzdIdpW",
|
|
- "EPCjjvbdACqwiyiQ",
|
|
- "DoCjjvbddePRawCj",
|
|
- "EPDKjvbdWWiXucdg",
|
|
- "DoDKjvbdWexzUAPT",
|
|
- "DnbjjvbdwXMBWBWV",
|
|
- "EOcLKvbdUyHszLOn",
|
|
- "EPCkKvbdOYOuzcnU",
|
|
- "EPCkKvbdhancEwQq",
|
|
- "DnbkKvbdjggLefOL",
|
|
- "EPCkKvbdFjdsDIMu",
|
|
- "DoDKjvbdrSUjmkBN",
|
|
- "DoDLKvbdZjTIQGaf",
|
|
- "DoDKjvbdMgDPmPtk",
|
|
- "EPDLKvbdWRmwbFMD",
|
|
- "DoCkKvbdzROmJKXA",
|
|
- "DnbkKvbdrDdiQNvB",
|
|
- "DnbjjvbduDCtwVoP",
|
|
- "EOcLKvbdCIjbLJFj",
|
|
- "EPDKjvbdXrkaMsnx",
|
|
- "EPDKjvbdVhXvXfxz",
|
|
- "DncKjvbdhbPDEwRR",
|
|
- "DoCkKvbdpxoHgQcx",
|
|
- "DoCkKvbduMXwBUBX",
|
|
- "EObjjvbdNeEThhjd",
|
|
- "DoCjjvbdirzhrkJz",
|
|
- "DoDLKvbdaMkCTUlg",
|
|
- "DncLKvbdWRnYBeLc",
|
|
- "DnbjjvbdGBPRZJzm",
|
|
- "EOcLKvbdeOeSjstS",
|
|
- "DoDLKvbdmIctRVSB",
|
|
- "DoCjjvbdZxdJnDMS",
|
|
- "DoCkKvbdRpTgKFcw",
|
|
- "DncLKvbdTukojTaR",
|
|
- "DnbjjvbdKRZdoFme",
|
|
- "DnbkKvbdURQoVUhN",
|
|
- "DoDLKvbdyYJKBozL",
|
|
- "EObkKvbdfNFwHMjL",
|
|
- "DoDLKvbdZisIQHBf",
|
|
- "EObkKvbdqFcdsuaI",
|
|
- "DncLKvbdzoPqFDLx",
|
|
- "DoDKjvbdSKxeuHLT",
|
|
- "EPDKjvbdsBemLfjy",
|
|
- "DoCjjvbdJbjCqJcY",
|
|
- "DoCjjvbdNPxRVnGs",
|
|
- "DncLKvbdGcjvJbKK",
|
|
- "EOcKjvbdrWpMDIxq",
|
|
- "EOcLKvbdQdDApQcr",
|
|
- "DoDKjvbdZMRdTnLm",
|
|
- "EOcLKvbddxZssrFz",
|
|
- "EObjjvbdUtNTfLuj",
|
|
- "EPCjjvbdLLBIWAKZ",
|
|
- "DoCkKvbdgFlZmfgA",
|
|
- "EPCjjvbdUVkoitAq",
|
|
- "DoDKjvbdDncKjvcE",
|
|
- "DoDLKvbdRpUHJfEX",
|
|
- "EPDKjvbdLqvlzVQz",
|
|
- "EPDKjvbdZMRdUOLm",
|
|
- "EOcLKvbdCJLBkIfK",
|
|
- "DncKjvbdaSFbhUFk",
|
|
- "EPDLKvbdZoNheEzK",
|
|
- "DncKjvbdUVlPjUAq",
|
|
- "DnbkKvbdKNADyfuB",
|
|
- "EObkKvbdZdwfzghb",
|
|
- "EPDLKvbdZtIhxcrn",
|
|
- "EObkKvbdGckViajK",
|
|
- "DncLKvbdFfJqmiUR",
|
|
- "DncKjvbdKWUfDdgJ",
|
|
- "DoDKjvbdMtrqjmAX",
|
|
- "EOcLKvbdsQWPKDVf",
|
|
- "DoCjjvbdwtleRZMO",
|
|
- "EObjjvbduaDxsPEh",
|
|
- "EPDLKvbdKxqJrzuG",
|
|
- "EOcKjvbdVAaprprZ",
|
|
- "EObjjvbdEuxopMjF",
|
|
- "DnbjjvbdyOTHwriD",
|
|
- "EPDLKvbdrpVnibvG",
|
|
- "EPDKjvbdkWWnDaww",
|
|
- "DncLKvbdrXPkbiYq",
|
|
- "DoDLKvbddxZssqez",
|
|
- "EOcLKvbdHDkWJbJj",
|
|
- "DncLKvbdEPCkLWcE",
|
|
- "DnbkKvbdEXwkstTl",
|
|
- "EObjjvbdqiAKEmOe",
|
|
- "DncLKvbdjAQGaQGj",
|
|
- "EPCjjvbdNeDtJJKd",
|
|
- "EPCjjvbdvwMBWBVu",
|
|
- "EPDKjvbdFejSOItR",
|
|
- "EOcLKvbdNPwqWOHT",
|
|
- "EPDKjvbdbsCjscia",
|
|
- "EObkKvbdyYIiaoyk",
|
|
- "DoDKjvbdLZQirzuG",
|
|
- "EObjjvbdSLZGVGjs",
|
|
- "DoCjjvbdAMgxsWzY",
|
|
- "DoDLKvbdEObjjwCd",
|
|
- "DnbkKvbdsPvOicWG",
|
|
- "EPCkKvbdrJAKElne",
|
|
- "EPCkKvbdauCGwjsh",
|
|
- "DncLKvbdegkWRnQg",
|
|
- "EPCkKvbdYpmEiNFR",
|
|
- "DoDKjvbduaDxsPFI",
|
|
- "DoCjjvbdcyxoxYqC",
|
|
- "DoCkKvbdkMakzFHP",
|
|
- "DnbjjvbdJbibqJbx",
|
|
- "DnbkKvbdWWhxWDeH",
|
|
- "DoCjjvbdssRsYzFD",
|
|
- "DoDKjvbdpyPIHRDx",
|
|
- "DncLKvbdwNWANDeN",
|
|
- "DoDKjvbdJYUBglRQ",
|
|
- "EObkKvbdXnRAYVVt",
|
|
- "DoCjjvbdUWLpKTaR",
|
|
- "DoDKjvbdTqROttgm",
|
|
- "EPCkKvbdVqnXaeMD",
|
|
- "EObjjvbdADRwiyiQ",
|
|
- "DoDKjvbdlrZUyrci",
|
|
- "EPDKjvbdvAdZSndh",
|
|
- "DoCkKvbdzoQQeDLx",
|
|
- "DnbkKvbdSQUGjFdX",
|
|
- "EOcLKvbdqBJFAXIE",
|
|
- "EObkKvbdSCEFLiZL",
|
|
- "DnbjjvbdzoQQdcMY",
|
|
- "DnbkKvbdpxngfqEY",
|
|
- "DncLKvbdbsDLUEKB",
|
|
- "DoCjjvbdXrlBMtOx",
|
|
- "EObjjvbdKCjDQicY",
|
|
- "DncLKvbdLrWlzUpz",
|
|
- "EObjjvbdaaWEfQQX",
|
|
- "EObjjvbdtlYWaTaX",
|
|
- "DnbkKvbdMowpunGs",
|
|
- "EObkKvbdSLYeuHKs",
|
|
- "EObkKvbdTAEhhCOd",
|
|
- "EPCkKvbdmSYtyrci",
|
|
- "DncLKvbdYkqcsnLm",
|
|
- "DoDLKvbdrylQTAgn",
|
|
- "DncLKvbdJXtCIMRQ",
|
|
- "EObkKvbdSBdElIyL",
|
|
- "DoDLKvbdwygefYFS",
|
|
- "DncKjvbdyXhibPzL",
|
|
- "EPCjjvbduaDxsPFI",
|
|
- "EObjjvbdZoNiFEzK",
|
|
- "EPCjjvbdkNBkyeHP",
|
|
- "EPCkKvbdWRnXadlD",
|
|
- "DncLKvbdRWmdDLhD",
|
|
- "DnbkKvbdmSYtzTDi",
|
|
- "EOcKjvbdkVwODbXw",
|
|
- "DncLKvbdQlxCZOUz",
|
|
- "EObjjvbdbhlijfXY",
|
|
- "EOcLKvbdXmqAXtut",
|
|
- "EOcLKvbdmbKXXnnV",
|
|
- "DoDKjvbdkHgMFfOL",
|
|
- "EPCkKvbdfekymgHA",
|
|
- "DoCjjvbdeKKRvUzn",
|
|
- "DoDKjvbdkHfkefNk",
|
|
- "DoCjjvbdyqPMiKXA",
|
|
- "DnbjjvbdUQqOtuIN",
|
|
- "EOcKjvbdEPCkKwDE",
|
|
- "DoDLKvbdZRNFIleR",
|
|
- "DnbjjvbdRacdlJZL",
|
|
- "EOcLKvbdTukoitAq",
|
|
- "EOcLKvbdZLrDtOMN",
|
|
- "EOcLKvbdgKfzcGAE",
|
|
- "EObjjvbdzjVQQESt",
|
|
- "EOcLKvbdcIlijevx",
|
|
- "EOcKjvbdGKdsDHmV",
|
|
- "DncLKvbdKkBHvAJy",
|
|
- "EOcKjvbdZMRctOLm",
|
|
- "EPCkKvbdADRxKZiQ",
|
|
- "EObjjvbdDwxLsssl",
|
|
- "EPDLKvbdUxgszLPO",
|
|
- "EPCkKvbdSQTfiedX",
|
|
- "EPCjjvbdNeEUJIkE",
|
|
- "DoDLKvbdpyPHfqDx",
|
|
- "DnbkKvbdyOShXsJD",
|
|
- "DncLKvbdLiBkpxAS",
|
|
- "DoDKjvbdaaWEepQX",
|
|
- "DoCjjvbdWSOYBeLc",
|
|
- "EOcKjvbdLFegbAqV",
|
|
- "EPDKjvbdffLzOGgA",
|
|
- "EObkKvbdFkErbglu",
|
|
- "DncLKvbdiZuFlROG",
|
|
- "DncKjvbdegkWRnQg",
|
|
- "DoDLKvbdQdDApRDr",
|
|
- "EOcLKvbdeYZtURez",
|
|
- "EObjjvbdrXQLcIxq",
|
|
- "DoDLKvbdxZhGGXeS",
|
|
- "DoDLKvbdGGKSOItR",
|
|
- "EObjjvbdjhHLfFnL",
|
|
- "EOcLKvbdUQpoUuHm",
|
|
- "DoCkKvbdXrlBNUPY",
|
|
- "DoDKjvbdJXtCIMRQ",
|
|
- "DnbkKvbdZMSDsnLm",
|
|
- "DncKjvbdCTBDUGWr",
|
|
- "DncKjvbdbhlikGXY",
|
|
- "DoDKjvbdXmqAYVWU",
|
|
- "DnbjjvbdliDsqVRa",
|
|
- "DnbkKvbdmajXYOnV",
|
|
- "EObjjvbdJpyePGNe",
|
|
- "DnbkKvbdCTAcUGXS",
|
|
- "DoDLKvbdCDpBVjNG",
|
|
- "EOcLKvbdxwhiaoyk",
|
|
- "DoDKjvbdxVNFQyMO",
|
|
- "EPCkKvbdVvhwvEEg",
|
|
- "DnbkKvbdFWYoomJe",
|
|
- "EOcKjvbdlrZUysEJ",
|
|
- "EPDKjvbdqquKnKaN",
|
|
- "DoCkKvbdTkunaVoJ",
|
|
- "EOcLKvbdfHkVrOQg",
|
|
- "EPDLKvbdiUzFWrUb",
|
|
- "DoDLKvbdtAGqIABS",
|
|
- "DoCkKvbdZRMdhmEq",
|
|
- "DnbkKvbdNsUVfeVQ",
|
|
- "EPDLKvbdqwPkbiZR",
|
|
- "DoCkKvbdNUsSLNAX",
|
|
- "DncKjvbdmpZxvKyC",
|
|
- "EPCkKvbdLYqKSztf",
|
|
- "EPDKjvbdZyEKODMS",
|
|
- "EPDKjvbdNGbomPuL",
|
|
- "DncKjvbdZMSDtNlN",
|
|
- "EPCjjvbdTXjkmzjx",
|
|
- "EObkKvbdBdQAvKMf",
|
|
- "EOcLKvbdkySrTYgU",
|
|
- "DnbkKvbdZoOIddzK",
|
|
- "DoCkKvbdZMSDsmkm",
|
|
- "EPCkKvbdCWzdIdpW",
|
|
- "DncLKvbdBvzdIdov",
|
|
- "DoCjjvbdaRfDHtFk",
|
|
- "DnbkKvbdWeyZtAOs",
|
|
- "DoDLKvbdnCJwYPOV",
|
|
- "DoCjjvbdEYYLstUM",
|
|
- "EOcLKvbdwtldqZMO",
|
|
- "EPCjjvbdFVxoomKF",
|
|
- "EObkKvbdyqPMhiwA",
|
|
- "DoDLKvbdkxrrSxgU",
|
|
- "DoCjjvbdeATqNYKG",
|
|
- "DncLKvbdJKEAJpHE",
|
|
- "DoCkKvbddndsLUTr",
|
|
- "DnbjjvbdqFceUWBI",
|
|
- "DoDLKvbdhkddOUby",
|
|
- "DncKjvbdGKdrcIMu",
|
|
- "EPCkKvbdelevflik",
|
|
- "DoDKjvbdhaoDFWqR",
|
|
- "DoCjjvbdYlSDsmlN",
|
|
- "EPCjjvbdiZuGLpmf",
|
|
- "EObkKvbdnCJvxPNu",
|
|
- "DnbkKvbdhzUelRNf",
|
|
- "DnbkKvbdZeYGzgiC",
|
|
- "DoCkKvbdDnbkLWbd",
|
|
- "DnbkKvbdnHFYMmfy",
|
|
- "DoCjjvbdePEsKtTr",
|
|
- "DnbjjvbdZQmEhleR",
|
|
- "DnbkKvbdTkunaVoJ",
|
|
- "DnbkKvbdFWZPpMjF",
|
|
- "DoDKjvbdSwkMNzkY",
|
|
- "EOcLKvbdwtldpyMO",
|
|
- "EOcKjvbdhkdcmtby",
|
|
- "DoCjjvbdNQXqWNfs",
|
|
- "EPDKjvbdzjUpPdTU",
|
|
- "DnbjjvbdqceJPnWB",
|
|
- "EPDKjvbdUyHsyjoO",
|
|
- "EPCkKvbdZshhxcsO",
|
|
- "DncKjvbdqAiFAWgd",
|
|
- "EObkKvbdgFkzOGgA",
|
|
- "DncKjvbdmgFYNNgZ",
|
|
- "DoDLKvbdDjHjWYKA",
|
|
- "DnbjjvbdJbicRKCx",
|
|
- "DnbkKvbdfNFwHMjL",
|
|
- "EPCkKvbdWSNxBdlD",
|
|
- "EPDLKvbdCJKbLJFj",
|
|
- "EPDKjvbdEOcKkXDE",
|
|
- "EPCkKvbdVrOYCElD",
|
|
- "DnbjjvbdCIkBjhej",
|
|
- "DoDLKvbddoFTKstS",
|
|
- "DnbjjvbduDDVXVoP",
|
|
- "EObkKvbdxwiKCPzL",
|
|
- "DnbkKvbdZGvdAPTJ",
|
|
- "DoDLKvbdBdPaVjNG",
|
|
- "EOcKjvbdIHGzYwxH",
|
|
- "DoCjjvbdGFjSNhsq",
|
|
- "DnbjjvbdlYsSSxgU",
|
|
- "EPCjjvbdqrUjnKaN",
|
|
- "EOcLKvbdtvOXipsA",
|
|
- "DoDLKvbdrounjCuf",
|
|
- "DoCkKvbdFVyPomKF",
|
|
- "EOcKjvbdNHCpNPtk",
|
|
- "EPDLKvbdWeyZtAPT",
|
|
- "EPDKjvbdjcLkQfuH",
|
|
- "EOcLKvbdzHZMAMeX",
|
|
- "DoCjjvbdUMWPBVni",
|
|
- "EOcKjvbdHELWKBjK",
|
|
- "DoDKjvbdMgComQUk",
|
|
- "DnbkKvbdiGjDZWJu",
|
|
- "DncKjvbdyqOmJKXA",
|
|
- "DoDKjvbdVZITyjoO",
|
|
- "DoCjjvbdzQoNJJwA",
|
|
- "EOcLKvbdGAoQxizm",
|
|
- "DoDKjvbdatagYKsh",
|
|
- "EPDKjvbdSBceMJYk",
|
|
- "DoDLKvbdMpYQvOHT",
|
|
- "DncKjvbdiCOcFWpq",
|
|
- "DoCjjvbdUGznLvvF",
|
|
- "EPDLKvbdANIYrvyx",
|
|
- "EPCjjvbdIwtCHkpp",
|
|
- "EObkKvbdJSyBSmYM",
|
|
- "EObkKvbdwuMdqYlO",
|
|
- "EObjjvbdmuVZkKSG",
|
|
- "DncLKvbdSPsfjFdX",
|
|
- "DoDLKvbdSQUHJedX",
|
|
- "DoDKjvbdiVZdwSUb",
|
|
- "EPDLKvbdRjxfVGkT",
|
|
- "EObjjvbdmpZyVkZC",
|
|
- "DncLKvbdhzUelROG",
|
|
- "EPCkKvbdxVMeRZMO",
|
|
- "EOcKjvbdxxIiapZk",
|
|
- "EOcKjvbdJSyBTNYM",
|
|
- "EPDKjvbdMSXMzUpz",
|
|
- "EObkKvbdJmADzHVB" };
|
|
-
|
|
- public static void main(java.lang.String[] unused) {
|
|
- try {
|
|
- BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("bad.out"));
|
|
- for (int i = 0; i < strings.length; i++) {
|
|
- out.write(strings[i].getBytes());
|
|
- out.write("\n".getBytes());
|
|
- }
|
|
- out.close();
|
|
- } catch (Exception e) {
|
|
- System.out.println("Some exception occurred");
|
|
- }
|
|
- }
|
|
-}
|
|
--- hotspot/test/runtime/7158800/InternTest.java 2012-08-10 09:29:18.000000000 -0700
|
|
+++ hotspot/test/runtime/7158800/InternTest.java 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,80 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
|
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
- *
|
|
- * This code is free software; you can redistribute it and/or modify it
|
|
- * under the terms of the GNU General Public License version 2 only, as
|
|
- * published by the Free Software Foundation.
|
|
- *
|
|
- * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
- * version 2 for more details (a copy is included in the LICENSE file that
|
|
- * accompanied this code).
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License version
|
|
- * 2 along with this work; if not, write to the Free Software Foundation,
|
|
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
- *
|
|
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
- * or visit www.oracle.com if you need additional information or have any
|
|
- * questions.
|
|
- */
|
|
-
|
|
-/*
|
|
- * @test
|
|
- * @bug 7158800
|
|
- * @run shell/timeout=400 Test7158800.sh
|
|
- * @summary This test performs poorly if alternate hashing isn't used for
|
|
- * string table.
|
|
- * The timeout is handled by the shell file (which kills the process)
|
|
- */
|
|
-import java.util.*;
|
|
-import java.io.*;
|
|
-
|
|
-public class InternTest {
|
|
- public static void main (String args[]) throws Exception {
|
|
- final String badStringsFilename = "badstrings.txt";
|
|
-
|
|
- if (args.length == 0 || (!args[0].equals("bad") && !args[0].equals("normal"))) {
|
|
- System.out.println("Usage: java InternTest [normal|bad]");
|
|
- System.exit(1);
|
|
- }
|
|
-
|
|
- FileInputStream fstream = new FileInputStream(badStringsFilename);
|
|
- DataInputStream in = new DataInputStream(fstream);
|
|
- BufferedReader br = new BufferedReader(new InputStreamReader(in));
|
|
- String toIntern, toDiscard;
|
|
- int count = 0;
|
|
- long current = 0L;
|
|
- long last = System.currentTimeMillis();
|
|
-
|
|
- if (args[0].equals("bad")) {
|
|
- while ((toIntern = br.readLine()) != null) {
|
|
- toDiscard = new String((new Integer((int)(Math.random() * Integer.MAX_VALUE))).toString());
|
|
- toIntern.intern();
|
|
- count++;
|
|
- if (count % 10000 == 0 && count != 0) {
|
|
- current = System.currentTimeMillis();
|
|
- System.out.println(new Date(current) + ": interned " + count + " 0-hash strings - last 10000 took " + ((float)(current - last))/1000 + "s (" + ((float)(current - last))/10000000 + "s per String)");
|
|
- last = current;
|
|
- }
|
|
- }
|
|
- }
|
|
- if (args[0].equals("normal")) {
|
|
- while ((toDiscard = br.readLine()) != null) { // do the same read from the file to try and make the test fair
|
|
- toIntern = new String((new Integer((int)(Math.random() * Integer.MAX_VALUE))).toString());
|
|
- toIntern.intern();
|
|
- count++;
|
|
- if (count % 10000 == 0 && count != 0) {
|
|
- current = System.currentTimeMillis();
|
|
- System.out.println(new Date(current) + ": interned " + count + " normal strings - last 10000 took " + ((float)(current - last))/1000 + "s (" + ((float)(current - last))/10000000 + "s per String)");
|
|
- last = current;
|
|
- }
|
|
- }
|
|
- }
|
|
- in.close();
|
|
- }
|
|
-}
|
|
-
|
|
-
|
|
--- hotspot/test/runtime/7158800/Test7158800.sh 2012-08-10 09:29:19.000000000 -0700
|
|
+++ hotspot/test/runtime/7158800/Test7158800.sh 2013-04-28 16:29:17.000000000 -0700
|
|
@@ -46,7 +46,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux )
|
|
+ SunOS | Linux | *BSD )
|
|
NULL=/dev/null
|
|
PS=":"
|
|
FS="/"
|
|
--- hotspot/test/runtime/7158804/Test7158804.sh 1969-12-31 16:00:00.000000000 -0800
|
|
+++ hotspot/test/runtime/7158804/Test7158804.sh 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -0,0 +1,30 @@
|
|
+#!/bin/sh
|
|
+#
|
|
+# Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
|
|
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+#
|
|
+
|
|
+##
|
|
+## @test Test7158804.sh
|
|
+## @bug 7158804
|
|
+## @summary Improve config file parsing
|
|
+## @run shell Test7158804.sh
|
|
+##
|
|
+
|
|
+if [ "${TESTJAVA}" = "" ]
|
|
+then
|
|
+ echo "TESTJAVA not set. Test cannot execute. Failed."
|
|
+ exit 1
|
|
+fi
|
|
+echo "TESTJAVA=${TESTJAVA}"
|
|
+
|
|
+rm -f .hotspotrc
|
|
+echo -XX:+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >.hotspotrc
|
|
+${TESTJAVA}/bin/java ${TESTVMOPTS} -XX:+IgnoreUnrecognizedVMOptions -XX:Flags=.hotspotrc -version
|
|
+if [ $? -ne 0 ]
|
|
+then
|
|
+ echo "Test Failed"
|
|
+ exit 1
|
|
+fi
|
|
+rm -f .hotspotrc
|
|
+exit 0
|
|
--- hotspot/test/runtime/7162488/Test7162488.sh 1969-12-31 16:00:00.000000000 -0800
|
|
+++ hotspot/test/runtime/7162488/Test7162488.sh 2013-03-03 08:48:48.000000000 -0800
|
|
@@ -0,0 +1,77 @@
|
|
+#
|
|
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+#
|
|
+# This code is free software; you can redistribute it and/or modify it
|
|
+# under the terms of the GNU General Public License version 2 only, as
|
|
+# published by the Free Software Foundation.
|
|
+#
|
|
+# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+# version 2 for more details (a copy is included in the LICENSE file that
|
|
+# accompanied this code).
|
|
+#
|
|
+# You should have received a copy of the GNU General Public License version
|
|
+# 2 along with this work; if not, write to the Free Software Foundation,
|
|
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+#
|
|
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+# or visit www.oracle.com if you need additional information or have any
|
|
+# questions.
|
|
+#
|
|
+
|
|
+
|
|
+# @test Test7162488.sh
|
|
+# @bug 7162488
|
|
+# @summary VM not printing unknown -XX options
|
|
+# @run shell Test7162488.sh
|
|
+#
|
|
+
|
|
+if [ "${TESTSRC}" = "" ]
|
|
+ then TESTSRC=.
|
|
+fi
|
|
+
|
|
+if [ "${TESTJAVA}" = "" ]
|
|
+then
|
|
+ PARENT=`dirname \`which java\``
|
|
+ TESTJAVA=`dirname ${PARENT}`
|
|
+ printf "TESTJAVA not set, selecting " ${TESTJAVA}
|
|
+ printf " If this is incorrect, try setting the variable manually.\n"
|
|
+fi
|
|
+
|
|
+# set platform-dependent variables
|
|
+OS=`uname -s`
|
|
+case "$OS" in
|
|
+ Windows_* )
|
|
+ FS="\\"
|
|
+ ;;
|
|
+ * )
|
|
+ FS="/"
|
|
+ ;;
|
|
+esac
|
|
+
|
|
+JAVA=${TESTJAVA}${FS}bin${FS}java
|
|
+
|
|
+#
|
|
+# Just run with an option we are confident will not be recognized,
|
|
+# and check for the message:
|
|
+#
|
|
+OPTION=this_is_not_an_option
|
|
+
|
|
+${JAVA} ${TESTVMOPTS} -showversion -XX:${OPTION} 2>&1 | grep "Unrecognized VM option"
|
|
+if [ "$?" != "0" ]
|
|
+then
|
|
+ printf "FAILED: option not flagged as unrecognized.\n"
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+${JAVA} ${TESTVMOPTS} -showversion -XX:${OPTION} 2>&1 | grep ${OPTION}
|
|
+if [ "$?" != "0" ]
|
|
+then
|
|
+ printf "FAILED: bad option not named as being bad.\n"
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+printf "Passed.\n"
|
|
+
|
|
--- jaxp/.hgtags 2012-08-10 09:35:08.000000000 -0700
|
|
+++ jaxp/.hgtags 2013-06-22 09:41:30.000000000 -0700
|
|
@@ -123,6 +123,7 @@
|
|
bcd31fa1e3c6f51b4fdd427ef905188cdac57164 jdk7-b146
|
|
067fb18071e3872698f6218724958bd0cebf30a3 jdk7u1-b01
|
|
fc268cd1dd5d2e903ccd4b0275e1f9c2461ed30c jdk7-b147
|
|
+3170972bd3928a331c4c64a5c0c9632077fb399a 7u0
|
|
104ca42e1e7ca66b074a4619ce6420f15d8f454d jdk7u1-b02
|
|
64e323faadf65018c1ffc8bb9c97f7b664e87347 jdk7u1-b03
|
|
2256c20e66857f80cacda14ffdbc0979c929d7f8 jdk7u1-b04
|
|
@@ -197,5 +198,81 @@
|
|
7403701aa75848ca2a7b297909908b858134e132 jdk7u6-b21
|
|
fcf35906d1d88583878cd2e2d7c63dfba4e9f679 jdk7u6-b22
|
|
8824bcbfd7cd8059ededf70f1e7f2b06f02cb33f jdk7u6-b23
|
|
-1365e7472a3b737dda4a73e06ad41718d667d9be jdk7u8-b01
|
|
-0a313d4307930be3a64106b9b8c90f9342673aa0 jdk7u8-b02
|
|
+378f719cfb9491b766cd9f7cd47ad7fa3503e141 jdk7u6-b24
|
|
+5f1b80e8baec46fc28826a3a6ab8e1913c872f4c jdk7u6-b30
|
|
+2eafa8a6fd8fdb54b10045e247d1a57f9817f473 jdk7u6-b31
|
|
+2eafa8a6fd8fdb54b10045e247d1a57f9817f473 jdk7u7-b10
|
|
+c4aa15da8529451cc678d5747e7b82e9cc38627e jdk7u7-b30
|
|
+f6e11679b12e1548f407b78a940c568401dd2a19 jdk7u7-b11
|
|
+7840a267c777e22004912ad0aadd5258ac3d36c6 jdk7u7-b31
|
|
+61fc72e9fe26b3acf1572866143c22719c088b62 jdk7u7-b01
|
|
+78d9e4853388a2e7be18ff18c0b5330c074cb514 jdk7u7-b02
|
|
+fc7c5aa8c722f28c59560ce83140e803d853afc9 jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+61fc72e9fe26b3acf1572866143c22719c088b62 jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+78d9e4853388a2e7be18ff18c0b5330c074cb514 jdk7u9-b02
|
|
+b12a2d557c5e302b614c5f7e25ad6c8a0e138742 jdk7u9-b04
|
|
+ab4bbb93b3831aca230c62431f7fe02b56793450 jdk7u9-b05
|
|
+039b21e98d2b2d0b26a19c325b37ce522bae39de jdk7u9-b31
|
|
+d80a8e81fef0bc6e0bdb7891895bda527853add1 jdk7u9-b32
|
|
+254ed6ae237ee631179819570cf7fb265c6fb3a8 jdk7u10-b10
|
|
+c1df39bcc9c1bcdfb2a92682650264b3b7771ce8 jdk7u10-b11
|
|
+00cfd60368048c4969785eb52ec50cf5691c4367 jdk7u10-b12
|
|
+51efccc2b4e908fa0475075739c1463d1dd50efc jdk7u10-b13
|
|
+c245a6332320a86342683e6f732f3f8f2f4de69a jdk7u10-b14
|
|
+89b043ba2e01e969090e23a5a7a2e9f7165ff5a0 jdk7u10-b15
|
|
+5449d5396bd8deee90f18f29899343129e3cdc4e jdk7u10-b16
|
|
+86c75e6aa3a7fa9a587fc7dd2d08af8aa8ffb9a9 jdk7u10-b17
|
|
+162a2c6ad8718a63253fa53724f704a4f85731bc jdk7u10-b18
|
|
+c59eb287de720ae5ce8087f179ec01f4f6525a32 jdk7u10-b30
|
|
+ec1e8ead41ee49d2b3f84a26ae0fac88e226692d jdk7u10-b31
|
|
+853059839d38432f86e345ba951397ede235a374 jdk7u11-b20
|
|
+453a52320a1b8bd425fdb55e14b64067b536f1e2 jdk7u11-b21
|
|
+71353182d3f7c237047c5386d9f31186a5bd1519 jdk7u11-b32
|
|
+af8f33c558d05aacdff5b5787be0cbaba9f10e98 jdk7u11-b33
|
|
+5df9207c4378b7f4b24d70b365714c5ee6318982 jdk7u11-b03
|
|
+6ee19b9c8313db32e6d8989aa3782830d2b09710 jdk7u11-b04
|
|
+3312b258392eaeab9c4a20e3deb36d3ae3337efe jdk7u11-b05
|
|
+86d0250b62bbb4aabab2a7c249aeb14847be2631 jdk7u11-b06
|
|
+225aa78c36e9b776c87e585329bbb7ee0e3259a3 jdk7u11-b07
|
|
+48491f5a58172f0fbdf9b774842c2ec1a42f609a jdk7u11-b08
|
|
+eb9d57159e5126cf4316c9571ac39324a8b442a8 jdk7u13-b09
|
|
+f9fe0d38b1103cb33073538c959d982e28ed7b11 jdk7u13-b10
|
|
+0a6a09e5174a4c15632ff7e06d6b215164e3fa15 jdk7u13-b30
|
|
+f9fe0d38b1103cb33073538c959d982e28ed7b11 jdk7u13-b20
|
|
+99c114990b191f32e72c6158072033aec5816aaf jdk7u15-b01
|
|
+edbaa584f09a78d0ad3c73389faf20409a552e46 jdk7u15-b02
|
|
+14a9b60a2086f4e2f6ec43bee3375042946f6510 jdk7u15-b30
|
|
+de6df3c10ebc0f8c704a11ad86c8eea1e1cc1442 jdk7u15-b31
|
|
+039c31ff1fe6789859f2f55588218147623a9a9f jdk7u15-b33
|
|
+a55f67cfe182dc42a86aae836674eb8ba5b79891 jdk7u15-b03
|
|
+eb9d57159e5126cf4316c9571ac39324a8b442a8 jdk7u15-b32
|
|
+8a9867ee429440b657eb5852c4dae5f029356022 jdk7u17-b01
|
|
+7863a60ae4b4a0c7d762a95e77e589fafa4e50ae jdk7u17-b02
|
|
+a5e6594fc1ae20101b5d69632f65078d7a99b76d jdk7u17-b30
|
|
+8fb34202383ece5386acecc3a6c1dac68dccbf05 jdk7u17-b31
|
|
+f7d8d2c003a10c38beac2f57e77d19303c71d6fc jdk7u17-b32
|
|
+0a6a09e5174a4c15632ff7e06d6b215164e3fa15 jdk7u21-b01
|
|
+99ed1a3d29509fee659aabec4810c896b7234d80 jdk7u21-b02
|
|
+38d4d23d167c5a623e6d771a15b1fe2ee771ce38 jdk7u21-b03
|
|
+acde12ee462d650d34cc148d9d3649f9a9bbca8a jdk7u21-b04
|
|
+56b1ad031df90d20c52941c15ceae0e5a90893b8 jdk7u21-b05
|
|
+ab51202418c1c96e01a45893a26829a2d9c7b956 jdk7u21-b06
|
|
+3ab71deee4a4477d89530ee9e92a36017a6092fa jdk7u21-b07
|
|
+f5ef2e76669bc3179f17dac42a8a407fb6bd4d91 jdk7u21-b08
|
|
+65977091d010402ccbed41c96748866a1d50f0c4 jdk7u21-b09
|
|
+bf2d62ea518d5e4130e442e07705e7a50b821ad9 jdk7u21-b10
|
|
+3e0e331bdfb8f3adfd0cc78118e0ac588e73a2b5 jdk7u21-b11
|
|
+980fe893d8fd86d8aee14771167b6e0ac75fa208 jdk7u21-b30
|
|
+a320a590b4cac6eeff53829bde520ef46880b006 jdk7u21-b12
|
|
+5704dc942da676677a820d16c9a08fc6cad5b3bb jdk7u25-b01
|
|
+f9c1fe7cd1194e785807f07005369631b35b28d8 jdk7u25-b02
|
|
+fe858d7d6a13829d0ef0a1f762bd0e769cd24fa1 jdk7u25-b03
|
|
+1a2822a1d6a40c6e469f4089f39e41f642a87843 jdk7u25-b04
|
|
+e927605d1678c5d94adfc44183160d6c4df05b8b jdk7u25-b05
|
|
+8dfb4db227e7795120c072781927ba7d35186559 jdk7u25-b06
|
|
+ad2732999848b6e57f564d85e18ddebab6315ac2 jdk7u25-b07
|
|
+df9def2569705ebe316b50e673f847d2ec47eccf jdk7u25-b08
|
|
+5952538d55e624132f97400332a50b71880c874c jdk7u25-b09
|
|
+aa00dd983dd0f5b07269d0648a0325e9b3e0d957 jdk7u25-b10
|
|
--- jaxp/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java 2012-08-10 09:35:19.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/bcel/internal/classfile/JavaClass.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -63,6 +63,7 @@
|
|
import com.sun.org.apache.bcel.internal.util.ClassVector;
|
|
import com.sun.org.apache.bcel.internal.util.ClassQueue;
|
|
import com.sun.org.apache.bcel.internal.generic.Type;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
import java.io.*;
|
|
import java.util.StringTokenizer;
|
|
@@ -77,6 +78,7 @@
|
|
* class file. Those interested in programatically generating classes
|
|
* should see the <a href="../generic/ClassGen.html">ClassGen</a> class.
|
|
|
|
+ * @version $Id: JavaClass.java,v 1.4 2007-07-19 04:34:42 ofung Exp $
|
|
* @see com.sun.org.apache.bcel.internal.generic.ClassGen
|
|
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
|
|
*/
|
|
@@ -451,9 +453,9 @@
|
|
String debug = null, sep = null;
|
|
|
|
try {
|
|
- debug = System.getProperty("JavaClass.debug");
|
|
+ debug = SecuritySupport.getSystemProperty("JavaClass.debug");
|
|
// Get path separator either / or \ usually
|
|
- sep = System.getProperty("file.separator");
|
|
+ sep = SecuritySupport.getSystemProperty("file.separator");
|
|
}
|
|
catch (SecurityException e) {
|
|
// falls through
|
|
--- jaxp/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java 2012-08-10 09:36:04.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/bcel/internal/util/Class2HTML.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -82,6 +82,7 @@
|
|
* method in the Method's frame will jump to the appropiate method in
|
|
* the Code frame.
|
|
*
|
|
+ * @version $Id: Class2HTML.java,v 1.3 2007-07-19 04:34:52 ofung Exp $
|
|
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
|
|
*/
|
|
public class Class2HTML implements Constants
|
|
@@ -137,7 +138,7 @@
|
|
ClassParser parser=null;
|
|
JavaClass java_class=null;
|
|
String zip_file = null;
|
|
- char sep = System.getProperty("file.separator").toCharArray()[0];
|
|
+ char sep = SecuritySupport.getSystemProperty("file.separator").toCharArray()[0];
|
|
String dir = "." + sep; // Where to store HTML files
|
|
|
|
try {
|
|
--- jaxp/src/com/sun/org/apache/bcel/internal/util/ClassPath.java 2012-08-10 09:36:04.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/bcel/internal/util/ClassPath.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -66,6 +66,7 @@
|
|
* Responsible for loading (class) files from the CLASSPATH. Inspired by
|
|
* sun.tools.ClassPath.
|
|
*
|
|
+ * @version $Id: ClassPath.java,v 1.4 2007-07-19 04:34:52 ofung Exp $
|
|
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
|
|
*/
|
|
public class ClassPath implements Serializable {
|
|
@@ -83,7 +84,7 @@
|
|
ArrayList vec = new ArrayList();
|
|
|
|
for(StringTokenizer tok=new StringTokenizer(class_path,
|
|
- System.getProperty("path.separator"));
|
|
+ SecuritySupport.getSystemProperty("path.separator"));
|
|
tok.hasMoreTokens();)
|
|
{
|
|
String path = tok.nextToken();
|
|
@@ -92,7 +93,7 @@
|
|
File file = new File(path);
|
|
|
|
try {
|
|
- if(file.exists()) {
|
|
+ if(SecuritySupport.getFileExists(file)) {
|
|
if(file.isDirectory())
|
|
vec.add(new Dir(path));
|
|
else
|
|
@@ -143,8 +144,9 @@
|
|
String name = tok.nextToken();
|
|
File file = new File(name);
|
|
|
|
- if(file.exists())
|
|
+ if(SecuritySupport.getFileExists(file)) {
|
|
list.add(name);
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
@@ -159,9 +161,9 @@
|
|
String class_path, boot_path, ext_path;
|
|
|
|
try {
|
|
- class_path = System.getProperty("java.class.path");
|
|
- boot_path = System.getProperty("sun.boot.class.path");
|
|
- ext_path = System.getProperty("java.ext.dirs");
|
|
+ class_path = SecuritySupport.getSystemProperty("java.class.path");
|
|
+ boot_path = SecuritySupport.getSystemProperty("sun.boot.class.path");
|
|
+ ext_path = SecuritySupport.getSystemProperty("java.ext.dirs");
|
|
}
|
|
catch (SecurityException e) {
|
|
return "";
|
|
@@ -176,8 +178,8 @@
|
|
getPathComponents(ext_path, dirs);
|
|
|
|
for(Iterator e = dirs.iterator(); e.hasNext(); ) {
|
|
- File ext_dir = new File((String)e.next());
|
|
- String[] extensions = ext_dir.list(new FilenameFilter() {
|
|
+ File ext_dir = new File((String)e.next());
|
|
+ String[] extensions = SecuritySupport.getFileList(ext_dir, new FilenameFilter() {
|
|
public boolean accept(File dir, String name) {
|
|
name = name.toLowerCase();
|
|
return name.endsWith(".zip") || name.endsWith(".jar");
|
|
@@ -342,7 +344,7 @@
|
|
final File file = new File(dir + File.separatorChar +
|
|
name.replace('.', File.separatorChar) + suffix);
|
|
|
|
- return file.exists()? new ClassFile() {
|
|
+ return SecuritySupport.getFileExists(file)? new ClassFile() {
|
|
public InputStream getInputStream() throws IOException { return new FileInputStream(file); }
|
|
|
|
public String getPath() { try {
|
|
--- jaxp/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java 2012-08-10 09:36:05.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/bcel/internal/util/JavaWrapper.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -72,6 +72,7 @@
|
|
* <pre>java com.sun.org.apache.bcel.internal.util.JavaWrapper -Dbcel.classloader=foo.MyLoader <real.class.name> [arguments]</pre>
|
|
* </p>
|
|
*
|
|
+ * @version $Id: JavaWrapper.java,v 1.3 2007-07-19 04:34:52 ofung Exp $
|
|
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
|
|
* @see ClassLoader
|
|
*/
|
|
@@ -79,7 +80,7 @@
|
|
private java.lang.ClassLoader loader;
|
|
|
|
private static java.lang.ClassLoader getClassLoader() {
|
|
- String s = System.getProperty("bcel.classloader");
|
|
+ String s = SecuritySupport.getSystemProperty("bcel.classloader");
|
|
|
|
if((s == null) || "".equals(s))
|
|
s = "com.sun.org.apache.bcel.internal.util.ClassLoader";
|
|
--- jaxp/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ jaxp/src/com/sun/org/apache/bcel/internal/util/SecuritySupport.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -0,0 +1,223 @@
|
|
+/*
|
|
+ * reserved comment block
|
|
+ * DO NOT REMOVE OR ALTER!
|
|
+ */
|
|
+/*
|
|
+ * Copyright 2002-2004 The Apache Software Foundation.
|
|
+ *
|
|
+ * Licensed under the Apache License, Version 2.0 (the "License");
|
|
+ * you may not use this file except in compliance with the License.
|
|
+ * You may obtain a copy of the License at
|
|
+ *
|
|
+ * http://www.apache.org/licenses/LICENSE-2.0
|
|
+ *
|
|
+ * Unless required by applicable law or agreed to in writing, software
|
|
+ * distributed under the License is distributed on an "AS IS" BASIS,
|
|
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
+ * See the License for the specific language governing permissions and
|
|
+ * limitations under the License.
|
|
+ */
|
|
+
|
|
+package com.sun.org.apache.bcel.internal.util;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.FileInputStream;
|
|
+import java.io.FileNotFoundException;
|
|
+import java.io.FilenameFilter;
|
|
+import java.io.InputStream;
|
|
+import java.lang.ClassLoader;
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
+import java.security.PrivilegedActionException;
|
|
+import java.security.PrivilegedExceptionAction;
|
|
+import java.util.ListResourceBundle;
|
|
+import java.util.Locale;
|
|
+import java.util.MissingResourceException;
|
|
+import java.util.ResourceBundle;
|
|
+
|
|
+/**
|
|
+ * This class is duplicated for each subpackage so keep it in sync. It is
|
|
+ * package private and therefore is not exposed as part of any API.
|
|
+ *
|
|
+ * @xerces.internal
|
|
+ */
|
|
+public final class SecuritySupport {
|
|
+
|
|
+ private static final SecuritySupport securitySupport = new SecuritySupport();
|
|
+
|
|
+ /**
|
|
+ * Return an instance of this class.
|
|
+ */
|
|
+ public static SecuritySupport getInstance() {
|
|
+ return securitySupport;
|
|
+ }
|
|
+
|
|
+ static ClassLoader getContextClassLoader() {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ ClassLoader cl = null;
|
|
+ try {
|
|
+ cl = Thread.currentThread().getContextClassLoader();
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
+ return cl;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ static ClassLoader getSystemClassLoader() {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ ClassLoader cl = null;
|
|
+ try {
|
|
+ cl = ClassLoader.getSystemClassLoader();
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
+ return cl;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ static ClassLoader getParentClassLoader(final ClassLoader cl) {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ ClassLoader parent = null;
|
|
+ try {
|
|
+ parent = cl.getParent();
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
+
|
|
+ // eliminate loops in case of the boot
|
|
+ // ClassLoader returning itself as a parent
|
|
+ return (parent == cl) ? null : parent;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static String getSystemProperty(final String propName) {
|
|
+ return (String) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return System.getProperty(propName);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ static FileInputStream getFileInputStream(final File file)
|
|
+ throws FileNotFoundException {
|
|
+ try {
|
|
+ return (FileInputStream) AccessController.doPrivileged(new PrivilegedExceptionAction() {
|
|
+ public Object run() throws FileNotFoundException {
|
|
+ return new FileInputStream(file);
|
|
+ }
|
|
+ });
|
|
+ } catch (PrivilegedActionException e) {
|
|
+ throw (FileNotFoundException) e.getException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Return resource using the same classloader for the ObjectFactory by
|
|
+ * default or bootclassloader when Security Manager is in place
|
|
+ */
|
|
+ public static InputStream getResourceAsStream(final String name) {
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ return getResourceAsStream(null, name);
|
|
+ } else {
|
|
+ return getResourceAsStream(findClassLoader(), name);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ public static InputStream getResourceAsStream(final ClassLoader cl,
|
|
+ final String name) {
|
|
+ return (InputStream) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ InputStream ris;
|
|
+ if (cl == null) {
|
|
+ ris = Object.class.getResourceAsStream("/" + name);
|
|
+ } else {
|
|
+ ris = cl.getResourceAsStream(name);
|
|
+ }
|
|
+ return ris;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name, the default locale,
|
|
+ * and the caller's class loader.
|
|
+ *
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified
|
|
+ * class name
|
|
+ * @return a resource bundle for the given base name and the default locale
|
|
+ */
|
|
+ public static ListResourceBundle getResourceBundle(String bundle) {
|
|
+ return getResourceBundle(bundle, Locale.getDefault());
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name and locale, and the
|
|
+ * caller's class loader.
|
|
+ *
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified
|
|
+ * class name
|
|
+ * @param locale the locale for which a resource bundle is desired
|
|
+ * @return a resource bundle for the given base name and locale
|
|
+ */
|
|
+ public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) {
|
|
+ return AccessController.doPrivileged(new PrivilegedAction<ListResourceBundle>() {
|
|
+ public ListResourceBundle run() {
|
|
+ try {
|
|
+ return (ListResourceBundle) ResourceBundle.getBundle(bundle, locale);
|
|
+ } catch (MissingResourceException e) {
|
|
+ try {
|
|
+ return (ListResourceBundle) ResourceBundle.getBundle(bundle, new Locale("en", "US"));
|
|
+ } catch (MissingResourceException e2) {
|
|
+ throw new MissingResourceException(
|
|
+ "Could not load any resource bundle by " + bundle, bundle, "");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static String[] getFileList(final File f, final FilenameFilter filter) {
|
|
+ return ((String[]) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return f.list(filter);
|
|
+ }
|
|
+ }));
|
|
+ }
|
|
+
|
|
+ public static boolean getFileExists(final File f) {
|
|
+ return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return f.exists() ? Boolean.TRUE : Boolean.FALSE;
|
|
+ }
|
|
+ })).booleanValue();
|
|
+ }
|
|
+
|
|
+ static long getLastModified(final File f) {
|
|
+ return ((Long) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return new Long(f.lastModified());
|
|
+ }
|
|
+ })).longValue();
|
|
+ }
|
|
+
|
|
+
|
|
+ /**
|
|
+ * Figure out which ClassLoader to use.
|
|
+ */
|
|
+ public static ClassLoader findClassLoader()
|
|
+ {
|
|
+ if (System.getSecurityManager()!=null) {
|
|
+ //this will ensure bootclassloader is used
|
|
+ return null;
|
|
+ } else {
|
|
+ return SecuritySupport.class.getClassLoader();
|
|
+ }
|
|
+ } // findClassLoader():ClassLoader
|
|
+
|
|
+ private SecuritySupport() {
|
|
+ }
|
|
+}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLMessages.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -22,68 +22,72 @@
|
|
*/
|
|
package com.sun.org.apache.xalan.internal.res;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.util.ListResourceBundle;
|
|
|
|
import com.sun.org.apache.xpath.internal.res.XPATHMessages;
|
|
|
|
/**
|
|
- * Sets things up for issuing error messages. This class is misnamed, and
|
|
- * should be called XalanMessages, or some such.
|
|
+ * Sets things up for issuing error messages. This class is misnamed, and should
|
|
+ * be called XalanMessages, or some such.
|
|
+ *
|
|
* @xsl.usage internal
|
|
*/
|
|
-public class XSLMessages extends XPATHMessages
|
|
-{
|
|
+public class XSLMessages extends XPATHMessages {
|
|
|
|
- /** The language specific resource object for Xalan messages. */
|
|
- private static ListResourceBundle XSLTBundle = null;
|
|
-
|
|
- /** The class name of the Xalan error message string table. */
|
|
- private static final String XSLT_ERROR_RESOURCES =
|
|
- "com.sun.org.apache.xalan.internal.res.XSLTErrorResources";
|
|
-
|
|
- /**
|
|
- * Creates a message from the specified key and replacement
|
|
- * arguments, localized to the given locale.
|
|
- *
|
|
- * @param msgKey The key for the message text.
|
|
- * @param args The arguments to be used as replacement text
|
|
- * in the message created.
|
|
- *
|
|
- * @return The formatted message string.
|
|
- */
|
|
- public static final String createMessage(String msgKey, Object args[]) //throws Exception
|
|
- {
|
|
- if (XSLTBundle == null)
|
|
- XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES);
|
|
-
|
|
- if (XSLTBundle != null)
|
|
+ /**
|
|
+ * The language specific resource object for Xalan messages.
|
|
+ */
|
|
+ private static ListResourceBundle XSLTBundle = null;
|
|
+ /**
|
|
+ * The class name of the Xalan error message string table.
|
|
+ */
|
|
+ private static final String XSLT_ERROR_RESOURCES =
|
|
+ "com.sun.org.apache.xalan.internal.res.XSLTErrorResources";
|
|
+
|
|
+ /**
|
|
+ * Creates a message from the specified key and replacement arguments,
|
|
+ * localized to the given locale.
|
|
+ *
|
|
+ * @param msgKey The key for the message text.
|
|
+ * @param args The arguments to be used as replacement text in the message
|
|
+ * created.
|
|
+ *
|
|
+ * @return The formatted message string.
|
|
+ */
|
|
+ public static String createMessage(String msgKey, Object args[]) //throws Exception
|
|
{
|
|
- return createMsg(XSLTBundle, msgKey, args);
|
|
+ if (XSLTBundle == null) {
|
|
+ XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES);
|
|
+ }
|
|
+
|
|
+ if (XSLTBundle != null) {
|
|
+ return createMsg(XSLTBundle, msgKey, args);
|
|
+ } else {
|
|
+ return "Could not load any resource bundles.";
|
|
+ }
|
|
}
|
|
- else
|
|
- return "Could not load any resource bundles.";
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a message from the specified key and replacement
|
|
- * arguments, localized to the given locale.
|
|
- *
|
|
- * @param msgKey The key for the message text.
|
|
- * @param args The arguments to be used as replacement text
|
|
- * in the message created.
|
|
- *
|
|
- * @return The formatted warning string.
|
|
- */
|
|
- public static final String createWarning(String msgKey, Object args[]) //throws Exception
|
|
- {
|
|
- if (XSLTBundle == null)
|
|
- XSLTBundle = loadResourceBundle(XSLT_ERROR_RESOURCES);
|
|
|
|
- if (XSLTBundle != null)
|
|
+ /**
|
|
+ * Creates a message from the specified key and replacement arguments,
|
|
+ * localized to the given locale.
|
|
+ *
|
|
+ * @param msgKey The key for the message text.
|
|
+ * @param args The arguments to be used as replacement text in the message
|
|
+ * created.
|
|
+ *
|
|
+ * @return The formatted warning string.
|
|
+ */
|
|
+ public static String createWarning(String msgKey, Object args[]) //throws Exception
|
|
{
|
|
- return createMsg(XSLTBundle, msgKey, args);
|
|
+ if (XSLTBundle == null) {
|
|
+ XSLTBundle = SecuritySupport.getResourceBundle(XSLT_ERROR_RESOURCES);
|
|
+ }
|
|
+
|
|
+ if (XSLTBundle != null) {
|
|
+ return createMsg(XSLTBundle, msgKey, args);
|
|
+ } else {
|
|
+ return "Could not load any resource bundles.";
|
|
+ }
|
|
}
|
|
- else
|
|
- return "Could not load any resource bundles.";
|
|
- }
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java 2012-08-10 09:36:07.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1449,68 +1449,5 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java 2012-08-10 09:36:08.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java 2012-08-10 09:36:08.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java 2012-08-10 09:36:08.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -1448,68 +1448,4 @@
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XSLTErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XSLTErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
}
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
-
|
|
-}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java 2012-08-10 09:36:09.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -54,6 +54,8 @@
|
|
//
|
|
// Constants
|
|
//
|
|
+ private static final String XALAN_INTERNAL = "com.sun.org.apache.xalan.internal";
|
|
+ private static final String XERCES_INTERNAL = "com.sun.org.apache.xerces.internal";
|
|
|
|
// name of default properties file to look for in JDK's jre/lib directory
|
|
private static final String DEFAULT_PROPERTIES_FILENAME =
|
|
@@ -514,12 +516,17 @@
|
|
//class. Restrict the access to the package classes as specified in java.security policy.
|
|
SecurityManager security = System.getSecurityManager();
|
|
try{
|
|
- if (security != null){
|
|
+ if (security != null){
|
|
+ if (className.startsWith(XALAN_INTERNAL) ||
|
|
+ className.startsWith(XERCES_INTERNAL)) {
|
|
+ cl = null;
|
|
+ } else {
|
|
final int lastDot = className.lastIndexOf(".");
|
|
String packageName = className;
|
|
if (lastDot != -1) packageName = className.substring(0, lastDot);
|
|
security.checkPackageAccess(packageName);
|
|
- }
|
|
+ }
|
|
+ }
|
|
}catch(SecurityException e){
|
|
throw e;
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java 2012-08-10 09:36:09.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -32,10 +32,14 @@
|
|
import java.security.PrivilegedAction;
|
|
import java.security.PrivilegedActionException;
|
|
import java.security.PrivilegedExceptionAction;
|
|
+import java.util.ListResourceBundle;
|
|
+import java.util.Locale;
|
|
+import java.util.MissingResourceException;
|
|
+import java.util.ResourceBundle;
|
|
|
|
/**
|
|
- * This class is duplicated for each subpackage so keep it in sync.
|
|
- * It is package private and therefore is not exposed as part of any API.
|
|
+ * This class is duplicated for each subpackage so keep it in sync. It is
|
|
+ * package private and therefore is not exposed as part of any API.
|
|
*
|
|
* @xerces.internal
|
|
*/
|
|
@@ -51,39 +55,39 @@
|
|
}
|
|
|
|
static ClassLoader getContextClassLoader() {
|
|
- return (ClassLoader)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
ClassLoader cl = null;
|
|
try {
|
|
cl = Thread.currentThread().getContextClassLoader();
|
|
- } catch (SecurityException ex) { }
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
return cl;
|
|
}
|
|
});
|
|
}
|
|
|
|
static ClassLoader getSystemClassLoader() {
|
|
- return (ClassLoader)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
ClassLoader cl = null;
|
|
try {
|
|
cl = ClassLoader.getSystemClassLoader();
|
|
- } catch (SecurityException ex) {}
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
return cl;
|
|
}
|
|
});
|
|
}
|
|
|
|
static ClassLoader getParentClassLoader(final ClassLoader cl) {
|
|
- return (ClassLoader)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
ClassLoader parent = null;
|
|
try {
|
|
parent = cl.getParent();
|
|
- } catch (SecurityException ex) {}
|
|
+ } catch (SecurityException ex) {
|
|
+ }
|
|
|
|
// eliminate loops in case of the boot
|
|
// ClassLoader returning itself as a parent
|
|
@@ -93,20 +97,25 @@
|
|
}
|
|
|
|
public static String getSystemProperty(final String propName) {
|
|
- return (String)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ return (String) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
return System.getProperty(propName);
|
|
}
|
|
});
|
|
}
|
|
|
|
+ public static String getSystemProperty(final String propName, final String def) {
|
|
+ return (String) AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return System.getProperty(propName, def);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
static FileInputStream getFileInputStream(final File file)
|
|
- throws FileNotFoundException
|
|
- {
|
|
+ throws FileNotFoundException {
|
|
try {
|
|
- return (FileInputStream)
|
|
- AccessController.doPrivileged(new PrivilegedExceptionAction() {
|
|
+ return (FileInputStream) AccessController.doPrivileged(new PrivilegedExceptionAction() {
|
|
public Object run() throws FileNotFoundException {
|
|
return new FileInputStream(file);
|
|
}
|
|
@@ -115,9 +124,10 @@
|
|
throw (FileNotFoundException)e.getException();
|
|
}
|
|
}
|
|
+
|
|
/**
|
|
- * Return resource using the same classloader for the ObjectFactory by default
|
|
- * or bootclassloader when Security Manager is in place
|
|
+ * Return resource using the same classloader for the ObjectFactory by
|
|
+ * default or bootclassloader when Security Manager is in place
|
|
*/
|
|
public static InputStream getResourceAsStream(final String name) {
|
|
if (System.getSecurityManager()!=null) {
|
|
@@ -128,10 +138,8 @@
|
|
}
|
|
|
|
public static InputStream getResourceAsStream(final ClassLoader cl,
|
|
- final String name)
|
|
- {
|
|
- return (InputStream)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ final String name) {
|
|
+ return (InputStream) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
InputStream ris;
|
|
if (cl == null) {
|
|
@@ -144,9 +152,40 @@
|
|
});
|
|
}
|
|
|
|
- static boolean getFileExists(final File f) {
|
|
- return ((Boolean)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name, the default locale, and the caller's class loader.
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified class name
|
|
+ * @return a resource bundle for the given base name and the default locale
|
|
+ */
|
|
+ public static ListResourceBundle getResourceBundle(String bundle) {
|
|
+ return getResourceBundle(bundle, Locale.getDefault());
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name and locale, and the caller's class loader.
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified class name
|
|
+ * @param locale the locale for which a resource bundle is desired
|
|
+ * @return a resource bundle for the given base name and locale
|
|
+ */
|
|
+ public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) {
|
|
+ return AccessController.doPrivileged(new PrivilegedAction<ListResourceBundle>() {
|
|
+ public ListResourceBundle run() {
|
|
+ try {
|
|
+ return (ListResourceBundle)ResourceBundle.getBundle(bundle, locale);
|
|
+ } catch (MissingResourceException e) {
|
|
+ try {
|
|
+ return (ListResourceBundle)ResourceBundle.getBundle(bundle, new Locale("en", "US"));
|
|
+ } catch (MissingResourceException e2) {
|
|
+ throw new MissingResourceException(
|
|
+ "Could not load any resource bundle by " + bundle, bundle, "");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ public static boolean getFileExists(final File f) {
|
|
+ return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
return f.exists() ? Boolean.TRUE : Boolean.FALSE;
|
|
}
|
|
@@ -154,13 +193,14 @@
|
|
}
|
|
|
|
static long getLastModified(final File f) {
|
|
- return ((Long)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ return ((Long) AccessController.doPrivileged(new PrivilegedAction() {
|
|
public Object run() {
|
|
return new Long(f.lastModified());
|
|
}
|
|
})).longValue();
|
|
}
|
|
|
|
- private SecuritySupport () {}
|
|
+
|
|
+ private SecuritySupport() {
|
|
+ }
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java 2012-08-10 09:36:09.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xslt/EnvironmentCheck.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -23,6 +23,7 @@
|
|
package com.sun.org.apache.xalan.internal.xslt;
|
|
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
import java.io.File;
|
|
import java.io.FileWriter;
|
|
@@ -574,7 +575,7 @@
|
|
// Grab java version for later use
|
|
try
|
|
{
|
|
- String javaVersion = System.getProperty("java.version");
|
|
+ String javaVersion = SecuritySupport.getSystemProperty("java.version");
|
|
|
|
h.put("java.version", javaVersion);
|
|
}
|
|
@@ -593,7 +594,7 @@
|
|
{
|
|
|
|
// This is present in all JVM's
|
|
- String cp = System.getProperty("java.class.path");
|
|
+ String cp = SecuritySupport.getSystemProperty("java.class.path");
|
|
|
|
h.put("java.class.path", cp);
|
|
|
|
@@ -603,7 +604,7 @@
|
|
h.put(FOUNDCLASSES + "java.class.path", classpathJars);
|
|
|
|
// Also check for JDK 1.2+ type classpaths
|
|
- String othercp = System.getProperty("sun.boot.class.path");
|
|
+ String othercp = SecuritySupport.getSystemProperty("sun.boot.class.path");
|
|
|
|
if (null != othercp)
|
|
{
|
|
@@ -617,7 +618,7 @@
|
|
|
|
//@todo NOTE: We don't actually search java.ext.dirs for
|
|
// *.jar files therein! This should be updated
|
|
- othercp = System.getProperty("java.ext.dirs");
|
|
+ othercp = SecuritySupport.getSystemProperty("java.ext.dirs");
|
|
|
|
if (null != othercp)
|
|
{
|
|
@@ -1005,7 +1006,7 @@
|
|
{
|
|
Class clazz = ObjectFactory.findProviderClass(DOM_CLASS, true);
|
|
|
|
- Method method = clazz.getMethod(DOM_LEVEL3_METHOD, null);
|
|
+ Method method = clazz.getMethod(DOM_LEVEL3_METHOD, (Class<?>[])null);
|
|
|
|
// If we succeeded, we have loaded interfaces from a
|
|
// level 3 DOM somewhere
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java 2012-08-10 09:36:09.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xslt/Process.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -57,6 +57,7 @@
|
|
import com.sun.org.apache.xalan.internal.res.XSLTErrorResources;
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
import com.sun.org.apache.xalan.internal.utils.ConfigurationError;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
//J2SE does not support Xalan interpretive
|
|
/*
|
|
@@ -180,7 +181,7 @@
|
|
java.io.PrintWriter diagnosticsWriter = new PrintWriter(System.err, true);
|
|
java.io.PrintWriter dumpWriter = diagnosticsWriter;
|
|
ResourceBundle resbundle =
|
|
- (XSLMessages.loadResourceBundle(
|
|
+ (SecuritySupport.getResourceBundle(
|
|
com.sun.org.apache.xml.internal.utils.res.XResourceBundle.ERROR_RESOURCES));
|
|
String flavor = "s2s";
|
|
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2012-08-10 09:36:18.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -410,7 +410,7 @@
|
|
}
|
|
}
|
|
catch (TypeCheckError e) {
|
|
- reportError(ERROR, new ErrorMsg(e));
|
|
+ reportError(ERROR, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
}
|
|
|
|
@@ -430,7 +430,7 @@
|
|
}
|
|
catch (IOException e) {
|
|
if (_xsltc.debug()) e.printStackTrace();
|
|
- reportError(ERROR,new ErrorMsg(e));
|
|
+ reportError(ERROR,new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
catch (SAXException e) {
|
|
Throwable ex = e.getException();
|
|
@@ -438,15 +438,15 @@
|
|
e.printStackTrace();
|
|
if (ex != null) ex.printStackTrace();
|
|
}
|
|
- reportError(ERROR, new ErrorMsg(e));
|
|
+ reportError(ERROR, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
catch (CompilerException e) {
|
|
if (_xsltc.debug()) e.printStackTrace();
|
|
- reportError(ERROR, new ErrorMsg(e));
|
|
+ reportError(ERROR, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
catch (Exception e) {
|
|
if (_xsltc.debug()) e.printStackTrace();
|
|
- reportError(ERROR, new ErrorMsg(e));
|
|
+ reportError(ERROR, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
return null;
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2012-08-10 09:36:22.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -41,10 +41,12 @@
|
|
import java.util.jar.Manifest;
|
|
|
|
import com.sun.org.apache.bcel.internal.classfile.JavaClass;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
|
|
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util;
|
|
import com.sun.org.apache.xml.internal.dtm.DTM;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import org.xml.sax.InputSource;
|
|
import org.xml.sax.XMLReader;
|
|
|
|
@@ -278,7 +280,7 @@
|
|
return compile(input, _className);
|
|
}
|
|
catch (IOException e) {
|
|
- _parser.reportError(Constants.FATAL, new ErrorMsg(e));
|
|
+ _parser.reportError(Constants.FATAL, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
return false;
|
|
}
|
|
}
|
|
@@ -297,7 +299,7 @@
|
|
return compile(input, name);
|
|
}
|
|
catch (IOException e) {
|
|
- _parser.reportError(Constants.FATAL, new ErrorMsg(e));
|
|
+ _parser.reportError(Constants.FATAL, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
return false;
|
|
}
|
|
}
|
|
@@ -382,11 +384,11 @@
|
|
}
|
|
catch (Exception e) {
|
|
/*if (_debug)*/ e.printStackTrace();
|
|
- _parser.reportError(Constants.FATAL, new ErrorMsg(e));
|
|
+ _parser.reportError(Constants.FATAL, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
catch (Error e) {
|
|
if (_debug) e.printStackTrace();
|
|
- _parser.reportError(Constants.FATAL, new ErrorMsg(e));
|
|
+ _parser.reportError(Constants.FATAL, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
|
|
}
|
|
finally {
|
|
_reader = null; // reset this here to be sure it is not re-used
|
|
@@ -594,7 +596,7 @@
|
|
*/
|
|
public boolean setDestDirectory(String dstDirName) {
|
|
final File dir = new File(dstDirName);
|
|
- if (dir.exists() || dir.mkdirs()) {
|
|
+ if (SecuritySupport.getFileExists(dir) || dir.mkdirs()) {
|
|
_destDir = dir;
|
|
return true;
|
|
}
|
|
@@ -767,7 +769,7 @@
|
|
String parentDir = outFile.getParent();
|
|
if (parentDir != null) {
|
|
File parentFile = new File(parentDir);
|
|
- if (!parentFile.exists())
|
|
+ if (!SecuritySupport.getFileExists(parentFile))
|
|
parentFile.mkdirs();
|
|
}
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java 2012-08-10 09:36:23.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -997,7 +997,12 @@
|
|
"kilobytes. This is usually caused by templates in a stylesheet " +
|
|
"that are very large. Try restructuring your stylesheet to use " +
|
|
"smaller templates."
|
|
- }
|
|
+ },
|
|
+
|
|
+ {ErrorMsg.DESERIALIZE_TRANSLET_ERR, "When Java security is enabled, " +
|
|
+ "support for deserializing TemplatesImpl is disabled." +
|
|
+ "This can be overridden by setting the jdk.xml.enableTemplatesImplDeserialization" +
|
|
+ " system property to true."}
|
|
|
|
};
|
|
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java 2012-08-10 09:36:25.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -23,6 +23,7 @@
|
|
|
|
package com.sun.org.apache.xalan.internal.xsltc.compiler.util;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.text.MessageFormat;
|
|
import java.util.Locale;
|
|
import java.util.ResourceBundle;
|
|
@@ -46,6 +47,8 @@
|
|
Object[] _params = null;
|
|
private boolean _isWarningError;
|
|
|
|
+ Throwable _cause;
|
|
+
|
|
// Compiler error messages
|
|
public static final String MULTIPLE_STYLESHEET_ERR = "MULTIPLE_STYLESHEET_ERR";
|
|
public static final String TEMPLATE_REDEF_ERR = "TEMPLATE_REDEF_ERR";
|
|
@@ -165,6 +168,8 @@
|
|
public static final String OUTLINE_ERR_METHOD_TOO_BIG =
|
|
"OUTLINE_ERR_METHOD_TOO_BIG";
|
|
|
|
+ public static final String DESERIALIZE_TRANSLET_ERR = "DESERIALIZE_TEMPLATES_ERR";
|
|
+
|
|
// All error messages are localized and are stored in resource bundles.
|
|
// This array and the following 4 strings are read from that bundle.
|
|
private static ResourceBundle _bundle;
|
|
@@ -175,7 +180,7 @@
|
|
public final static String RUNTIME_ERROR_KEY = "RUNTIME_ERROR_KEY";
|
|
|
|
static {
|
|
- _bundle = ResourceBundle.getBundle(
|
|
+ _bundle = SecuritySupport.getResourceBundle(
|
|
"com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMessages",
|
|
Locale.getDefault());
|
|
}
|
|
@@ -185,10 +190,11 @@
|
|
_line = 0;
|
|
}
|
|
|
|
- public ErrorMsg(Throwable e) {
|
|
- _code = null;
|
|
+ public ErrorMsg(String code, Throwable e) {
|
|
+ _code = code;
|
|
_message = e.getMessage();
|
|
_line = 0;
|
|
+ _cause = e;
|
|
}
|
|
|
|
public ErrorMsg(String message, int line) {
|
|
@@ -240,6 +246,10 @@
|
|
_params[1] = param2;
|
|
}
|
|
|
|
+ public Throwable getCause() {
|
|
+ return _cause;
|
|
+ }
|
|
+
|
|
private String getFileName(SyntaxTreeNode node) {
|
|
Stylesheet stylesheet = node.getStylesheet();
|
|
if (stylesheet != null)
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java 2012-08-10 09:36:26.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/Util.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.StringTokenizer;
|
|
|
|
import com.sun.org.apache.bcel.internal.generic.Type;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import com.sun.org.apache.xalan.internal.xsltc.compiler.Constants;
|
|
import com.sun.org.apache.xml.internal.utils.XML11Char;
|
|
|
|
@@ -37,7 +38,7 @@
|
|
private static char filesep;
|
|
|
|
static {
|
|
- String temp = System.getProperty("file.separator", "/");
|
|
+ String temp = SecuritySupport.getSystemProperty("file.separator", "/");
|
|
filesep = temp.charAt(0);
|
|
}
|
|
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java 2012-08-10 09:36:28.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/dom/NodeSortRecord.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -33,6 +33,7 @@
|
|
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
|
|
import com.sun.org.apache.xml.internal.utils.StringComparable;
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* Base class for sort records containing application specific sort keys
|
|
@@ -112,7 +113,7 @@
|
|
try {
|
|
// -- W. Eliot Kimber (eliot@isogen.com)
|
|
colFactClassname =
|
|
- System.getProperty("com.sun.org.apache.xalan.internal.xsltc.COLLATOR_FACTORY");
|
|
+ SecuritySupport.getSystemProperty("com.sun.org.apache.xalan.internal.xsltc.COLLATOR_FACTORY");
|
|
}
|
|
catch (SecurityException e) {
|
|
// If we can't read the propery, just use default collator
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java 2012-08-10 09:36:29.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -23,6 +23,7 @@
|
|
|
|
package com.sun.org.apache.xalan.internal.xsltc.runtime;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormatSymbols;
|
|
import java.text.FieldPosition;
|
|
@@ -1583,7 +1584,7 @@
|
|
|
|
static {
|
|
String resource = "com.sun.org.apache.xalan.internal.xsltc.runtime.ErrorMessages";
|
|
- m_bundle = ResourceBundle.getBundle(resource);
|
|
+ m_bundle = SecuritySupport.getResourceBundle(resource);
|
|
}
|
|
|
|
/**
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java 2012-08-10 09:36:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/output/WriterOutputBuffer.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -23,6 +23,7 @@
|
|
|
|
package com.sun.org.apache.xalan.internal.xsltc.runtime.output;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.io.BufferedWriter;
|
|
import java.io.IOException;
|
|
import java.io.Writer;
|
|
@@ -36,7 +37,7 @@
|
|
|
|
static {
|
|
// Set a larger buffer size for Solaris
|
|
- final String osName = System.getProperty("os.name");
|
|
+ final String osName = SecuritySupport.getSystemProperty("os.name");
|
|
if (osName.equalsIgnoreCase("solaris")) {
|
|
BUFFER_SIZE = 32 * KB;
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java 2012-08-10 09:36:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -43,6 +43,7 @@
|
|
import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;
|
|
import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable;
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* @author Morten Jorgensen
|
|
@@ -52,6 +53,8 @@
|
|
*/
|
|
public final class TemplatesImpl implements Templates, Serializable {
|
|
static final long serialVersionUID = 673094361519270707L;
|
|
+ public final static String DESERIALIZE_TRANSLET = "jdk.xml.enableTemplatesImplDeserialization";
|
|
+
|
|
/**
|
|
* Name of the superclass of all translets. This is needed to
|
|
* determine which, among all classes comprising a translet,
|
|
@@ -186,6 +189,15 @@
|
|
private void readObject(ObjectInputStream is)
|
|
throws IOException, ClassNotFoundException
|
|
{
|
|
+ SecurityManager security = System.getSecurityManager();
|
|
+ if (security != null){
|
|
+ String temp = SecuritySupport.getSystemProperty(DESERIALIZE_TRANSLET);
|
|
+ if (temp == null || !(temp.length()==0 || temp.equalsIgnoreCase("true"))) {
|
|
+ ErrorMsg err = new ErrorMsg(ErrorMsg.DESERIALIZE_TRANSLET_ERR);
|
|
+ throw new UnsupportedOperationException(err.toString());
|
|
+ }
|
|
+ }
|
|
+
|
|
is.defaultReadObject();
|
|
if (is.readBoolean()) {
|
|
_uriResolver = (URIResolver) is.readObject();
|
|
--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2012-08-10 09:36:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -73,7 +73,7 @@
|
|
import com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager;
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
|
|
-
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
import org.xml.sax.InputSource;
|
|
import org.xml.sax.XMLFilter;
|
|
@@ -881,8 +881,14 @@
|
|
// Check that the transformation went well before returning
|
|
if (bytecodes == null) {
|
|
|
|
- ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR);
|
|
- TransformerConfigurationException exc = new TransformerConfigurationException(err.toString());
|
|
+ Vector errs = xsltc.getErrors();
|
|
+ ErrorMsg err = null;
|
|
+ if (errs != null) {
|
|
+ err = (ErrorMsg)errs.get(errs.size()-1);
|
|
+ } else {
|
|
+ err = new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR);
|
|
+ }
|
|
+ TransformerConfigurationException exc = new TransformerConfigurationException(err.toString(), err.getCause());
|
|
|
|
// Pass compiler errors to the error listener
|
|
if (_errorListener != null) {
|
|
@@ -1229,7 +1235,7 @@
|
|
// Find the parent directory of the translet.
|
|
String transletParentDir = transletFile.getParent();
|
|
if (transletParentDir == null)
|
|
- transletParentDir = System.getProperty("user.dir");
|
|
+ transletParentDir = SecuritySupport.getSystemProperty("user.dir");
|
|
|
|
File transletParentFile = new File(transletParentDir);
|
|
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java 2012-08-10 09:36:33.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,10 +20,10 @@
|
|
|
|
|
|
package com.sun.org.apache.xerces.internal.dom;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
|
|
/**
|
|
* Used to format DOM error messages, using the system locale.
|
|
@@ -31,6 +31,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Sandy Gao, IBM
|
|
+ * @version $Id: DOMMessageFormatter.java,v 1.6 2010-11-01 04:39:38 joehw Exp $
|
|
*/
|
|
public class DOMMessageFormatter {
|
|
public static final String DOM_DOMAIN = "http://www.w3.org/dom/DOMTR";
|
|
@@ -122,13 +123,13 @@
|
|
*/
|
|
public static void init(){
|
|
if (locale != null) {
|
|
- domResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.DOMMessages", locale);
|
|
- serResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSerializerMessages", locale);
|
|
- xmlResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ domResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.DOMMessages", locale);
|
|
+ serResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSerializerMessages", locale);
|
|
+ xmlResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
}else{
|
|
- domResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.DOMMessages");
|
|
- serResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSerializerMessages");
|
|
- xmlResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ domResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.DOMMessages");
|
|
+ serResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSerializerMessages");
|
|
+ xmlResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
}
|
|
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2012-08-10 09:36:39.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -51,6 +51,7 @@
|
|
import com.sun.org.apache.xerces.internal.xni.XNIException;
|
|
import com.sun.org.apache.xerces.internal.xni.parser.*;
|
|
import com.sun.org.apache.xerces.internal.impl.Constants;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import com.sun.xml.internal.stream.Entity;
|
|
import com.sun.org.apache.xerces.internal.xni.Augmentations;
|
|
|
|
@@ -1727,7 +1728,7 @@
|
|
// get the user.dir property
|
|
String userDir = "";
|
|
try {
|
|
- userDir = System.getProperty("user.dir");
|
|
+ userDir = SecuritySupport.getSystemProperty("user.dir");
|
|
}
|
|
catch (SecurityException se) {
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java 2012-08-10 09:36:42.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/dv/DatatypeException.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,6 +20,7 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.impl.dv;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.ResourceBundle;
|
|
import java.util.PropertyResourceBundle;
|
|
import java.util.MissingResourceException;
|
|
@@ -34,6 +35,7 @@
|
|
*
|
|
* @author Sandy Gao, IBM
|
|
*
|
|
+ * @version $Id: DatatypeException.java,v 1.6 2010-11-01 04:39:43 joehw Exp $
|
|
*/
|
|
public class DatatypeException extends Exception {
|
|
|
|
@@ -84,7 +86,7 @@
|
|
*/
|
|
public String getMessage() {
|
|
ResourceBundle resourceBundle = null;
|
|
- resourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
|
|
+ resourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
|
|
if (resourceBundle == null)
|
|
throw new MissingResourceException("Property file not found!", "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", key);
|
|
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,12 +20,11 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.impl.msg;
|
|
|
|
+import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
-
|
|
-import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +33,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter.java 3020 2011-02-28 23:51:33Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter implements MessageFormatter {
|
|
@@ -72,12 +71,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_de.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_de.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_de.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_de implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_es.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_es.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_es.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_es implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_fr.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_fr.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_fr.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_fr implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_it.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_it.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_it.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_it implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java 2012-08-10 09:36:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_ja.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_ja.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_ja implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java 2012-08-10 09:36:53.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ko.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_ko.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_ko.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_ko implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java 2012-08-10 09:36:53.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_pt_BR.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_pt_BR.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_pt_BR.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_pt_BR implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java 2012-08-10 09:36:53.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_sv.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_sv.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_sv.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_sv implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java 2012-08-10 09:36:53.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_CN.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_zh_CN.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_zh_CN.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_zh_CN implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java 2012-08-10 09:36:53.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_zh_TW.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -26,6 +26,7 @@
|
|
import java.util.PropertyResourceBundle;
|
|
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for
|
|
@@ -34,7 +35,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Eric Ye, IBM
|
|
- * @version $Id: XMLMessageFormatter_zh_TW.java 3021 2011-03-01 00:12:28Z joehw $
|
|
+ * @version $Id: XMLMessageFormatter_zh_TW.java 3094 2012-03-21 05:50:01Z joehw $
|
|
*
|
|
*/
|
|
public class XMLMessageFormatter_zh_TW implements MessageFormatter {
|
|
@@ -72,12 +73,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java 2012-08-10 09:36:59.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/regex/RegexParser.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,6 +20,7 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.impl.xpath.regex;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
@@ -95,10 +96,10 @@
|
|
public void setLocale(Locale locale) {
|
|
try {
|
|
if (locale != null) {
|
|
- this.resources = ResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.xpath.regex.message", locale);
|
|
+ this.resources = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.xpath.regex.message", locale);
|
|
}
|
|
else {
|
|
- this.resources = ResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.xpath.regex.message");
|
|
+ this.resources = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.xpath.regex.message");
|
|
}
|
|
}
|
|
catch (MissingResourceException mre) {
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java 2012-08-10 09:37:02.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/XSMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,11 +20,11 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.impl.xs;
|
|
|
|
+import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
-import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
|
|
|
|
/**
|
|
@@ -34,6 +34,7 @@
|
|
* @xerces.internal
|
|
*
|
|
* @author Elena Litani, IBM
|
|
+ * @version $Id: XSMessageFormatter.java,v 1.6 2010-11-01 04:39:55 joehw Exp $
|
|
*/
|
|
public class XSMessageFormatter implements MessageFormatter {
|
|
/**
|
|
@@ -66,12 +67,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
|
|
}
|
|
|
|
String msg = fResourceBundle.getString(key);
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java 2012-08-10 09:37:14.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/JAXPValidationMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,15 +20,16 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.jaxp.validation;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
|
|
/**
|
|
* <p>Used to format JAXP Validation API error messages using a specified locale.</p>
|
|
*
|
|
* @author Michael Glavassevich, IBM
|
|
+ * @version $Id: JAXPValidationMessageFormatter.java,v 1.5 2010-11-01 04:40:08 joehw Exp $
|
|
*/
|
|
final class JAXPValidationMessageFormatter {
|
|
|
|
@@ -54,11 +55,11 @@
|
|
ResourceBundle resourceBundle = null;
|
|
if (locale != null) {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages", locale);
|
|
+ SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages", locale);
|
|
}
|
|
else {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages");
|
|
+ SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java 2012-08-10 09:37:18.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,15 +20,16 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.util;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
-import java.util.PropertyResourceBundle;
|
|
import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* <p>Used to format JAXP 1.3 Datatype API error messages using a specified locale.</p>
|
|
*
|
|
* @author Neeraj Bajaj, Sun Microsystems
|
|
+ * @version $Id: DatatypeMessageFormatter.java,v 1.6 2010-11-01 04:40:14 joehw Exp $
|
|
*/
|
|
public class DatatypeMessageFormatter {
|
|
|
|
@@ -56,11 +57,11 @@
|
|
ResourceBundle resourceBundle = null;
|
|
if (locale != null) {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle(BASE_NAME, locale);
|
|
+ SecuritySupport.getResourceBundle(BASE_NAME, locale);
|
|
}
|
|
else {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle(BASE_NAME);
|
|
+ SecuritySupport.getResourceBundle(BASE_NAME);
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java 2012-08-10 09:37:19.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -19,16 +19,17 @@
|
|
*/
|
|
package com.sun.org.apache.xerces.internal.util;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
|
|
/**
|
|
* Used to format SAX error messages using a specified locale.
|
|
*
|
|
* @author Michael Glavassevich, IBM
|
|
*
|
|
+ * @version $Id: SAXMessageFormatter.java,v 1.6 2010-11-01 04:40:14 joehw Exp $
|
|
*/
|
|
public class SAXMessageFormatter {
|
|
|
|
@@ -54,11 +55,11 @@
|
|
ResourceBundle resourceBundle = null;
|
|
if (locale != null) {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.SAXMessages", locale);
|
|
+ SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.SAXMessages", locale);
|
|
}
|
|
else {
|
|
resourceBundle =
|
|
- PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.SAXMessages");
|
|
+ SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.SAXMessages");
|
|
}
|
|
|
|
// format message
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java 2012-08-10 09:37:20.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -61,6 +61,8 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.util;
|
|
import com.sun.org.apache.xerces.internal.impl.Constants;
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
/**
|
|
* This class is a container for parser settings that relate to
|
|
* security, or more specifically, it is intended to be used to prevent denial-of-service
|
|
@@ -77,6 +79,7 @@
|
|
*
|
|
* @author Neil Graham, IBM
|
|
*
|
|
+ * @version $Id: SecurityManager.java,v 1.5 2010-11-01 04:40:14 joehw Exp $
|
|
*/
|
|
public final class SecurityManager {
|
|
|
|
@@ -176,41 +179,48 @@
|
|
|
|
private void readSystemProperties(){
|
|
|
|
- //TODO: also read SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT
|
|
- try {
|
|
- String value = System.getProperty(Constants.ENTITY_EXPANSION_LIMIT);
|
|
- if(value != null && !value.equals("")){
|
|
- entityExpansionLimit = Integer.parseInt(value);
|
|
- if (entityExpansionLimit < 0)
|
|
- entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT;
|
|
- }
|
|
- else
|
|
- entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT;
|
|
- }catch(Exception ex){}
|
|
-
|
|
- try {
|
|
- String value = System.getProperty(Constants.MAX_OCCUR_LIMIT);
|
|
- if(value != null && !value.equals("")){
|
|
- maxOccurLimit = Integer.parseInt(value);
|
|
- if (maxOccurLimit < 0)
|
|
- maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT;
|
|
- }
|
|
- else
|
|
- maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT;
|
|
- }catch(Exception ex){}
|
|
-
|
|
- try {
|
|
- String value = System.getProperty(Constants.SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT);
|
|
- if(value != null && !value.equals("")){
|
|
- fElementAttributeLimit = Integer.parseInt(value);
|
|
- if ( fElementAttributeLimit < 0)
|
|
- fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
|
|
- }
|
|
- else
|
|
- fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
|
|
+ //TODO: also read SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT
|
|
+ try {
|
|
+ String value = getSystemProperty(Constants.ENTITY_EXPANSION_LIMIT);
|
|
+ if(value != null && !value.equals("")){
|
|
+ entityExpansionLimit = Integer.parseInt(value);
|
|
+ if (entityExpansionLimit < 0)
|
|
+ entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT;
|
|
+ }
|
|
+ else
|
|
+ entityExpansionLimit = DEFAULT_ENTITY_EXPANSION_LIMIT;
|
|
+ }catch(Exception ex){}
|
|
+
|
|
+ try {
|
|
+ String value = getSystemProperty(Constants.MAX_OCCUR_LIMIT);
|
|
+ if(value != null && !value.equals("")){
|
|
+ maxOccurLimit = Integer.parseInt(value);
|
|
+ if (maxOccurLimit < 0)
|
|
+ maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT;
|
|
+ }
|
|
+ else
|
|
+ maxOccurLimit = DEFAULT_MAX_OCCUR_NODE_LIMIT;
|
|
+ }catch(Exception ex){}
|
|
+
|
|
+ try {
|
|
+ String value = getSystemProperty(Constants.SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT);
|
|
+ if(value != null && !value.equals("")){
|
|
+ fElementAttributeLimit = Integer.parseInt(value);
|
|
+ if ( fElementAttributeLimit < 0)
|
|
+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
|
|
+ }
|
|
+ else
|
|
+ fElementAttributeLimit = DEFAULT_ELEMENT_ATTRIBUTE_LIMIT;
|
|
|
|
}catch(Exception ex){}
|
|
|
|
}
|
|
|
|
+ private String getSystemProperty(final String propName) {
|
|
+ return AccessController.doPrivileged(new PrivilegedAction<String>() {
|
|
+ public String run() {
|
|
+ return System.getProperty(propName);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
} // class SecurityManager
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java 2012-08-10 09:37:21.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -48,6 +48,7 @@
|
|
//
|
|
// Constants
|
|
//
|
|
+ private static final String DEFAULT_INTERNAL_CLASSES = "com.sun.org.apache.";
|
|
|
|
// name of default properties file to look for in JDK's jre/lib directory
|
|
private static final String DEFAULT_PROPERTIES_FILENAME = "xerces.properties";
|
|
@@ -305,10 +306,14 @@
|
|
//restrict the access to package as speicified in java.security policy
|
|
SecurityManager security = System.getSecurityManager();
|
|
if (security != null) {
|
|
- final int lastDot = className.lastIndexOf(".");
|
|
- String packageName = className;
|
|
- if (lastDot != -1) packageName = className.substring(0, lastDot);
|
|
- security.checkPackageAccess(packageName);
|
|
+ if (className.startsWith(DEFAULT_INTERNAL_CLASSES)) {
|
|
+ cl = null;
|
|
+ } else {
|
|
+ final int lastDot = className.lastIndexOf(".");
|
|
+ String packageName = className;
|
|
+ if (lastDot != -1) packageName = className.substring(0, lastDot);
|
|
+ security.checkPackageAccess(packageName);
|
|
+ }
|
|
}
|
|
Class providerClass;
|
|
if (cl == null) {
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java 2012-08-10 09:37:21.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -29,6 +29,10 @@
|
|
import java.security.PrivilegedAction;
|
|
import java.security.PrivilegedActionException;
|
|
import java.security.PrivilegedExceptionAction;
|
|
+import java.util.Locale;
|
|
+import java.util.MissingResourceException;
|
|
+import java.util.PropertyResourceBundle;
|
|
+import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* This class is duplicated for each subpackage so keep it in sync.
|
|
@@ -141,6 +145,38 @@
|
|
});
|
|
}
|
|
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name, the default locale, and the caller's class loader.
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified class name
|
|
+ * @return a resource bundle for the given base name and the default locale
|
|
+ */
|
|
+ public static ResourceBundle getResourceBundle(String bundle) {
|
|
+ return getResourceBundle(bundle, Locale.getDefault());
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets a resource bundle using the specified base name and locale, and the caller's class loader.
|
|
+ * @param bundle the base name of the resource bundle, a fully qualified class name
|
|
+ * @param locale the locale for which a resource bundle is desired
|
|
+ * @return a resource bundle for the given base name and locale
|
|
+ */
|
|
+ public static ResourceBundle getResourceBundle(final String bundle, final Locale locale) {
|
|
+ return AccessController.doPrivileged(new PrivilegedAction<ResourceBundle>() {
|
|
+ public ResourceBundle run() {
|
|
+ try {
|
|
+ return PropertyResourceBundle.getBundle(bundle, locale);
|
|
+ } catch (MissingResourceException e) {
|
|
+ try {
|
|
+ return PropertyResourceBundle.getBundle(bundle, new Locale("en", "US"));
|
|
+ } catch (MissingResourceException e2) {
|
|
+ throw new MissingResourceException(
|
|
+ "Could not load any resource bundle by " + bundle, bundle, "");
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
static boolean getFileExists(final File f) {
|
|
return ((Boolean)
|
|
AccessController.doPrivileged(new PrivilegedAction() {
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java 2012-08-10 09:37:22.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -20,11 +20,11 @@
|
|
|
|
package com.sun.org.apache.xerces.internal.xinclude;
|
|
|
|
+import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
import java.util.ResourceBundle;
|
|
-import java.util.PropertyResourceBundle;
|
|
-import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
|
|
// TODO: fix error messages in XIncludeMessages.properties
|
|
/**
|
|
@@ -32,6 +32,7 @@
|
|
*
|
|
* @author Peter McCracken, IBM
|
|
*
|
|
+ * @version $Id: XIncludeMessageFormatter.java,v 1.7 2010-11-01 04:40:18 joehw Exp $
|
|
*/
|
|
public class XIncludeMessageFormatter implements MessageFormatter {
|
|
|
|
@@ -61,12 +62,12 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XIncludeMessages", locale);
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XIncludeMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XIncludeMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.XIncludeMessages");
|
|
}
|
|
|
|
String msg = fResourceBundle.getString(key);
|
|
--- jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java 2012-08-10 09:37:27.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,6 +24,7 @@
|
|
import java.util.ResourceBundle;
|
|
import java.util.PropertyResourceBundle;
|
|
import com.sun.org.apache.xerces.internal.util.MessageFormatter;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* XPointerMessageFormatter provides error messages for the XPointer Framework
|
|
@@ -31,6 +32,7 @@
|
|
*
|
|
* @xerces.internal
|
|
*
|
|
+ * @version $Id: XPointerMessageFormatter.java,v 1.5 2010-11-01 04:40:26 joehw Exp $
|
|
*/
|
|
class XPointerMessageFormatter implements MessageFormatter {
|
|
|
|
@@ -64,14 +66,14 @@
|
|
|
|
if (fResourceBundle == null || locale != fLocale) {
|
|
if (locale != null) {
|
|
- fResourceBundle = PropertyResourceBundle.getBundle(
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle(
|
|
"com.sun.org.apache.xerces.internal.impl.msg.XPointerMessages", locale);
|
|
// memorize the most-recent locale
|
|
fLocale = locale;
|
|
}
|
|
if (fResourceBundle == null)
|
|
- fResourceBundle = PropertyResourceBundle
|
|
- .getBundle("com.sun.org.apache.xerces.internal.impl.msg.XPointerMessages");
|
|
+ fResourceBundle = SecuritySupport.getResourceBundle(
|
|
+ "com.sun.org.apache.xerces.internal.impl.msg.XPointerMessages");
|
|
}
|
|
|
|
String msg = fResourceBundle.getString(key);
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java 2012-08-10 09:37:37.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/dtm/DTMManager.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -27,6 +27,7 @@
|
|
import com.sun.org.apache.xml.internal.utils.PrefixResolver;
|
|
import com.sun.org.apache.xml.internal.utils.XMLStringFactory;
|
|
import com.sun.org.apache.xalan.internal.utils.ObjectFactory;
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* A DTMManager instance can be used to create DTM and
|
|
@@ -383,7 +384,7 @@
|
|
{
|
|
try
|
|
{
|
|
- debug = System.getProperty("dtm.debug") != null;
|
|
+ debug = SecuritySupport.getSystemProperty("dtm.debug") != null;
|
|
}
|
|
catch (SecurityException ex){}
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java 2012-08-10 09:37:40.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java 2012-08-10 09:37:40.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ca.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -443,67 +440,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("ca", "ES"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_cs.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -443,67 +440,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("cs", "CZ"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_de.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_es.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_fr.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_it.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ja.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_ko.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_pt_BR.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -25,9 +25,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -463,67 +460,4 @@
|
|
return msgCopy;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sk.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -443,67 +440,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_sv.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -452,68 +449,4 @@
|
|
protected Object[][] getContents() {
|
|
return _contents;
|
|
}
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_tr.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -443,67 +440,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("tr", "TR"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_CN.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLErrorResources_zh_TW.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -453,67 +450,4 @@
|
|
return _contents;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XMLErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XMLErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/res/XMLMessages.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/res/XMLMessages.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -22,10 +22,9 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.res;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.util.ListResourceBundle;
|
|
import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* A utility class for issuing XML error messages.
|
|
@@ -82,8 +81,9 @@
|
|
*/
|
|
public static final String createXMLMessage(String msgKey, Object args[])
|
|
{
|
|
- if (XMLBundle == null)
|
|
- XMLBundle = loadResourceBundle(XML_ERROR_RESOURCES);
|
|
+ if (XMLBundle == null) {
|
|
+ XMLBundle = SecuritySupport.getResourceBundle(XML_ERROR_RESOURCES);
|
|
+ }
|
|
|
|
if (XMLBundle != null)
|
|
{
|
|
@@ -156,61 +156,4 @@
|
|
return fmsg;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className The class name of the resource bundle.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static ListResourceBundle loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
- Locale locale = Locale.getDefault();
|
|
-
|
|
- try
|
|
- {
|
|
- return (ListResourceBundle)ResourceBundle.getBundle(className, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (ListResourceBundle)ResourceBundle.getBundle(
|
|
- className, new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles." + className, className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which can be appended to a resource name
|
|
- */
|
|
- protected static String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java 2012-08-10 09:37:41.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/resolver/Catalog.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -24,6 +24,7 @@
|
|
package com.sun.org.apache.xml.internal.resolver;
|
|
|
|
import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.io.IOException;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.InputStream;
|
|
@@ -821,7 +822,7 @@
|
|
// tack on a basename because URLs point to files not dirs
|
|
catalogCwd = FileURL.makeURL("basename");
|
|
} catch (MalformedURLException e) {
|
|
- String userdir = System.getProperty("user.dir");
|
|
+ String userdir = SecuritySupport.getSystemProperty("user.dir");
|
|
userdir.replace('\\', '/');
|
|
catalogManager.debug.message(1, "Malformed URL on cwd", userdir);
|
|
catalogCwd = null;
|
|
@@ -1717,7 +1718,7 @@
|
|
protected String resolveLocalSystem(String systemId)
|
|
throws MalformedURLException, IOException {
|
|
|
|
- String osname = System.getProperty("os.name");
|
|
+ String osname = SecuritySupport.getSystemProperty("os.name");
|
|
boolean windows = (osname.indexOf("Windows") >= 0);
|
|
Enumeration en = catalogEntries.elements();
|
|
while (en.hasMoreElements()) {
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java 2012-08-10 09:37:42.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -23,6 +23,7 @@
|
|
|
|
package com.sun.org.apache.xml.internal.resolver;
|
|
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.io.InputStream;
|
|
|
|
import java.net.URL;
|
|
@@ -142,8 +143,8 @@
|
|
|
|
/** Flag to ignore missing property files and/or properties */
|
|
private boolean ignoreMissingProperties
|
|
- = (System.getProperty(pIgnoreMissing) != null
|
|
- || System.getProperty(pFiles) != null);
|
|
+ = (SecuritySupport.getSystemProperty(pIgnoreMissing) != null
|
|
+ || SecuritySupport.getSystemProperty(pFiles) != null);
|
|
|
|
/** Holds the resources after they are loaded from the file. */
|
|
private ResourceBundle resources;
|
|
@@ -338,7 +339,7 @@
|
|
private int queryVerbosity () {
|
|
String defaultVerbStr = Integer.toString(defaultVerbosity);
|
|
|
|
- String verbStr = System.getProperty(pVerbosity);
|
|
+ String verbStr = SecuritySupport.getSystemProperty(pVerbosity);
|
|
|
|
if (verbStr == null) {
|
|
if (resources==null) readProperties();
|
|
@@ -473,7 +474,7 @@
|
|
* @return A semicolon delimited list of catlog file URIs
|
|
*/
|
|
private String queryCatalogFiles () {
|
|
- String catalogList = System.getProperty(pFiles);
|
|
+ String catalogList = SecuritySupport.getSystemProperty(pFiles);
|
|
fromPropertiesFile = false;
|
|
|
|
if (catalogList == null) {
|
|
@@ -558,7 +559,7 @@
|
|
* defaultPreferSetting.
|
|
*/
|
|
private boolean queryPreferPublic () {
|
|
- String prefer = System.getProperty(pPrefer);
|
|
+ String prefer = SecuritySupport.getSystemProperty(pPrefer);
|
|
|
|
if (prefer == null) {
|
|
if (resources==null) readProperties();
|
|
@@ -617,7 +618,7 @@
|
|
* defaultUseStaticCatalog.
|
|
*/
|
|
private boolean queryUseStaticCatalog () {
|
|
- String staticCatalog = System.getProperty(pStatic);
|
|
+ String staticCatalog = SecuritySupport.getSystemProperty(pStatic);
|
|
|
|
if (staticCatalog == null) {
|
|
if (resources==null) readProperties();
|
|
@@ -748,7 +749,7 @@
|
|
* defaultOasisXMLCatalogPI.
|
|
*/
|
|
public boolean queryAllowOasisXMLCatalogPI () {
|
|
- String allow = System.getProperty(pAllowPI);
|
|
+ String allow = SecuritySupport.getSystemProperty(pAllowPI);
|
|
|
|
if (allow == null) {
|
|
if (resources==null) readProperties();
|
|
@@ -804,7 +805,7 @@
|
|
*
|
|
*/
|
|
public String queryCatalogClassName () {
|
|
- String className = System.getProperty(pClassname);
|
|
+ String className = SecuritySupport.getSystemProperty(pClassname);
|
|
|
|
if (className == null) {
|
|
if (resources==null) readProperties();
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java 2012-08-10 09:37:42.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/resolver/Resolver.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -33,6 +33,7 @@
|
|
import java.net.MalformedURLException;
|
|
import javax.xml.parsers.SAXParserFactory;
|
|
import com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import com.sun.org.apache.xml.internal.resolver.readers.SAXCatalogReader;
|
|
import com.sun.org.apache.xml.internal.resolver.readers.OASISXMLCatalogReader;
|
|
import com.sun.org.apache.xml.internal.resolver.readers.TR9401CatalogReader;
|
|
@@ -524,7 +525,7 @@
|
|
*/
|
|
private Vector resolveAllLocalSystem(String systemId) {
|
|
Vector map = new Vector();
|
|
- String osname = System.getProperty("os.name");
|
|
+ String osname = SecuritySupport.getSystemProperty("os.name");
|
|
boolean windows = (osname.indexOf("Windows") >= 0);
|
|
Enumeration en = catalogEntries.elements();
|
|
while (en.hasMoreElements()) {
|
|
@@ -552,7 +553,7 @@
|
|
*/
|
|
private Vector resolveLocalSystemReverse(String systemId) {
|
|
Vector map = new Vector();
|
|
- String osname = System.getProperty("os.name");
|
|
+ String osname = SecuritySupport.getSystemProperty("os.name");
|
|
boolean windows = (osname.indexOf("Windows") >= 0);
|
|
Enumeration en = catalogEntries.elements();
|
|
while (en.hasMoreElements()) {
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java 2012-08-10 09:37:47.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
package com.sun.org.apache.xml.internal.serialize;
|
|
|
|
import com.sun.org.apache.xerces.internal.utils.ObjectFactory;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.io.OutputStream;
|
|
import java.io.Writer;
|
|
import java.io.UnsupportedEncodingException;
|
|
@@ -64,7 +65,7 @@
|
|
factory = new SerializerFactoryImpl( Method.TEXT );
|
|
registerSerializerFactory( factory );
|
|
|
|
- list = System.getProperty( FactoriesProperty );
|
|
+ list = SecuritySupport.getSystemProperty( FactoriesProperty );
|
|
if ( list != null ) {
|
|
token = new StringTokenizer( list, " ;,:" );
|
|
while ( token.hasMoreTokens() ) {
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2012-08-10 09:37:52.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serializer/Encodings.java 2013-04-28 16:29:20.000000000 -0700
|
|
@@ -219,7 +219,7 @@
|
|
// Get the default system character encoding. This may be
|
|
// incorrect if they passed in a writer, but right now there
|
|
// seems to be no way to get the encoding from a writer.
|
|
- encoding = System.getProperty("file.encoding", "UTF8");
|
|
+ encoding = SecuritySupport.getSystemProperty("file.encoding", "UTF8");
|
|
|
|
if (null != encoding)
|
|
{
|
|
@@ -313,7 +313,7 @@
|
|
|
|
try
|
|
{
|
|
- urlString = System.getProperty(ENCODINGS_PROP, "");
|
|
+ urlString = SecuritySupport.getSystemProperty(ENCODINGS_PROP, "");
|
|
}
|
|
catch (SecurityException e)
|
|
{
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java 2012-08-10 09:37:56.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.serializer;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.io.BufferedInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
@@ -471,7 +472,7 @@
|
|
String value = null;
|
|
try
|
|
{
|
|
- value = System.getProperty(key);
|
|
+ value = SecuritySupport.getSystemProperty(key);
|
|
}
|
|
catch (SecurityException se)
|
|
{
|
|
@@ -484,7 +485,7 @@
|
|
String newValue = null;
|
|
try
|
|
{
|
|
- newValue = System.getProperty(newKey);
|
|
+ newValue = SecuritySupport.getSystemProperty(newKey);
|
|
}
|
|
catch (SecurityException se)
|
|
{
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java 2012-08-10 09:38:02.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serializer/ToStream.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.serializer;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.io.IOException;
|
|
import java.io.OutputStream;
|
|
import java.io.UnsupportedEncodingException;
|
|
@@ -140,7 +141,7 @@
|
|
* extension attribute xalan:line-separator.
|
|
*/
|
|
protected char[] m_lineSep =
|
|
- System.getProperty("line.separator").toCharArray();
|
|
+ SecuritySupport.getSystemProperty("line.separator").toCharArray();
|
|
|
|
/**
|
|
* True if the the system line separator is to be used.
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java 2012-08-10 09:38:02.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serializer/TreeWalker.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.serializer;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.io.File;
|
|
|
|
import com.sun.org.apache.xml.internal.serializer.utils.AttList;
|
|
@@ -104,7 +105,7 @@
|
|
else {
|
|
try {
|
|
// Bug see Bugzilla 26741
|
|
- m_locator.setSystemId(System.getProperty("user.dir") + File.separator + "dummy.xsl");
|
|
+ m_locator.setSystemId(SecuritySupport.getSystemProperty("user.dir") + File.separator + "dummy.xsl");
|
|
}
|
|
catch (SecurityException se) {// user.dir not accessible from applet
|
|
}
|
|
@@ -115,7 +116,7 @@
|
|
m_contentHandler.setDocumentLocator(m_locator);
|
|
try {
|
|
// Bug see Bugzilla 26741
|
|
- m_locator.setSystemId(System.getProperty("user.dir") + File.separator + "dummy.xsl");
|
|
+ m_locator.setSystemId(SecuritySupport.getSystemProperty("user.dir") + File.separator + "dummy.xsl");
|
|
}
|
|
catch (SecurityException se){// user.dir not accessible from applet
|
|
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java 2012-08-10 09:38:06.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/serializer/utils/Messages.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.serializer.utils;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.util.ListResourceBundle;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
@@ -87,9 +88,6 @@
|
|
* can have the Message strings translated in an alternate language
|
|
* in a errorResourceClass with a language suffix.
|
|
*
|
|
- * More sophisticated use of this class would be to pass null
|
|
- * when contructing it, but then call loadResourceBundle()
|
|
- * before creating any messages.
|
|
*
|
|
* This class is not a public API, it is only public because it is
|
|
* used in com.sun.org.apache.xml.internal.serializer.
|
|
@@ -126,18 +124,6 @@
|
|
m_resourceBundleName = resourceBundle;
|
|
}
|
|
|
|
- /*
|
|
- * Set the Locale object to use. If this method is not called the
|
|
- * default locale is used. This method needs to be called before
|
|
- * loadResourceBundle().
|
|
- *
|
|
- * @param locale non-null reference to Locale object.
|
|
- * @xsl.usage internal
|
|
- */
|
|
-// public void setLocale(Locale locale)
|
|
-// {
|
|
-// m_locale = locale;
|
|
-// }
|
|
|
|
/**
|
|
* Get the Locale object that is being used.
|
|
@@ -151,16 +137,6 @@
|
|
}
|
|
|
|
/**
|
|
- * Get the ListResourceBundle being used by this Messages instance which was
|
|
- * previously set by a call to loadResourceBundle(className)
|
|
- * @xsl.usage internal
|
|
- */
|
|
- private ListResourceBundle getResourceBundle()
|
|
- {
|
|
- return m_resourceBundle;
|
|
- }
|
|
-
|
|
- /**
|
|
* Creates a message from the specified key and replacement
|
|
* arguments, localized to the given locale.
|
|
*
|
|
@@ -174,7 +150,7 @@
|
|
public final String createMessage(String msgKey, Object args[])
|
|
{
|
|
if (m_resourceBundle == null)
|
|
- m_resourceBundle = loadResourceBundle(m_resourceBundleName);
|
|
+ m_resourceBundle = SecuritySupport.getResourceBundle(m_resourceBundleName);
|
|
|
|
if (m_resourceBundle != null)
|
|
{
|
|
@@ -293,76 +269,4 @@
|
|
return fmsg;
|
|
}
|
|
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className the name of the class that implements ListResourceBundle,
|
|
- * without language suffix.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- * @xsl.usage internal
|
|
- */
|
|
- private ListResourceBundle loadResourceBundle(String resourceBundle)
|
|
- throws MissingResourceException
|
|
- {
|
|
- m_resourceBundleName = resourceBundle;
|
|
- Locale locale = getLocale();
|
|
-
|
|
- ListResourceBundle lrb;
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- ResourceBundle rb =
|
|
- ResourceBundle.getBundle(m_resourceBundleName, locale);
|
|
- lrb = (ListResourceBundle) rb;
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- lrb =
|
|
- (ListResourceBundle) ResourceBundle.getBundle(
|
|
- m_resourceBundleName,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles." + m_resourceBundleName,
|
|
- m_resourceBundleName,
|
|
- "");
|
|
- }
|
|
- }
|
|
- m_resourceBundle = lrb;
|
|
- return lrb;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which can be appended to a resource name
|
|
- * @xsl.usage internal
|
|
- */
|
|
- private static String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java 2012-08-10 09:38:11.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/utils/TreeWalker.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,7 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.utils;
|
|
|
|
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
|
|
import java.io.File;
|
|
|
|
import org.w3c.dom.Comment;
|
|
@@ -93,7 +94,7 @@
|
|
else {
|
|
try {
|
|
// Bug see Bugzilla 26741
|
|
- m_locator.setSystemId(System.getProperty("user.dir") + File.separator + "dummy.xsl");
|
|
+ m_locator.setSystemId(SecuritySupport.getSystemProperty("user.dir") + File.separator + "dummy.xsl");
|
|
}
|
|
catch (SecurityException se) {// user.dir not accessible from applet
|
|
}
|
|
@@ -112,7 +113,7 @@
|
|
m_contentHandler.setDocumentLocator(m_locator);
|
|
try {
|
|
// Bug see Bugzilla 26741
|
|
- m_locator.setSystemId(System.getProperty("user.dir") + File.separator + "dummy.xsl");
|
|
+ m_locator.setSystemId(SecuritySupport.getSystemProperty("user.dir") + File.separator + "dummy.xsl");
|
|
}
|
|
catch (SecurityException se){// user.dir not accessible from applet
|
|
}
|
|
@@ -131,7 +132,7 @@
|
|
m_contentHandler.setDocumentLocator(m_locator);
|
|
try {
|
|
// Bug see Bugzilla 26741
|
|
- m_locator.setSystemId(System.getProperty("user.dir") + File.separator + "dummy.xsl");
|
|
+ m_locator.setSystemId(SecuritySupport.getSystemProperty("user.dir") + File.separator + "dummy.xsl");
|
|
}
|
|
catch (SecurityException se){// user.dir not accessible from applet
|
|
|
|
--- jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java 2012-08-10 09:38:12.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xml/internal/utils/res/XResourceBundle.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,6 +22,8 @@
|
|
*/
|
|
package com.sun.org.apache.xml.internal.utils.res;
|
|
|
|
+import java.security.AccessController;
|
|
+import java.security.PrivilegedAction;
|
|
import java.util.ListResourceBundle;
|
|
import java.util.Locale;
|
|
import java.util.MissingResourceException;
|
|
@@ -29,114 +31,45 @@
|
|
|
|
/**
|
|
* The default (english) resource bundle.
|
|
+ *
|
|
* @xsl.usage internal
|
|
*/
|
|
-public class XResourceBundle extends ListResourceBundle
|
|
-{
|
|
+public class XResourceBundle extends ListResourceBundle {
|
|
|
|
- /** Error resource constants */
|
|
- public static final String ERROR_RESOURCES =
|
|
- "com.sun.org.apache.xalan.internal.res.XSLTErrorResources", XSLT_RESOURCE =
|
|
- "com.sun.org.apache.xml.internal.utils.res.XResourceBundle", LANG_BUNDLE_NAME =
|
|
- "com.sun.org.apache.xml.internal.utils.res.XResources", MULT_ORDER =
|
|
- "multiplierOrder", MULT_PRECEDES = "precedes", MULT_FOLLOWS =
|
|
- "follows", LANG_ORIENTATION = "orientation", LANG_RIGHTTOLEFT =
|
|
- "rightToLeft", LANG_LEFTTORIGHT = "leftToRight", LANG_NUMBERING =
|
|
- "numbering", LANG_ADDITIVE = "additive", LANG_MULT_ADD =
|
|
- "multiplicative-additive", LANG_MULTIPLIER =
|
|
- "multiplier", LANG_MULTIPLIER_CHAR =
|
|
- "multiplierChar", LANG_NUMBERGROUPS = "numberGroups", LANG_NUM_TABLES =
|
|
- "tables", LANG_ALPHABET = "alphabet", LANG_TRAD_ALPHABET = "tradAlphabet";
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @param locale the locale to prefer when searching for the bundle
|
|
- */
|
|
- public static final XResourceBundle loadResourceBundle(
|
|
- String className, Locale locale) throws MissingResourceException
|
|
- {
|
|
-
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- //System.out.println("resource " + className + suffix);
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- String resourceName = className + suffix;
|
|
- return (XResourceBundle) ResourceBundle.getBundle(resourceName, locale);
|
|
+ /**
|
|
+ * Error resource constants
|
|
+ */
|
|
+ public static final String ERROR_RESOURCES =
|
|
+ "com.sun.org.apache.xalan.internal.res.XSLTErrorResources", XSLT_RESOURCE =
|
|
+ "com.sun.org.apache.xml.internal.utils.res.XResourceBundle", LANG_BUNDLE_NAME =
|
|
+ "com.sun.org.apache.xml.internal.utils.res.XResources", MULT_ORDER =
|
|
+ "multiplierOrder", MULT_PRECEDES = "precedes", MULT_FOLLOWS =
|
|
+ "follows", LANG_ORIENTATION = "orientation", LANG_RIGHTTOLEFT =
|
|
+ "rightToLeft", LANG_LEFTTORIGHT = "leftToRight", LANG_NUMBERING =
|
|
+ "numbering", LANG_ADDITIVE = "additive", LANG_MULT_ADD =
|
|
+ "multiplicative-additive", LANG_MULTIPLIER =
|
|
+ "multiplier", LANG_MULTIPLIER_CHAR =
|
|
+ "multiplierChar", LANG_NUMBERGROUPS = "numberGroups", LANG_NUM_TABLES =
|
|
+ "tables", LANG_ALPHABET = "alphabet", LANG_TRAD_ALPHABET = "tradAlphabet";
|
|
+
|
|
+
|
|
+ /**
|
|
+ * Get the association list.
|
|
+ *
|
|
+ * @return The association list.
|
|
+ */
|
|
+ public Object[][] getContents() {
|
|
+ return new Object[][]{
|
|
+ {"ui_language", "en"}, {"help_language", "en"}, {"language", "en"},
|
|
+ {"alphabet", new CharArrayWrapper(new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G',
|
|
+ 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
|
|
+ 'V', 'W', 'X', 'Y', 'Z'})},
|
|
+ {"tradAlphabet", new CharArrayWrapper(new char[]{'A', 'B', 'C', 'D', 'E', 'F',
|
|
+ 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
|
|
+ 'U', 'V', 'W', 'X', 'Y', 'Z'})},
|
|
+ //language orientation
|
|
+ {"orientation", "LeftToRight"},
|
|
+ //language numbering
|
|
+ {"numbering", "additive"},};
|
|
}
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XResourceBundle) ResourceBundle.getBundle(
|
|
- XSLT_RESOURCE, new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String lang = locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
- String variant = locale.getVariant();
|
|
- String suffix = "_" + locale.getLanguage();
|
|
-
|
|
- if (lang.equals("zh"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- if (country.equals("JP"))
|
|
- suffix += "_" + country + "_" + variant;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
- /**
|
|
- * Get the association list.
|
|
- *
|
|
- * @return The association list.
|
|
- */
|
|
- public Object[][] getContents()
|
|
- {
|
|
- return new Object[][]
|
|
- {
|
|
- { "ui_language", "en" }, { "help_language", "en" }, { "language", "en" },
|
|
- { "alphabet", new CharArrayWrapper(new char[]{ 'A', 'B', 'C', 'D', 'E', 'F', 'G',
|
|
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
|
|
- 'V', 'W', 'X', 'Y', 'Z' })},
|
|
- { "tradAlphabet", new CharArrayWrapper(new char[]{ 'A', 'B', 'C', 'D', 'E', 'F',
|
|
- 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
|
|
- 'U', 'V', 'W', 'X', 'Y', 'Z' }) },
|
|
-
|
|
- //language orientation
|
|
- { "orientation", "LeftToRight" },
|
|
-
|
|
- //language numbering
|
|
- { "numbering", "additive" },
|
|
- };
|
|
- }
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java 2012-08-10 09:38:25.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -102,7 +102,7 @@
|
|
|
|
try
|
|
{
|
|
- result = System.getProperty(propName);
|
|
+ result = SecuritySupport.getSystemProperty(propName);
|
|
|
|
if (null == result)
|
|
{
|
|
@@ -124,7 +124,7 @@
|
|
{
|
|
try
|
|
{
|
|
- result = System.getProperty(fullName);
|
|
+ result = SecuritySupport.getSystemProperty(fullName);
|
|
|
|
if (null == result)
|
|
{
|
|
@@ -170,7 +170,6 @@
|
|
try
|
|
{
|
|
// Use SecuritySupport class to provide priveleged access to property file
|
|
-
|
|
InputStream is = SecuritySupport.getResourceAsStream(ObjectFactory.findClassLoader(),
|
|
file);
|
|
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_de.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_es.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_fr.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_it.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java 2012-08-10 09:38:31.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ja.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_ko.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_pt_BR.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -24,9 +24,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -940,68 +937,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_sv.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_CN.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHErrorResources_zh_TW.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -23,9 +23,6 @@
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
import java.util.ListResourceBundle;
|
|
-import java.util.Locale;
|
|
-import java.util.MissingResourceException;
|
|
-import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Set up error messages.
|
|
@@ -939,68 +936,4 @@
|
|
/** Field QUERY_HEADER */
|
|
public static final String QUERY_HEADER = "PATTERN ";
|
|
|
|
-
|
|
- /**
|
|
- * Return a named ResourceBundle for a particular locale. This method mimics the behavior
|
|
- * of ResourceBundle.getBundle().
|
|
- *
|
|
- * @param className Name of local-specific subclass.
|
|
- * @return the ResourceBundle
|
|
- * @throws MissingResourceException
|
|
- */
|
|
- public static final XPATHErrorResources loadResourceBundle(String className)
|
|
- throws MissingResourceException
|
|
- {
|
|
-
|
|
- Locale locale = Locale.getDefault();
|
|
- String suffix = getResourceSuffix(locale);
|
|
-
|
|
- try
|
|
- {
|
|
-
|
|
- // first try with the given locale
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className
|
|
- + suffix, locale);
|
|
- }
|
|
- catch (MissingResourceException e)
|
|
- {
|
|
- try // try to fall back to en_US if we can't load
|
|
- {
|
|
-
|
|
- // Since we can't find the localized property file,
|
|
- // fall back to en_US.
|
|
- return (XPATHErrorResources) ResourceBundle.getBundle(className,
|
|
- new Locale("en", "US"));
|
|
- }
|
|
- catch (MissingResourceException e2)
|
|
- {
|
|
-
|
|
- // Now we are really in trouble.
|
|
- // very bad, definitely very bad...not going to get very far
|
|
- throw new MissingResourceException(
|
|
- "Could not load any resource bundles.", className, "");
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
- /**
|
|
- * Return the resource file suffic for the indicated locale
|
|
- * For most locales, this will be based the language code. However
|
|
- * for Chinese, we do distinguish between Taiwan and PRC
|
|
- *
|
|
- * @param locale the locale
|
|
- * @return an String suffix which canbe appended to a resource name
|
|
- */
|
|
- private static final String getResourceSuffix(Locale locale)
|
|
- {
|
|
-
|
|
- String suffix = "_" + locale.getLanguage();
|
|
- String country = locale.getCountry();
|
|
-
|
|
- if (country.equals("TW"))
|
|
- suffix += "_" + country;
|
|
-
|
|
- return suffix;
|
|
- }
|
|
-
|
|
}
|
|
--- jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/org/apache/xpath/internal/res/XPATHMessages.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -22,130 +22,128 @@
|
|
*/
|
|
package com.sun.org.apache.xpath.internal.res;
|
|
|
|
-import java.util.ListResourceBundle;
|
|
-
|
|
+import com.sun.org.apache.bcel.internal.util.SecuritySupport;
|
|
import com.sun.org.apache.xml.internal.res.XMLMessages;
|
|
+import java.util.ListResourceBundle;
|
|
|
|
/**
|
|
* A utility class for issuing XPath error messages.
|
|
+ *
|
|
* @xsl.usage internal
|
|
*/
|
|
-public class XPATHMessages extends XMLMessages
|
|
-{
|
|
- /** The language specific resource object for XPath messages. */
|
|
- private static ListResourceBundle XPATHBundle = null;
|
|
-
|
|
- /** The class name of the XPath error message string table. */
|
|
- private static final String XPATH_ERROR_RESOURCES =
|
|
- "com.sun.org.apache.xpath.internal.res.XPATHErrorResources";
|
|
-
|
|
- /**
|
|
- * Creates a message from the specified key and replacement
|
|
- * arguments, localized to the given locale.
|
|
- *
|
|
- * @param msgKey The key for the message text.
|
|
- * @param args The arguments to be used as replacement text
|
|
- * in the message created.
|
|
- *
|
|
- * @return The formatted message string.
|
|
- */
|
|
- public static final String createXPATHMessage(String msgKey, Object args[]) //throws Exception
|
|
- {
|
|
- if (XPATHBundle == null)
|
|
- XPATHBundle = loadResourceBundle(XPATH_ERROR_RESOURCES);
|
|
+public class XPATHMessages extends XMLMessages {
|
|
|
|
- if (XPATHBundle != null)
|
|
+ /**
|
|
+ * The language specific resource object for XPath messages.
|
|
+ */
|
|
+ private static ListResourceBundle XPATHBundle = null;
|
|
+ /**
|
|
+ * The class name of the XPath error message string table.
|
|
+ */
|
|
+ private static final String XPATH_ERROR_RESOURCES =
|
|
+ "com.sun.org.apache.xpath.internal.res.XPATHErrorResources";
|
|
+
|
|
+ /**
|
|
+ * Creates a message from the specified key and replacement arguments,
|
|
+ * localized to the given locale.
|
|
+ *
|
|
+ * @param msgKey The key for the message text.
|
|
+ * @param args The arguments to be used as replacement text in the message
|
|
+ * created.
|
|
+ *
|
|
+ * @return The formatted message string.
|
|
+ */
|
|
+ public static final String createXPATHMessage(String msgKey, Object args[]) //throws Exception
|
|
{
|
|
- return createXPATHMsg(XPATHBundle, msgKey, args);
|
|
- }
|
|
- else
|
|
- return "Could not load any resource bundles.";
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a message from the specified key and replacement
|
|
- * arguments, localized to the given locale.
|
|
- *
|
|
- * @param msgKey The key for the message text.
|
|
- * @param args The arguments to be used as replacement text
|
|
- * in the message created.
|
|
- *
|
|
- * @return The formatted warning string.
|
|
- */
|
|
- public static final String createXPATHWarning(String msgKey, Object args[]) //throws Exception
|
|
- {
|
|
- if (XPATHBundle == null)
|
|
- XPATHBundle = loadResourceBundle(XPATH_ERROR_RESOURCES);
|
|
+ if (XPATHBundle == null) {
|
|
+ XPATHBundle = SecuritySupport.getResourceBundle(XPATH_ERROR_RESOURCES);
|
|
+ }
|
|
|
|
- if (XPATHBundle != null)
|
|
- {
|
|
- return createXPATHMsg(XPATHBundle, msgKey, args);
|
|
+ if (XPATHBundle != null) {
|
|
+ return createXPATHMsg(XPATHBundle, msgKey, args);
|
|
+ } else {
|
|
+ return "Could not load any resource bundles.";
|
|
+ }
|
|
}
|
|
- else
|
|
- return "Could not load any resource bundles.";
|
|
- }
|
|
-
|
|
- /**
|
|
- * Creates a message from the specified key and replacement
|
|
- * arguments, localized to the given locale.
|
|
- *
|
|
- * @param fResourceBundle The resource bundle to use.
|
|
- * @param msgKey The message key to use.
|
|
- * @param args The arguments to be used as replacement text
|
|
- * in the message created.
|
|
- *
|
|
- * @return The formatted message string.
|
|
- */
|
|
- public static final String createXPATHMsg(ListResourceBundle fResourceBundle,
|
|
- String msgKey, Object args[]) //throws Exception
|
|
- {
|
|
-
|
|
- String fmsg = null;
|
|
- boolean throwex = false;
|
|
- String msg = null;
|
|
-
|
|
- if (msgKey != null)
|
|
- msg = fResourceBundle.getString(msgKey);
|
|
|
|
- if (msg == null)
|
|
+ /**
|
|
+ * Creates a message from the specified key and replacement arguments,
|
|
+ * localized to the given locale.
|
|
+ *
|
|
+ * @param msgKey The key for the message text.
|
|
+ * @param args The arguments to be used as replacement text in the message
|
|
+ * created.
|
|
+ *
|
|
+ * @return The formatted warning string.
|
|
+ */
|
|
+ public static final String createXPATHWarning(String msgKey, Object args[]) //throws Exception
|
|
{
|
|
- msg = fResourceBundle.getString(XPATHErrorResources.BAD_CODE);
|
|
- throwex = true;
|
|
+ if (XPATHBundle == null) {
|
|
+ XPATHBundle = SecuritySupport.getResourceBundle(XPATH_ERROR_RESOURCES);
|
|
+ }
|
|
+
|
|
+ if (XPATHBundle != null) {
|
|
+ return createXPATHMsg(XPATHBundle, msgKey, args);
|
|
+ } else {
|
|
+ return "Could not load any resource bundles.";
|
|
+ }
|
|
}
|
|
|
|
- if (args != null)
|
|
+ /**
|
|
+ * Creates a message from the specified key and replacement arguments,
|
|
+ * localized to the given locale.
|
|
+ *
|
|
+ * @param fResourceBundle The resource bundle to use.
|
|
+ * @param msgKey The message key to use.
|
|
+ * @param args The arguments to be used as replacement text in the message
|
|
+ * created.
|
|
+ *
|
|
+ * @return The formatted message string.
|
|
+ */
|
|
+ public static final String createXPATHMsg(ListResourceBundle fResourceBundle,
|
|
+ String msgKey, Object args[]) //throws Exception
|
|
{
|
|
- try
|
|
- {
|
|
|
|
- // Do this to keep format from crying.
|
|
- // This is better than making a bunch of conditional
|
|
- // code all over the place.
|
|
- int n = args.length;
|
|
-
|
|
- for (int i = 0; i < n; i++)
|
|
- {
|
|
- if (null == args[i])
|
|
- args[i] = "";
|
|
- }
|
|
-
|
|
- fmsg = java.text.MessageFormat.format(msg, args);
|
|
- }
|
|
- catch (Exception e)
|
|
- {
|
|
- fmsg = fResourceBundle.getString(XPATHErrorResources.FORMAT_FAILED);
|
|
- fmsg += " " + msg;
|
|
- }
|
|
- }
|
|
- else
|
|
- fmsg = msg;
|
|
+ String fmsg = null;
|
|
+ boolean throwex = false;
|
|
+ String msg = null;
|
|
|
|
- if (throwex)
|
|
- {
|
|
- throw new RuntimeException(fmsg);
|
|
- }
|
|
+ if (msgKey != null) {
|
|
+ msg = fResourceBundle.getString(msgKey);
|
|
+ }
|
|
+
|
|
+ if (msg == null) {
|
|
+ msg = fResourceBundle.getString(XPATHErrorResources.BAD_CODE);
|
|
+ throwex = true;
|
|
+ }
|
|
|
|
- return fmsg;
|
|
- }
|
|
+ if (args != null) {
|
|
+ try {
|
|
|
|
+ // Do this to keep format from crying.
|
|
+ // This is better than making a bunch of conditional
|
|
+ // code all over the place.
|
|
+ int n = args.length;
|
|
+
|
|
+ for (int i = 0; i < n; i++) {
|
|
+ if (null == args[i]) {
|
|
+ args[i] = "";
|
|
+ }
|
|
+ }
|
|
+
|
|
+ fmsg = java.text.MessageFormat.format(msg, args);
|
|
+ } catch (Exception e) {
|
|
+ fmsg = fResourceBundle.getString(XPATHErrorResources.FORMAT_FAILED);
|
|
+ fmsg += " " + msg;
|
|
+ }
|
|
+ } else {
|
|
+ fmsg = msg;
|
|
+ }
|
|
+
|
|
+ if (throwex) {
|
|
+ throw new RuntimeException(fmsg);
|
|
+ }
|
|
+
|
|
+ return fmsg;
|
|
+ }
|
|
}
|
|
--- jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java 2012-08-10 09:38:32.000000000 -0700
|
|
+++ jaxp/src/com/sun/xml/internal/stream/XMLEntityStorage.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -36,6 +36,7 @@
|
|
import com.sun.org.apache.xerces.internal.impl.PropertyManager;
|
|
import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;
|
|
import com.sun.org.apache.xerces.internal.impl.Constants;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import java.util.Enumeration;
|
|
|
|
/**
|
|
@@ -414,7 +415,7 @@
|
|
// get the user.dir property
|
|
String userDir = "";
|
|
try {
|
|
- userDir = System.getProperty("user.dir");
|
|
+ userDir = SecuritySupport.getSystemProperty("user.dir");
|
|
}
|
|
catch (SecurityException se) {
|
|
}
|
|
--- jaxp/src/com/sun/xml/internal/stream/writers/WriterUtility.java 2012-08-10 09:38:35.000000000 -0700
|
|
+++ jaxp/src/com/sun/xml/internal/stream/writers/WriterUtility.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -32,6 +32,7 @@
|
|
import java.nio.charset.Charset;
|
|
import java.nio.charset.CharsetEncoder;
|
|
import com.sun.org.apache.xerces.internal.util.XMLChar;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
|
|
/**
|
|
* Implements common xml writer functions.
|
|
@@ -240,7 +241,7 @@
|
|
|
|
private CharsetEncoder getDefaultEncoder(){
|
|
try{
|
|
- String encoding = System.getProperty("file.encoding");
|
|
+ String encoding = SecuritySupport.getSystemProperty("file.encoding");
|
|
if(encoding != null){
|
|
return Charset.forName(encoding).newEncoder();
|
|
}
|
|
--- jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java 2012-08-10 09:38:36.000000000 -0700
|
|
+++ jaxp/src/com/sun/xml/internal/stream/writers/XMLStreamWriterImpl.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -53,6 +53,7 @@
|
|
import com.sun.org.apache.xerces.internal.impl.PropertyManager;
|
|
import com.sun.org.apache.xerces.internal.util.NamespaceSupport;
|
|
import com.sun.org.apache.xerces.internal.util.SymbolTable;
|
|
+import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
|
|
import com.sun.org.apache.xerces.internal.xni.QName;
|
|
|
|
import com.sun.xml.internal.stream.util.ReadOnlyIterator;
|
|
@@ -340,7 +341,7 @@
|
|
fEncoder = Charset.forName(encoding).newEncoder();
|
|
}
|
|
} else {
|
|
- encoding = System.getProperty("file.encoding");
|
|
+ encoding = SecuritySupport.getSystemProperty("file.encoding");
|
|
if (encoding != null && encoding.equalsIgnoreCase("utf-8")) {
|
|
fWriter = new UTF8OutputStreamWriter(os);
|
|
} else {
|
|
--- jaxp/src/javax/xml/datatype/FactoryFinder.java 2012-08-10 09:38:38.000000000 -0700
|
|
+++ jaxp/src/javax/xml/datatype/FactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -44,6 +44,7 @@
|
|
* @author Santiago.PericasGeertsen@sun.com
|
|
*/
|
|
class FactoryFinder {
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
|
|
|
|
/**
|
|
* Internal debug flag.
|
|
@@ -95,18 +96,24 @@
|
|
* If the class loader supplied is <code>null</code>, first try using the
|
|
* context class loader followed by the current (i.e. bootstrap) class
|
|
* loader.
|
|
+ *
|
|
+ * Use bootstrap classLoader if cl = null and useBSClsLoader is true
|
|
*/
|
|
static private Class getProviderClass(String className, ClassLoader cl,
|
|
- boolean doFallback) throws ClassNotFoundException
|
|
+ boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException
|
|
{
|
|
try {
|
|
if (cl == null) {
|
|
- cl = ss.getContextClassLoader();
|
|
- if (cl == null) {
|
|
- throw new ClassNotFoundException();
|
|
- }
|
|
- else {
|
|
- return cl.loadClass(className);
|
|
+ if (useBSClsLoader) {
|
|
+ return Class.forName(className, true, FactoryFinder.class.getClassLoader());
|
|
+ } else {
|
|
+ cl = ss.getContextClassLoader();
|
|
+ if (cl == null) {
|
|
+ throw new ClassNotFoundException();
|
|
+ }
|
|
+ else {
|
|
+ return cl.loadClass(className);
|
|
+ }
|
|
}
|
|
}
|
|
else {
|
|
@@ -131,17 +138,47 @@
|
|
* @param className Name of the concrete class corresponding to the
|
|
* service provider
|
|
*
|
|
+ * @param cl <code>ClassLoader</code> used to load the factory class. If <code>null</code>
|
|
+ * current <code>Thread</code>'s context classLoader is used to load the factory class.
|
|
+ *
|
|
+ * @param doFallback True if the current ClassLoader should be tried as
|
|
+ * a fallback if the class is not found using cl
|
|
+ */
|
|
+ static Object newInstance(String className, ClassLoader cl, boolean doFallback)
|
|
+ throws ConfigurationError
|
|
+ {
|
|
+ return newInstance(className, cl, doFallback, false);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Create an instance of a class. Delegates to method
|
|
+ * <code>getProviderClass()</code> in order to load the class.
|
|
+ *
|
|
+ * @param className Name of the concrete class corresponding to the
|
|
+ * service provider
|
|
+ *
|
|
* @param cl ClassLoader to use to load the class, null means to use
|
|
* the bootstrap ClassLoader
|
|
*
|
|
* @param doFallback True if the current ClassLoader should be tried as
|
|
* a fallback if the class is not found using cl
|
|
+ *
|
|
+ * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter
|
|
+ * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader.
|
|
*/
|
|
- static Object newInstance(String className, ClassLoader cl, boolean doFallback)
|
|
+ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader)
|
|
throws ConfigurationError
|
|
{
|
|
+ // make sure we have access to restricted packages
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ cl = null;
|
|
+ useBSClsLoader = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
try {
|
|
- Class providerClass = getProviderClass(className, cl, doFallback);
|
|
+ Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader);
|
|
Object instance = providerClass.newInstance();
|
|
if (debug) { // Extra check to avoid computing cl strings
|
|
dPrint("created new instance of " + providerClass +
|
|
@@ -244,6 +281,7 @@
|
|
|
|
// First try the Context ClassLoader
|
|
ClassLoader cl = ss.getContextClassLoader();
|
|
+ boolean useBSClsLoader = false;
|
|
if (cl != null) {
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
|
|
@@ -251,11 +289,13 @@
|
|
if (is == null) {
|
|
cl = FactoryFinder.class.getClassLoader();
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
+ useBSClsLoader = true;
|
|
}
|
|
} else {
|
|
// No Context ClassLoader, try the current ClassLoader
|
|
cl = FactoryFinder.class.getClassLoader();
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
+ useBSClsLoader = true;
|
|
}
|
|
|
|
if (is == null) {
|
|
@@ -293,7 +333,7 @@
|
|
// ClassLoader because we want to avoid the case where the
|
|
// resource file was found using one ClassLoader and the
|
|
// provider class was instantiated using a different one.
|
|
- return newInstance(factoryClassName, cl, false);
|
|
+ return newInstance(factoryClassName, cl, false, useBSClsLoader);
|
|
}
|
|
|
|
// No provider found
|
|
--- jaxp/src/javax/xml/parsers/FactoryFinder.java 2012-08-10 09:38:39.000000000 -0700
|
|
+++ jaxp/src/javax/xml/parsers/FactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -42,7 +42,7 @@
|
|
* @author Huizhe.Wang@oracle.com
|
|
*/
|
|
class FactoryFinder {
|
|
-
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
|
|
/**
|
|
* Internal debug flag.
|
|
*/
|
|
@@ -166,6 +166,14 @@
|
|
static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader)
|
|
throws ConfigurationError
|
|
{
|
|
+ // make sure we have access to restricted packages
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ cl = null;
|
|
+ useBSClsLoader = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
try {
|
|
Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader);
|
|
Object instance = providerClass.newInstance();
|
|
--- jaxp/src/javax/xml/stream/FactoryFinder.java 2012-08-10 09:38:41.000000000 -0700
|
|
+++ jaxp/src/javax/xml/stream/FactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -25,14 +25,12 @@
|
|
|
|
package javax.xml.stream;
|
|
|
|
-import java.io.InputStream;
|
|
-import java.io.IOException;
|
|
-import java.io.File;
|
|
-import java.io.FileInputStream;
|
|
-
|
|
-import java.util.Properties;
|
|
import java.io.BufferedReader;
|
|
+import java.io.File;
|
|
+import java.io.IOException;
|
|
+import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
+import java.util.Properties;
|
|
|
|
/**
|
|
* <p>Implements pluggable Datatypes.</p>
|
|
@@ -43,6 +41,8 @@
|
|
* @author Santiago.PericasGeertsen@sun.com
|
|
*/
|
|
class FactoryFinder {
|
|
+ // Check we have access to package.
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.xml.internal.";
|
|
|
|
/**
|
|
* Internal debug flag.
|
|
@@ -94,18 +94,24 @@
|
|
* If the class loader supplied is <code>null</code>, first try using the
|
|
* context class loader followed by the current (i.e. bootstrap) class
|
|
* loader.
|
|
+ *
|
|
+ * Use bootstrap classLoader if cl = null and useBSClsLoader is true
|
|
*/
|
|
static private Class getProviderClass(String className, ClassLoader cl,
|
|
- boolean doFallback) throws ClassNotFoundException
|
|
+ boolean doFallback, boolean useBSClsLoader) throws ClassNotFoundException
|
|
{
|
|
try {
|
|
if (cl == null) {
|
|
- cl = ss.getContextClassLoader();
|
|
- if (cl == null) {
|
|
- throw new ClassNotFoundException();
|
|
- }
|
|
- else {
|
|
- return cl.loadClass(className);
|
|
+ if (useBSClsLoader) {
|
|
+ return Class.forName(className, true, FactoryFinder.class.getClassLoader());
|
|
+ } else {
|
|
+ cl = ss.getContextClassLoader();
|
|
+ if (cl == null) {
|
|
+ throw new ClassNotFoundException();
|
|
+ }
|
|
+ else {
|
|
+ return cl.loadClass(className);
|
|
+ }
|
|
}
|
|
}
|
|
else {
|
|
@@ -130,8 +136,8 @@
|
|
* @param className Name of the concrete class corresponding to the
|
|
* service provider
|
|
*
|
|
- * @param cl ClassLoader to use to load the class, null means to use
|
|
- * the bootstrap ClassLoader
|
|
+ * @param cl <code>ClassLoader</code> used to load the factory class. If <code>null</code>
|
|
+ * current <code>Thread</code>'s context classLoader is used to load the factory class.
|
|
*
|
|
* @param doFallback True if the current ClassLoader should be tried as
|
|
* a fallback if the class is not found using cl
|
|
@@ -139,8 +145,38 @@
|
|
static Object newInstance(String className, ClassLoader cl, boolean doFallback)
|
|
throws ConfigurationError
|
|
{
|
|
+ return newInstance(className, cl, doFallback, false);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Create an instance of a class. Delegates to method
|
|
+ * <code>getProviderClass()</code> in order to load the class.
|
|
+ *
|
|
+ * @param className Name of the concrete class corresponding to the
|
|
+ * service provider
|
|
+ *
|
|
+ * @param cl <code>ClassLoader</code> used to load the factory class. If <code>null</code>
|
|
+ * current <code>Thread</code>'s context classLoader is used to load the factory class.
|
|
+ *
|
|
+ * @param doFallback True if the current ClassLoader should be tried as
|
|
+ * a fallback if the class is not found using cl
|
|
+ *
|
|
+ * @param useBSClsLoader True if cl=null actually meant bootstrap classLoader. This parameter
|
|
+ * is needed since DocumentBuilderFactory/SAXParserFactory defined null as context classLoader.
|
|
+ */
|
|
+ static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader)
|
|
+ throws ConfigurationError
|
|
+ {
|
|
+ // make sure we have access to restricted packages
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ cl = null;
|
|
+ useBSClsLoader = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
try {
|
|
- Class providerClass = getProviderClass(className, cl, doFallback);
|
|
+ Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader);
|
|
Object instance = providerClass.newInstance();
|
|
if (debug) { // Extra check to avoid computing cl strings
|
|
dPrint("created new instance of " + providerClass +
|
|
@@ -233,11 +269,11 @@
|
|
if (ss.doesFileExist(f)) {
|
|
dPrint("Read properties file "+f);
|
|
cacheProps.load(ss.getFileInputStream(f));
|
|
- }
|
|
- }
|
|
}
|
|
}
|
|
}
|
|
+ }
|
|
+ }
|
|
factoryClassName = cacheProps.getProperty(factoryId);
|
|
|
|
if (factoryClassName != null) {
|
|
@@ -276,6 +312,7 @@
|
|
|
|
// First try the Context ClassLoader
|
|
ClassLoader cl = ss.getContextClassLoader();
|
|
+ boolean useBSClsLoader = false;
|
|
if (cl != null) {
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
|
|
@@ -283,11 +320,13 @@
|
|
if (is == null) {
|
|
cl = FactoryFinder.class.getClassLoader();
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
+ useBSClsLoader = true;
|
|
}
|
|
} else {
|
|
// No Context ClassLoader, try the current ClassLoader
|
|
cl = FactoryFinder.class.getClassLoader();
|
|
is = ss.getResourceAsStream(cl, serviceId);
|
|
+ useBSClsLoader = true;
|
|
}
|
|
|
|
if (is == null) {
|
|
@@ -325,7 +364,7 @@
|
|
// ClassLoader because we want to avoid the case where the
|
|
// resource file was found using one ClassLoader and the
|
|
// provider class was instantiated using a different one.
|
|
- return newInstance(factoryClassName, cl, false);
|
|
+ return newInstance(factoryClassName, cl, false, useBSClsLoader);
|
|
}
|
|
|
|
// No provider found
|
|
--- jaxp/src/javax/xml/transform/FactoryFinder.java 2012-08-10 09:38:44.000000000 -0700
|
|
+++ jaxp/src/javax/xml/transform/FactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -43,6 +43,7 @@
|
|
* @author Huizhe.Wang@oracle.com
|
|
*/
|
|
class FactoryFinder {
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xalan.internal.";
|
|
|
|
/**
|
|
* Internal debug flag.
|
|
@@ -169,6 +170,14 @@
|
|
static Object newInstance(String className, ClassLoader cl, boolean doFallback, boolean useBSClsLoader, boolean useServicesMechanism)
|
|
throws ConfigurationError
|
|
{
|
|
+ // make sure we have access to restricted packages
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ cl = null;
|
|
+ useBSClsLoader = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
try {
|
|
Class providerClass = getProviderClass(className, cl, doFallback, useBSClsLoader);
|
|
Object instance = null;
|
|
@@ -210,7 +219,7 @@
|
|
providerClass.getDeclaredMethod(
|
|
"newTransformerFactoryNoServiceLoader"
|
|
);
|
|
- return creationMethod.invoke(null, null);
|
|
+ return creationMethod.invoke(null, (Object[])null);
|
|
} catch (NoSuchMethodException exc) {
|
|
return null;
|
|
} catch (Exception exc) {
|
|
--- jaxp/src/javax/xml/validation/SchemaFactoryFinder.java 2012-08-10 09:38:49.000000000 -0700
|
|
+++ jaxp/src/javax/xml/validation/SchemaFactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -54,6 +54,7 @@
|
|
*<p> Take care of restrictions imposed by java security model </p>
|
|
*/
|
|
private static SecuritySupport ss = new SecuritySupport();
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
|
|
/**
|
|
* <p>Cache properties for performance.</p>
|
|
*/
|
|
@@ -213,28 +214,6 @@
|
|
}
|
|
}
|
|
|
|
- /**
|
|
- // try to read from $java.home/lib/jaxp.properties
|
|
- try {
|
|
- String javah = ss.getSystemProperty( "java.home" );
|
|
- String configFile = javah + File.separator +
|
|
- "lib" + File.separator + "jaxp.properties";
|
|
- File f = new File( configFile );
|
|
- if( ss.doesFileExist(f)) {
|
|
- sf = loadFromProperty(
|
|
- propertyName,f.getAbsolutePath(), new FileInputStream(f));
|
|
- if(sf!=null) return sf;
|
|
- } else {
|
|
- debugPrintln("Tried to read "+ f.getAbsolutePath()+", but it doesn't exist.");
|
|
- }
|
|
- } catch(Throwable e) {
|
|
- if( debug ) {
|
|
- debugPrintln("failed to read $java.home/lib/jaxp.properties");
|
|
- e.printStackTrace();
|
|
- }
|
|
- }
|
|
- */
|
|
-
|
|
// try META-INF/services files
|
|
Iterator sitr = createServiceFileIterator();
|
|
while(sitr.hasNext()) {
|
|
@@ -269,14 +248,20 @@
|
|
*/
|
|
private Class createClass(String className) {
|
|
Class clazz;
|
|
+ // make sure we have access to restricted packages
|
|
+ boolean internal = false;
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ internal = true;
|
|
+ }
|
|
+ }
|
|
|
|
- // use approprite ClassLoader
|
|
try {
|
|
- if (classLoader != null) {
|
|
- clazz = classLoader.loadClass(className);
|
|
- } else {
|
|
- clazz = Class.forName(className);
|
|
- }
|
|
+ if (classLoader != null && !internal) {
|
|
+ clazz = classLoader.loadClass(className);
|
|
+ } else {
|
|
+ clazz = Class.forName(className);
|
|
+ }
|
|
} catch (Throwable t) {
|
|
if(debug) t.printStackTrace();
|
|
return null;
|
|
@@ -357,7 +342,7 @@
|
|
providerClass.getDeclaredMethod(
|
|
"newXMLSchemaFactoryNoServiceLoader"
|
|
);
|
|
- return creationMethod.invoke(null, null);
|
|
+ return creationMethod.invoke(null, (Object[])null);
|
|
} catch (NoSuchMethodException exc) {
|
|
return null;
|
|
} catch (Exception exc) {
|
|
--- jaxp/src/javax/xml/xpath/XPathFactoryFinder.java 2012-08-10 09:38:54.000000000 -0700
|
|
+++ jaxp/src/javax/xml/xpath/XPathFactoryFinder.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -48,6 +48,7 @@
|
|
* @since 1.5
|
|
*/
|
|
class XPathFactoryFinder {
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xpath.internal";
|
|
|
|
private static SecuritySupport ss = new SecuritySupport() ;
|
|
/** debug support code. */
|
|
@@ -246,18 +247,25 @@
|
|
*/
|
|
private Class createClass(String className) {
|
|
Class clazz;
|
|
+ // make sure we have access to restricted packages
|
|
+ boolean internal = false;
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ internal = true;
|
|
+ }
|
|
+ }
|
|
|
|
- // use approprite ClassLoader
|
|
- try {
|
|
- if (classLoader != null) {
|
|
- clazz = classLoader.loadClass(className);
|
|
- } else {
|
|
- clazz = Class.forName(className);
|
|
- }
|
|
- } catch (Throwable t) {
|
|
- if(debug) t.printStackTrace();
|
|
- return null;
|
|
+ // use approprite ClassLoader
|
|
+ try {
|
|
+ if (classLoader != null && !internal) {
|
|
+ clazz = classLoader.loadClass(className);
|
|
+ } else {
|
|
+ clazz = Class.forName(className);
|
|
}
|
|
+ } catch (Throwable t) {
|
|
+ if(debug) t.printStackTrace();
|
|
+ return null;
|
|
+ }
|
|
|
|
return clazz;
|
|
}
|
|
@@ -333,7 +341,7 @@
|
|
providerClass.getDeclaredMethod(
|
|
"newXPathFactoryNoServiceLoader"
|
|
);
|
|
- return creationMethod.invoke(null, null);
|
|
+ return creationMethod.invoke(null, (Object[])null);
|
|
} catch (NoSuchMethodException exc) {
|
|
return null;
|
|
} catch (Exception exc) {
|
|
--- jaxp/src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java 2012-08-10 09:38:59.000000000 -0700
|
|
+++ jaxp/src/org/w3c/dom/bootstrap/DOMImplementationRegistry.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -104,6 +104,8 @@
|
|
*/
|
|
private static final String FALLBACK_CLASS =
|
|
"com.sun.org.apache.xerces.internal.dom.DOMXSImplementationSourceImpl";
|
|
+ private static final String DEFAULT_PACKAGE =
|
|
+ "com.sun.org.apache.xerces.internal.dom";
|
|
/**
|
|
* Private constructor.
|
|
* @param srcs Vector List of DOMImplementationSources
|
|
@@ -168,10 +170,15 @@
|
|
StringTokenizer st = new StringTokenizer(p);
|
|
while (st.hasMoreTokens()) {
|
|
String sourceName = st.nextToken();
|
|
- // Use context class loader, falling back to Class.forName
|
|
- // if and only if this fails...
|
|
+ // make sure we have access to restricted packages
|
|
+ boolean internal = false;
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (sourceName != null && sourceName.startsWith(DEFAULT_PACKAGE)) {
|
|
+ internal = true;
|
|
+ }
|
|
+ }
|
|
Class sourceClass = null;
|
|
- if (classLoader != null) {
|
|
+ if (classLoader != null && !internal) {
|
|
sourceClass = classLoader.loadClass(sourceName);
|
|
} else {
|
|
sourceClass = Class.forName(sourceName);
|
|
--- jaxp/src/org/xml/sax/helpers/NewInstance.java 2012-08-10 09:39:17.000000000 -0700
|
|
+++ jaxp/src/org/xml/sax/helpers/NewInstance.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -54,9 +54,10 @@
|
|
* including versions of Java 2.</p>
|
|
*
|
|
* @author Edwin Goei, David Brownell
|
|
+ * @version 2.0.1 (sax2r2)
|
|
*/
|
|
class NewInstance {
|
|
-
|
|
+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
|
|
/**
|
|
* Creates a new instance of the specified class name
|
|
*
|
|
@@ -66,8 +67,16 @@
|
|
throws ClassNotFoundException, IllegalAccessException,
|
|
InstantiationException
|
|
{
|
|
+ // make sure we have access to restricted packages
|
|
+ boolean internal = false;
|
|
+ if (System.getSecurityManager() != null) {
|
|
+ if (className != null && className.startsWith(DEFAULT_PACKAGE)) {
|
|
+ internal = true;
|
|
+ }
|
|
+ }
|
|
+
|
|
Class driverClass;
|
|
- if (classLoader == null) {
|
|
+ if (classLoader == null || internal) {
|
|
driverClass = Class.forName(className);
|
|
} else {
|
|
driverClass = classLoader.loadClass(className);
|
|
@@ -75,29 +84,4 @@
|
|
return driverClass.newInstance();
|
|
}
|
|
|
|
- /**
|
|
- * Figure out which ClassLoader to use. For JDK 1.2 and later use
|
|
- * the context ClassLoader.
|
|
- */
|
|
- static ClassLoader getClassLoader ()
|
|
- {
|
|
- Method m = null;
|
|
-
|
|
- try {
|
|
- m = Thread.class.getMethod("getContextClassLoader", (Class[]) null);
|
|
- } catch (NoSuchMethodException e) {
|
|
- // Assume that we are running JDK 1.1, use the current ClassLoader
|
|
- return NewInstance.class.getClassLoader();
|
|
- }
|
|
-
|
|
- try {
|
|
- return (ClassLoader) m.invoke(Thread.currentThread(), (Object[]) null);
|
|
- } catch (IllegalAccessException e) {
|
|
- // assert(false)
|
|
- throw new UnknownError(e.getMessage());
|
|
- } catch (InvocationTargetException e) {
|
|
- // assert(e.getTargetException() instanceof SecurityException)
|
|
- throw new UnknownError(e.getMessage());
|
|
- }
|
|
- }
|
|
}
|
|
--- jaxp/src/org/xml/sax/helpers/ParserAdapter.java 2012-08-10 09:39:17.000000000 -0700
|
|
+++ jaxp/src/org/xml/sax/helpers/ParserAdapter.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -74,13 +74,14 @@
|
|
*
|
|
* @since SAX 2.0
|
|
* @author David Megginson
|
|
+ * @version 2.0.1 (sax2r2)
|
|
* @see org.xml.sax.helpers.XMLReaderAdapter
|
|
* @see org.xml.sax.XMLReader
|
|
* @see org.xml.sax.Parser
|
|
*/
|
|
public class ParserAdapter implements XMLReader, DocumentHandler
|
|
{
|
|
-
|
|
+ private static SecuritySupport ss = new SecuritySupport();
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Constructors.
|
|
@@ -102,7 +103,7 @@
|
|
{
|
|
super();
|
|
|
|
- String driver = System.getProperty("org.xml.sax.parser");
|
|
+ String driver = ss.getSystemProperty("org.xml.sax.parser");
|
|
|
|
try {
|
|
setup(ParserFactory.makeParser());
|
|
--- jaxp/src/org/xml/sax/helpers/ParserFactory.java 2012-08-10 09:39:17.000000000 -0700
|
|
+++ jaxp/src/org/xml/sax/helpers/ParserFactory.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -30,12 +30,6 @@
|
|
|
|
package org.xml.sax.helpers;
|
|
|
|
-import java.lang.ClassNotFoundException;
|
|
-import java.lang.IllegalAccessException;
|
|
-import java.lang.InstantiationException;
|
|
-import java.lang.SecurityException;
|
|
-import java.lang.ClassCastException;
|
|
-
|
|
import org.xml.sax.Parser;
|
|
|
|
|
|
@@ -69,9 +63,10 @@
|
|
* interface.
|
|
* @since SAX 1.0
|
|
* @author David Megginson
|
|
+ * @version 2.0.1 (sax2r2)
|
|
*/
|
|
public class ParserFactory {
|
|
-
|
|
+ private static SecuritySupport ss = new SecuritySupport();
|
|
|
|
/**
|
|
* Private null constructor.
|
|
@@ -109,7 +104,7 @@
|
|
NullPointerException,
|
|
ClassCastException
|
|
{
|
|
- String className = System.getProperty("org.xml.sax.parser");
|
|
+ String className = ss.getSystemProperty("org.xml.sax.parser");
|
|
if (className == null) {
|
|
throw new NullPointerException("No value for sax.parser property");
|
|
} else {
|
|
@@ -146,7 +141,7 @@
|
|
ClassCastException
|
|
{
|
|
return (Parser) NewInstance.newInstance (
|
|
- NewInstance.getClassLoader (), className);
|
|
+ ss.getContextClassLoader(), className);
|
|
}
|
|
|
|
}
|
|
--- jaxp/src/org/xml/sax/helpers/SecuritySupport.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ jaxp/src/org/xml/sax/helpers/SecuritySupport.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -0,0 +1,108 @@
|
|
+/*
|
|
+ * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation. Oracle designates this
|
|
+ * particular file as subject to the "Classpath" exception as provided
|
|
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
+ * or visit www.oracle.com if you need additional information or have any
|
|
+ * questions.
|
|
+ */
|
|
+
|
|
+package org.xml.sax.helpers;
|
|
+
|
|
+import java.io.*;
|
|
+import java.security.*;
|
|
+
|
|
+/**
|
|
+ * This class is duplicated for each JAXP subpackage so keep it in sync.
|
|
+ * It is package private and therefore is not exposed as part of the JAXP
|
|
+ * API.
|
|
+ *
|
|
+ * Security related methods that only work on J2SE 1.2 and newer.
|
|
+ */
|
|
+class SecuritySupport {
|
|
+
|
|
+
|
|
+ ClassLoader getContextClassLoader() throws SecurityException{
|
|
+ return (ClassLoader)
|
|
+ AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ ClassLoader cl = null;
|
|
+ //try {
|
|
+ cl = Thread.currentThread().getContextClassLoader();
|
|
+ //} catch (SecurityException ex) { }
|
|
+
|
|
+ if (cl == null)
|
|
+ cl = ClassLoader.getSystemClassLoader();
|
|
+
|
|
+ return cl;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ String getSystemProperty(final String propName) {
|
|
+ return (String)
|
|
+ AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return System.getProperty(propName);
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ FileInputStream getFileInputStream(final File file)
|
|
+ throws FileNotFoundException
|
|
+ {
|
|
+ try {
|
|
+ return (FileInputStream)
|
|
+ AccessController.doPrivileged(new PrivilegedExceptionAction() {
|
|
+ public Object run() throws FileNotFoundException {
|
|
+ return new FileInputStream(file);
|
|
+ }
|
|
+ });
|
|
+ } catch (PrivilegedActionException e) {
|
|
+ throw (FileNotFoundException)e.getException();
|
|
+ }
|
|
+ }
|
|
+
|
|
+ InputStream getResourceAsStream(final ClassLoader cl,
|
|
+ final String name)
|
|
+ {
|
|
+ return (InputStream)
|
|
+ AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ InputStream ris;
|
|
+ if (cl == null) {
|
|
+ ris = Object.class.getResourceAsStream(name);
|
|
+ } else {
|
|
+ ris = cl.getResourceAsStream(name);
|
|
+ }
|
|
+ return ris;
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+
|
|
+ boolean doesFileExist(final File f) {
|
|
+ return ((Boolean)
|
|
+ AccessController.doPrivileged(new PrivilegedAction() {
|
|
+ public Object run() {
|
|
+ return new Boolean(f.exists());
|
|
+ }
|
|
+ })).booleanValue();
|
|
+ }
|
|
+
|
|
+}
|
|
--- jaxp/src/org/xml/sax/helpers/XMLReaderFactory.java 2012-08-10 09:39:17.000000000 -0700
|
|
+++ jaxp/src/org/xml/sax/helpers/XMLReaderFactory.java 2013-04-28 16:29:21.000000000 -0700
|
|
@@ -34,8 +34,6 @@
|
|
import java.io.BufferedReader;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
-import java.security.AccessController;
|
|
-import java.security.PrivilegedAction;
|
|
import org.xml.sax.XMLReader;
|
|
import org.xml.sax.SAXException;
|
|
|
|
@@ -85,8 +83,8 @@
|
|
}
|
|
|
|
private static final String property = "org.xml.sax.driver";
|
|
+ private static SecuritySupport ss = new SecuritySupport();
|
|
|
|
- private static String _clsFromJar = null;
|
|
private static boolean _jarread = false;
|
|
/**
|
|
* Attempt to create an XMLReader from system defaults.
|
|
@@ -134,43 +132,45 @@
|
|
throws SAXException
|
|
{
|
|
String className = null;
|
|
- ClassLoader loader = NewInstance.getClassLoader ();
|
|
+ ClassLoader cl = ss.getContextClassLoader();
|
|
|
|
// 1. try the JVM-instance-wide system property
|
|
- try { className = System.getProperty (property); }
|
|
- catch (RuntimeException e) { /* normally fails for applets */ }
|
|
+ try {
|
|
+ className = ss.getSystemProperty(property);
|
|
+ }
|
|
+ catch (RuntimeException e) { /* continue searching */ }
|
|
|
|
// 2. if that fails, try META-INF/services/
|
|
if (className == null) {
|
|
if (!_jarread) {
|
|
- final ClassLoader loader1 = loader;
|
|
_jarread = true;
|
|
- _clsFromJar = (String)
|
|
- AccessController.doPrivileged(new PrivilegedAction() {
|
|
- public Object run() {
|
|
- String clsName = null;
|
|
- try {
|
|
- String service = "META-INF/services/" + property;
|
|
- InputStream in;
|
|
- BufferedReader reader;
|
|
- if (loader1 == null)
|
|
- in = ClassLoader.getSystemResourceAsStream (service);
|
|
- else
|
|
- in = loader1.getResourceAsStream (service);
|
|
-
|
|
- if (in != null) {
|
|
- reader = new BufferedReader (
|
|
- new InputStreamReader (in, "UTF8"));
|
|
- clsName = reader.readLine ();
|
|
- in.close ();
|
|
- }
|
|
- } catch (Exception e) {
|
|
+ String service = "META-INF/services/" + property;
|
|
+ InputStream in;
|
|
+ BufferedReader reader;
|
|
+
|
|
+ try {
|
|
+ if (cl != null) {
|
|
+ in = ss.getResourceAsStream(cl, service);
|
|
+
|
|
+ // If no provider found then try the current ClassLoader
|
|
+ if (in == null) {
|
|
+ cl = null;
|
|
+ in = ss.getResourceAsStream(cl, service);
|
|
}
|
|
- return clsName;
|
|
+ } else {
|
|
+ // No Context ClassLoader, try the current ClassLoader
|
|
+ in = ss.getResourceAsStream(cl, service);
|
|
+ }
|
|
+
|
|
+ if (in != null) {
|
|
+ reader = new BufferedReader (
|
|
+ new InputStreamReader (in, "UTF8"));
|
|
+ className = reader.readLine ();
|
|
+ in.close ();
|
|
}
|
|
- });
|
|
+ } catch (Exception e) {
|
|
+ }
|
|
}
|
|
- className = _clsFromJar;
|
|
}
|
|
|
|
// 3. Distro-specific fallback
|
|
@@ -187,7 +187,7 @@
|
|
|
|
// do we know the XMLReader implementation class yet?
|
|
if (className != null)
|
|
- return loadClass (loader, className);
|
|
+ return loadClass (cl, className);
|
|
|
|
// 4. panic -- adapt any SAX1 parser
|
|
try {
|
|
@@ -217,7 +217,7 @@
|
|
public static XMLReader createXMLReader (String className)
|
|
throws SAXException
|
|
{
|
|
- return loadClass (NewInstance.getClassLoader (), className);
|
|
+ return loadClass (ss.getContextClassLoader(), className);
|
|
}
|
|
|
|
private static XMLReader loadClass (ClassLoader loader, String className)
|
|
--- jaxws/.hgtags 2012-08-10 09:46:32.000000000 -0700
|
|
+++ jaxws/.hgtags 2013-06-22 09:41:40.000000000 -0700
|
|
@@ -123,6 +123,7 @@
|
|
05469dd4c3662c454f8a019e492543add60795cc jdk7-b146
|
|
c01bfd68d0528bc88348813c4d75d7f5c62bc4e2 jdk7u1-b01
|
|
d13b1f877bb5ed8dceb2f7ec10365d1db5f70b2d jdk7-b147
|
|
+ce6378e3c791c56b98cbf161804a07d0225b41c0 7u0
|
|
4c24f7019ce939a452154a83151294ad7da66a9d jdk7u1-b02
|
|
272778f529d11081f548f37fcd6a7aec0b11a8dd jdk7u1-b03
|
|
48b06a6e6f46e5bcd610f4bed57cd5067cf31f8c jdk7u1-b04
|
|
@@ -197,5 +198,81 @@
|
|
55dcda93e8c8b5c3170def946de35dd0407eab59 jdk7u6-b21
|
|
0fec2efe2452aed9736da39add4c7f71be561838 jdk7u6-b22
|
|
afb6d773328fa76cea65dc024a448cd931d111f2 jdk7u6-b23
|
|
-55dcda93e8c8b5c3170def946de35dd0407eab59 jdk7u8-b01
|
|
-c025e953f655b375f27f8f94493ceeb43ef1d979 jdk7u8-b02
|
|
+b8b85e62d2c5347df8cf2e825e51e3de178508ea jdk7u6-b24
|
|
+fb03d08f73e98f0dd67cb81632eb9b685de49b7e jdk7u6-b30
|
|
+739ffa9dffad4cc2febe66ca1c2d86496e80741a jdk7u6-b31
|
|
+739ffa9dffad4cc2febe66ca1c2d86496e80741a jdk7u7-b10
|
|
+e9a5a78329d0518efafd9f6f6149f359a7db4e2e jdk7u7-b30
|
|
+ed6262e7bb0db4cd116c31f3c88cbd7c0288de40 jdk7u7-b11
|
|
+538c248de3ef0fcb34c28295c1eab61269708137 jdk7u7-b31
|
|
+dc2e6882056c2d400d4cf3c78d67da8e20fc37cc jdk7u7-b01
|
|
+45cf55bc1732e8495425dceb385740c6852c0fc8 jdk7u7-b02
|
|
+0289894a64a628133bb63f1dc48b45593f96a14d jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+dc2e6882056c2d400d4cf3c78d67da8e20fc37cc jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+45cf55bc1732e8495425dceb385740c6852c0fc8 jdk7u9-b02
|
|
+66a2e01550a9e84e907a7f7b96e64ee90a4ec0e4 jdk7u9-b04
|
|
+f3e42e044584b1b21de29eef1b82974d273c77dc jdk7u9-b05
|
|
+5e5703e9d18d66d7388057040d3c36e978488dc5 jdk7u9-b31
|
|
+987bb65e7b73ad94fb0edecce80d84ee5f8bda6e jdk7u9-b32
|
|
+dd8e4098681aa581d0398ad7d2d1e2547517c7e5 jdk7u10-b10
|
|
+1784290b63bcf021334b0accdb3868fdc4ca854e jdk7u10-b11
|
|
+fde9a060a04d9f9b54f36d645e91ec9a2b40cb81 jdk7u10-b12
|
|
+d7bf349cf0c60bc41a33c1f70969f11668deddb3 jdk7u10-b13
|
|
+17ec7a59002695c35dbd83a120b705e21d982d68 jdk7u10-b14
|
|
+75ecadd1f8fc5a218b1ed71b3c3df776d76e048e jdk7u10-b15
|
|
+ed609545e38c2e499437292c1541e4d1c2b8b992 jdk7u10-b16
|
|
+e63292c59ed8481864302cc3f53b498cbdea3470 jdk7u10-b17
|
|
+6a372e9b4ae978cdaf0b95277db31827794e2c1f jdk7u10-b18
|
|
+df3e4c85e26c651d098cddd546916a625fd777cd jdk7u10-b30
|
|
+29d469fac9106ce7c2f8656ee125e792908aca98 jdk7u10-b31
|
|
+846f4e01218ffe37b2dbceaf89c222c0aea43180 jdk7u11-b20
|
|
+1f06394ca182cb392e472ba7b63b28a40725629d jdk7u11-b21
|
|
+ac21be8046e06e5460d041b7e4f8140d635887fb jdk7u11-b32
|
|
+41abf18b24e9483de775bf938f8d5e673c08209d jdk7u11-b33
|
|
+ed609545e38c2e499437292c1541e4d1c2b8b992 jdk7u11-b03
|
|
+4e1dd1192649575e80d893bcab411077b77c9a0c jdk7u11-b04
|
|
+0e1eefefc2d0c8f0d0cd9e7fb7d78ae026aa8ba0 jdk7u11-b05
|
|
+7365410bb417d6a40996920bb4dbb44bdb1225a9 jdk7u11-b06
|
|
+66786f9d73c479ce70a306e14dd7f653f5b3a4f9 jdk7u11-b07
|
|
+a3cadd00459f1146fdcfa8702bbb29efdcd58960 jdk7u11-b08
|
|
+c7ea4220ad61b125bd7c4b7f112dd9ff18e9be33 jdk7u13-b09
|
|
+1d2eb88cadaf29bf577a71c69b04afe2468d8ff6 jdk7u13-b10
|
|
+21dbdd72a46a29c148ea3519268447c467540637 jdk7u13-b30
|
|
+1d2eb88cadaf29bf577a71c69b04afe2468d8ff6 jdk7u13-b20
|
|
+abcaebcead605f89cd0919add20d8ac16637ddc2 jdk7u15-b01
|
|
+62f9e7f5eb644fedd93dd93bd36bcf817a8d9c8a jdk7u15-b02
|
|
+ed9f270009f2b8606e9e0f58aeedbed36e13963e jdk7u15-b30
|
|
+297240e69d8ffcf85fc68b12af6523f7ea16397e jdk7u15-b31
|
|
+4fda3b01c75ecd80dba505f6152c21f3e1db5cce jdk7u15-b33
|
|
+eaf9b299067069826a5acdc88e15402e5a22cb5d jdk7u15-b03
|
|
+c7ea4220ad61b125bd7c4b7f112dd9ff18e9be33 jdk7u15-b32
|
|
+b8496d1dc0058341da1790bc2e7d2dbba6d4f90e jdk7u17-b01
|
|
+defde3ef03605b1660a246ea85d2e810e3fe4f6e jdk7u17-b02
|
|
+ae4272d61bc738e2d9265a68aefdc20ec648f22c jdk7u17-b30
|
|
+52c4fbd4f58f336dfdf4f680b7e7d7361ec0c3f8 jdk7u17-b31
|
|
+52810f8d2dc09ef2b5e6089435f7050c9f7def11 jdk7u17-b32
|
|
+e07c518282bad3b315d8064da5fad222a5e3f7ed jdk7u21-b01
|
|
+0c1365d2fefb652aea34775749d68774c171ba1a jdk7u21-b02
|
|
+017171d6bc217f26e230503dd38bcf4473f339d2 jdk7u21-b03
|
|
+68e8364feffcc98b57d59675994dcb12e170ddf0 jdk7u21-b04
|
|
+8c43fd5d8cfef4d97bddc4fee7747f23a3c2bffa jdk7u21-b05
|
|
+dab51e98ee7d0f3a30b9e18b0d3591b944346868 jdk7u21-b06
|
|
+4a9533495068359d574da1060bc5a8fa6946cbc6 jdk7u21-b07
|
|
+ab11cef1dfaaec32281dc3d24a366f6691b51b7a jdk7u21-b08
|
|
+53c87e8a2ac494b57f6220bd7e25c7380aa7f418 jdk7u21-b09
|
|
+29c03ced9215a0bb63a4527dc5858b486cc4099d jdk7u21-b10
|
|
+fe6f5b57b9e67a7c6f52a5f926ac17e5c337d4a4 jdk7u21-b11
|
|
+12183763c6205c5cfe27924ccc4ca5480106c3b4 jdk7u21-b30
|
|
+d4eba65d0f776b77ef137022cd7bf49dc3b88a3e jdk7u21-b12
|
|
+238b59ffddce3b1d7d19114006ae3be0e72b5eed jdk7u25-b01
|
|
+8797b25cbeb3005336483063cef2377849bc2088 jdk7u25-b02
|
|
+4635a58db6b028f78a30c972ac47f9c5577bedfd jdk7u25-b03
|
|
+57d4548795c39e19099fc0a760d7887f83b1564f jdk7u25-b04
|
|
+35882693ee358e3a8b92d632dafa98e05fe72437 jdk7u25-b05
|
|
+c141079e609653ec700d2e71f16be4a5859e9a42 jdk7u25-b06
|
|
+f8e4e84e2dc4dcdaa360a7e9a4d2e0268558d84d jdk7u25-b07
|
|
+7ff0c910fb96680d0570b3d29492e15ffb5b279b jdk7u25-b08
|
|
+0cd0d4e7331f7fc9f9ee77f2275113571bcf67cf jdk7u25-b09
|
|
+105cdfd4f40837917d0065e3e58052d2854df7da jdk7u25-b10
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/AverageRangeStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/AverageRangeStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -27,7 +27,6 @@
|
|
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
import com.sun.org.glassfish.external.statistics.AverageRangeStatistic;
|
|
@@ -139,6 +138,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
|
+ checkMethod(method);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = method.invoke(this, args);
|
|
@@ -147,7 +148,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundaryStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundaryStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -27,7 +27,6 @@
|
|
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
import com.sun.org.glassfish.external.statistics.BoundaryStatistic;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
|
|
@@ -81,6 +80,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -89,7 +90,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundedRangeStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundedRangeStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -27,7 +27,6 @@
|
|
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
import com.sun.org.glassfish.external.statistics.BoundedRangeStatistic;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
|
|
@@ -145,6 +144,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -153,7 +154,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/CountStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/CountStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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.org.glassfish.external.statistics.impl;
|
|
import com.sun.org.glassfish.external.statistics.CountStatistic;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
|
|
@@ -103,6 +102,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -111,7 +112,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/RangeStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/RangeStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -27,7 +27,6 @@
|
|
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
import com.sun.org.glassfish.external.statistics.RangeStatistic;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
|
|
@@ -125,6 +124,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -133,7 +134,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/StatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/StatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,8 @@
|
|
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
import com.sun.org.glassfish.external.statistics.Statistic;
|
|
-import java.io.Serializable;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
+import java.lang.reflect.Method;
|
|
+import java.lang.reflect.Modifier;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
|
@@ -133,4 +133,13 @@
|
|
protected static boolean isValidString(String str) {
|
|
return (str!=null && str.length()>0);
|
|
}
|
|
+
|
|
+ protected void checkMethod(Method method) {
|
|
+ if (method == null || method.getDeclaringClass() == null
|
|
+ || !Statistic.class.isAssignableFrom(method.getDeclaringClass())
|
|
+ || Modifier.isStatic(method.getModifiers())) {
|
|
+ throw new RuntimeException("Invalid method on invoke");
|
|
+ }
|
|
+ }
|
|
+
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/StringStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/StringStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -90,6 +90,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -98,7 +100,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/TimeStatisticImpl.java 2012-08-10 09:46:46.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/TimeStatisticImpl.java 2013-06-22 09:39:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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 @@
|
|
package com.sun.org.glassfish.external.statistics.impl;
|
|
|
|
import com.sun.org.glassfish.external.statistics.TimeStatistic;
|
|
-import java.util.concurrent.atomic.AtomicLong;
|
|
import java.util.Map;
|
|
import java.lang.reflect.*;
|
|
|
|
@@ -145,6 +144,8 @@
|
|
|
|
// todo: equals implementation
|
|
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
|
|
+ checkMethod(m);
|
|
+
|
|
Object result;
|
|
try {
|
|
result = m.invoke(this, args);
|
|
@@ -153,7 +154,6 @@
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("unexpected invocation exception: " +
|
|
e.getMessage());
|
|
- } finally {
|
|
}
|
|
return result;
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java 2012-08-10 09:48:50.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -235,7 +235,7 @@
|
|
String pkg = nav.getPackageName(ci.getClazz());
|
|
if(!registries.containsKey(pkg)) {
|
|
// insert the package's object factory
|
|
- C c = nav.findClass(pkg + ".ObjectFactory",ci.getClazz());
|
|
+ C c = loadObjectFactory(ci, pkg);
|
|
if(c!=null)
|
|
addRegistry(c,(Locatable)p);
|
|
}
|
|
@@ -264,6 +264,15 @@
|
|
return r;
|
|
}
|
|
|
|
+ private C loadObjectFactory(ClassInfoImpl<T, C, F, M> ci, String pkg) {
|
|
+ try {
|
|
+ return nav.findClass(pkg + ".ObjectFactory", ci.getClazz());
|
|
+ } catch (SecurityException ignored) {
|
|
+ // treat SecurityException in same way as ClassNotFoundException in this case
|
|
+ return null;
|
|
+ }
|
|
+ }
|
|
+
|
|
/**
|
|
* Checks the uniqueness of the type name.
|
|
*/
|
|
--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java 2012-08-10 09:50:08.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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.nio.ByteBuffer;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
+import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
|
|
/**
|
|
@@ -50,41 +51,45 @@
|
|
}
|
|
|
|
// size of the chunk given by the parser
|
|
+ @Override
|
|
public int size() {
|
|
return len;
|
|
}
|
|
|
|
+ @Override
|
|
public byte[] read() {
|
|
return data;
|
|
}
|
|
|
|
+ @Override
|
|
public long writeTo(DataFile file) {
|
|
return file.writeTo(data, 0, len);
|
|
}
|
|
|
|
/**
|
|
- *
|
|
* @param dataHead
|
|
* @param buf
|
|
* @return
|
|
*/
|
|
+ @Override
|
|
public Data createNext(DataHead dataHead, ByteBuffer buf) {
|
|
if (!config.isOnlyMemory() && dataHead.inMemory >= config.memoryThreshold) {
|
|
try {
|
|
String prefix = config.getTempFilePrefix();
|
|
String suffix = config.getTempFileSuffix();
|
|
- File dir = config.getTempDir();
|
|
- File tempFile = (dir == null)
|
|
- ? File.createTempFile(prefix, suffix)
|
|
- : File.createTempFile(prefix, suffix, dir);
|
|
- LOGGER.fine("Created temp file = "+tempFile);
|
|
+ File tempFile = TempFiles.createTempFile(prefix, suffix, config.getTempDir());
|
|
+ // delete the temp file when VM exits as a last resort for file clean up
|
|
+ tempFile.deleteOnExit();
|
|
+ if (LOGGER.isLoggable(Level.FINE)) {
|
|
+ LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile);
|
|
+ }
|
|
dataHead.dataFile = new DataFile(tempFile);
|
|
- } catch(IOException ioe) {
|
|
+ } catch (IOException ioe) {
|
|
throw new MIMEParsingException(ioe);
|
|
}
|
|
|
|
if (dataHead.head != null) {
|
|
- for(Chunk c=dataHead.head; c != null; c=c.next) {
|
|
+ for (Chunk c = dataHead.head; c != null; c = c.next) {
|
|
long pointer = c.data.writeTo(dataHead.dataFile);
|
|
c.data = new FileData(dataHead.dataFile, pointer, len);
|
|
}
|
|
@@ -94,4 +99,5 @@
|
|
return new MemoryData(buf, config);
|
|
}
|
|
}
|
|
+
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java 1969-12-31 16:00:00.000000000 -0800
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -0,0 +1,144 @@
|
|
+/*
|
|
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
|
|
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
+ *
|
|
+ * This code is free software; you can redistribute it and/or modify it
|
|
+ * under the terms of the GNU General Public License version 2 only, as
|
|
+ * published by the Free Software Foundation. Oracle designates this
|
|
+ * particular file as subject to the "Classpath" exception as provided
|
|
+ * by Oracle in the LICENSE file that accompanied this code.
|
|
+ *
|
|
+ * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
+ * version 2 for more details (a copy is included in the LICENSE file that
|
|
+ * accompanied this code).
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License version
|
|
+ * 2 along with this work; if not, write to the Free Software Foundation,
|
|
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
+ *
|
|
+ * Please contact 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.xml.internal.org.jvnet.mimepull;
|
|
+
|
|
+import java.io.File;
|
|
+import java.io.IOException;
|
|
+import java.lang.reflect.Array;
|
|
+import java.lang.reflect.InvocationTargetException;
|
|
+import java.lang.reflect.Method;
|
|
+import java.util.logging.Level;
|
|
+import java.util.logging.Logger;
|
|
+
|
|
+/**
|
|
+ * Helper utility to support jdk <= jdk1.6. After jdk1.6 EOL reflection can be removed and API can be used directly.
|
|
+ */
|
|
+class TempFiles {
|
|
+
|
|
+ private static final Logger LOGGER = Logger.getLogger(TempFiles.class.getName());
|
|
+
|
|
+ private static final Class<?> CLASS_FILES;
|
|
+ private static final Class<?> CLASS_PATH;
|
|
+ private static final Class<?> CLASS_FILE_ATTRIBUTE;
|
|
+ private static final Class<?> CLASS_FILE_ATTRIBUTES;
|
|
+ private static final Method METHOD_FILE_TO_PATH;
|
|
+ private static final Method METHOD_FILES_CREATE_TEMP_FILE;
|
|
+ private static final Method METHOD_FILES_CREATE_TEMP_FILE_WITHPATH;
|
|
+
|
|
+ private static final Method METHOD_PATH_TO_FILE;
|
|
+
|
|
+ private static boolean useJdk6API;
|
|
+
|
|
+ static {
|
|
+ useJdk6API = isJdk6();
|
|
+
|
|
+ CLASS_FILES = safeGetClass("java.nio.file.Files");
|
|
+ CLASS_PATH = safeGetClass("java.nio.file.Path");
|
|
+ CLASS_FILE_ATTRIBUTE = safeGetClass("java.nio.file.attribute.FileAttribute");
|
|
+ CLASS_FILE_ATTRIBUTES = safeGetClass("[Ljava.nio.file.attribute.FileAttribute;");
|
|
+ METHOD_FILE_TO_PATH = safeGetMethod(File.class, "toPath");
|
|
+ METHOD_FILES_CREATE_TEMP_FILE = safeGetMethod(CLASS_FILES, "createTempFile", String.class, String.class, CLASS_FILE_ATTRIBUTES);
|
|
+ METHOD_FILES_CREATE_TEMP_FILE_WITHPATH = safeGetMethod(CLASS_FILES, "createTempFile", CLASS_PATH, String.class, String.class, CLASS_FILE_ATTRIBUTES);
|
|
+ METHOD_PATH_TO_FILE = safeGetMethod(CLASS_PATH, "toFile");
|
|
+ }
|
|
+
|
|
+ private static boolean isJdk6() {
|
|
+ String javaVersion = System.getProperty("java.version");
|
|
+ LOGGER.log(Level.FINEST, "Detected java version = {0}", javaVersion);
|
|
+ return javaVersion.startsWith("1.6.");
|
|
+ }
|
|
+
|
|
+ private static Class<?> safeGetClass(String className) {
|
|
+ // it is jdk 6 or something failed already before
|
|
+ if (useJdk6API) return null;
|
|
+ try {
|
|
+ return Class.forName(className);
|
|
+ } catch (ClassNotFoundException e) {
|
|
+ LOGGER.log(Level.SEVERE, "Exception cought", e);
|
|
+ LOGGER.log(Level.WARNING, "Class {0} not found. Temp files will be created using old java.io API.", className);
|
|
+ useJdk6API = true;
|
|
+ return null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ private static Method safeGetMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes) {
|
|
+ // it is jdk 6 or something failed already before
|
|
+ if (useJdk6API) return null;
|
|
+ try {
|
|
+ return clazz.getMethod(methodName, parameterTypes);
|
|
+ } catch (NoSuchMethodException e) {
|
|
+ LOGGER.log(Level.SEVERE, "Exception cought", e);
|
|
+ LOGGER.log(Level.WARNING, "Method {0} not found. Temp files will be created using old java.io API.", methodName);
|
|
+ useJdk6API = true;
|
|
+ return null;
|
|
+ }
|
|
+ }
|
|
+
|
|
+
|
|
+ static Object toPath(File f) throws InvocationTargetException, IllegalAccessException {
|
|
+ return METHOD_FILE_TO_PATH.invoke(f);
|
|
+ }
|
|
+
|
|
+ static File toFile(Object path) throws InvocationTargetException, IllegalAccessException {
|
|
+ return (File) METHOD_PATH_TO_FILE.invoke(path);
|
|
+ }
|
|
+
|
|
+ static File createTempFile(String prefix, String suffix, File dir) throws IOException {
|
|
+
|
|
+ if (useJdk6API) {
|
|
+ LOGGER.log(Level.FINEST, "Jdk6 detected, temp file (prefix:{0}, suffix:{1}) being created using old java.io API.", new Object[]{prefix, suffix});
|
|
+ return File.createTempFile(prefix, suffix, dir);
|
|
+
|
|
+ } else {
|
|
+
|
|
+ try {
|
|
+ if (dir != null) {
|
|
+ Object path = toPath(dir);
|
|
+ LOGGER.log(Level.FINEST, "Temp file (path: {0}, prefix:{1}, suffix:{2}) being created using NIO API.", new Object[]{dir.getAbsolutePath(), prefix, suffix});
|
|
+ return toFile(METHOD_FILES_CREATE_TEMP_FILE_WITHPATH.invoke(null, path, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0)));
|
|
+ } else {
|
|
+ LOGGER.log(Level.FINEST, "Temp file (prefix:{0}, suffix:{1}) being created using NIO API.", new Object[]{prefix, suffix});
|
|
+ return toFile(METHOD_FILES_CREATE_TEMP_FILE.invoke(null, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0)));
|
|
+ }
|
|
+
|
|
+ } catch (IllegalAccessException e) {
|
|
+ LOGGER.log(Level.SEVERE, "Exception caught", e);
|
|
+ LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.",
|
|
+ new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix});
|
|
+ return File.createTempFile(prefix, suffix, dir);
|
|
+
|
|
+ } catch (InvocationTargetException e) {
|
|
+ LOGGER.log(Level.SEVERE, "Exception caught", e);
|
|
+ LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.",
|
|
+ new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix});
|
|
+ return File.createTempFile(prefix, suffix, dir);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ }
|
|
+
|
|
+
|
|
+}
|
|
--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java 2012-08-10 09:50:57.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -22,7 +22,6 @@
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
-
|
|
package com.sun.xml.internal.ws.client;
|
|
|
|
import com.sun.istack.internal.NotNull;
|
|
@@ -30,13 +29,11 @@
|
|
import com.sun.xml.internal.ws.Closeable;
|
|
import com.sun.xml.internal.ws.api.BindingID;
|
|
import com.sun.xml.internal.ws.api.EndpointAddress;
|
|
-import com.sun.xml.internal.ws.api.WSBinding;
|
|
import com.sun.xml.internal.ws.api.WSService;
|
|
import com.sun.xml.internal.ws.api.addressing.WSEndpointReference;
|
|
import com.sun.xml.internal.ws.api.client.ServiceInterceptor;
|
|
import com.sun.xml.internal.ws.api.client.ServiceInterceptorFactory;
|
|
-import com.sun.xml.internal.ws.api.model.SEIModel;
|
|
-import com.sun.xml.internal.ws.api.pipe.*;
|
|
+import com.sun.xml.internal.ws.api.pipe.Stubs;
|
|
import com.sun.xml.internal.ws.api.server.Container;
|
|
import com.sun.xml.internal.ws.api.server.ContainerResolver;
|
|
import com.sun.xml.internal.ws.api.wsdl.parser.WSDLParserExtension;
|
|
@@ -45,8 +42,8 @@
|
|
import com.sun.xml.internal.ws.client.HandlerConfigurator.AnnotationConfigurator;
|
|
import com.sun.xml.internal.ws.client.HandlerConfigurator.HandlerResolverImpl;
|
|
import com.sun.xml.internal.ws.client.sei.SEIStub;
|
|
-import com.sun.xml.internal.ws.developer.WSBindingProvider;
|
|
import com.sun.xml.internal.ws.developer.UsesJAXBContextFeature;
|
|
+import com.sun.xml.internal.ws.developer.WSBindingProvider;
|
|
import com.sun.xml.internal.ws.model.AbstractSEIModelImpl;
|
|
import com.sun.xml.internal.ws.model.RuntimeModeler;
|
|
import com.sun.xml.internal.ws.model.SOAPSEIModel;
|
|
@@ -59,7 +56,6 @@
|
|
import com.sun.xml.internal.ws.util.JAXWSUtils;
|
|
import com.sun.xml.internal.ws.util.ServiceConfigurationError;
|
|
import com.sun.xml.internal.ws.util.ServiceFinder;
|
|
-import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver;
|
|
import com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser;
|
|
import org.xml.sax.SAXException;
|
|
|
|
@@ -74,16 +70,17 @@
|
|
import javax.xml.ws.handler.HandlerResolver;
|
|
import javax.xml.ws.soap.AddressingFeature;
|
|
import java.io.IOException;
|
|
+import java.lang.RuntimePermission;
|
|
import java.lang.reflect.Proxy;
|
|
import java.net.MalformedURLException;
|
|
import java.net.URL;
|
|
-import java.security.AccessController;
|
|
-import java.security.PrivilegedAction;
|
|
+import java.security.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.Executor;
|
|
-import java.util.concurrent.Executors;
|
|
import java.util.concurrent.ThreadFactory;
|
|
|
|
+import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver;
|
|
+
|
|
/**
|
|
* <code>Service</code> objects provide the client view of a Web service.
|
|
*
|
|
@@ -578,7 +575,7 @@
|
|
}
|
|
}
|
|
|
|
- private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, Class<T> portInterface,
|
|
+ private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, final Class<T> portInterface,
|
|
WebServiceFeature[] webServiceFeatures, SEIPortInfo eif) {
|
|
//fail if service doesnt have WSDL
|
|
if (wsdlService == null)
|
|
@@ -592,14 +589,37 @@
|
|
BindingImpl binding = eif.createBinding(webServiceFeatures,portInterface);
|
|
SEIStub pis = new SEIStub(eif, binding, eif.model, epr);
|
|
|
|
- T proxy = portInterface.cast(Proxy.newProxyInstance(portInterface.getClassLoader(),
|
|
- new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis));
|
|
+ T proxy = createProxy(portInterface, pis);
|
|
+
|
|
if (serviceInterceptor != null) {
|
|
serviceInterceptor.postCreateProxy((WSBindingProvider)proxy, portInterface);
|
|
}
|
|
return proxy;
|
|
}
|
|
|
|
+ private <T> T createProxy(final Class<T> portInterface, final SEIStub pis) {
|
|
+
|
|
+ // accessClassInPackage privilege needs to be granted ...
|
|
+ RuntimePermission perm = new RuntimePermission("accessClassInPackage.com.sun." + "xml.internal.*");
|
|
+ PermissionCollection perms = perm.newPermissionCollection();
|
|
+ perms.add(perm);
|
|
+
|
|
+ return AccessController.doPrivileged(
|
|
+ new PrivilegedAction<T>() {
|
|
+ @Override
|
|
+ public T run() {
|
|
+ Object proxy = Proxy.newProxyInstance(portInterface.getClassLoader(),
|
|
+ new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis);
|
|
+ return portInterface.cast(proxy);
|
|
+ }
|
|
+ },
|
|
+ new AccessControlContext(
|
|
+ new ProtectionDomain[]{
|
|
+ new ProtectionDomain(null, perms)
|
|
+ })
|
|
+ );
|
|
+ }
|
|
+
|
|
/**
|
|
* Lists up the port names in WSDL. For error diagnostics.
|
|
*/
|
|
--- jaxws/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java 2012-08-10 09:51:59.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -43,20 +43,12 @@
|
|
throws SOAPException
|
|
{
|
|
try {
|
|
- Class spiClass;
|
|
- if (classLoader == null) {
|
|
- spiClass = Class.forName(className);
|
|
- } else {
|
|
- spiClass = classLoader.loadClass(className);
|
|
- }
|
|
+ Class spiClass = safeLoadClass(className, classLoader);
|
|
return spiClass.newInstance();
|
|
} catch (ClassNotFoundException x) {
|
|
- throw new SOAPException(
|
|
- "Provider " + className + " not found", x);
|
|
+ throw new SOAPException("Provider " + className + " not found", x);
|
|
} catch (Exception x) {
|
|
- throw new SOAPException(
|
|
- "Provider " + className + " could not be instantiated: " + x,
|
|
- x);
|
|
+ throw new SOAPException("Provider " + className + " could not be instantiated: " + x, x);
|
|
}
|
|
}
|
|
|
|
@@ -73,11 +65,65 @@
|
|
* a system property
|
|
* @exception SOAPException if there is a SOAP error
|
|
*/
|
|
- static Object find(String factId)
|
|
+ static Object find(String factoryId)
|
|
+ throws SOAPException
|
|
+ {
|
|
+ return find(factoryId, null, false);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Finds the implementation <code>Class</code> object for the given
|
|
+ * factory name, or if that fails, finds the <code>Class</code> object
|
|
+ * for the given fallback class name. The arguments supplied must be
|
|
+ * used in order. If using the first argument is successful, the second
|
|
+ * one will not be used.
|
|
+ * <P>
|
|
+ * This method is package private so that this code can be shared.
|
|
+ *
|
|
+ * @return the <code>Class</code> object of the specified message factory;
|
|
+ * may be <code>null</code>
|
|
+ *
|
|
+ * @param factoryId the name of the factory to find, which is
|
|
+ * a system property
|
|
+ * @param fallbackClassName the implementation class name, which is
|
|
+ * to be used only if nothing else
|
|
+ * is found; <code>null</code> to indicate that
|
|
+ * there is no fallback class name
|
|
+ * @exception SOAPException if there is a SOAP error
|
|
+ */
|
|
+ static Object find(String factoryId, String fallbackClassName)
|
|
throws SOAPException
|
|
{
|
|
- final ClassLoader classLoader;
|
|
- final String factoryId = factId;
|
|
+ return find(factoryId, fallbackClassName, true);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Finds the implementation <code>Class</code> object for the given
|
|
+ * factory name, or if that fails, finds the <code>Class</code> object
|
|
+ * for the given default class name, but only if <code>tryFallback</code>
|
|
+ * is <code>true</code>. The arguments supplied must be used in order
|
|
+ * If using the first argument is successful, the second one will not
|
|
+ * be used. Note the default class name may be needed even if fallback
|
|
+ * is not to be attempted, so certain error conditions can be handled.
|
|
+ * <P>
|
|
+ * This method is package private so that this code can be shared.
|
|
+ *
|
|
+ * @return the <code>Class</code> object of the specified message factory;
|
|
+ * may not be <code>null</code>
|
|
+ *
|
|
+ * @param factoryId the name of the factory to find, which is
|
|
+ * a system property
|
|
+ * @param defaultClassName the implementation class name, which is
|
|
+ * to be used only if nothing else
|
|
+ * is found; <code>null</code> to indicate
|
|
+ * that there is no default class name
|
|
+ * @param tryFallback whether to try the default class as a
|
|
+ * fallback
|
|
+ * @exception SOAPException if there is a SOAP error
|
|
+ */
|
|
+ static Object find(String factoryId, String defaultClassName,
|
|
+ boolean tryFallback) throws SOAPException {
|
|
+ ClassLoader classLoader;
|
|
try {
|
|
classLoader = Thread.currentThread().getContextClassLoader();
|
|
} catch (Exception x) {
|
|
@@ -99,7 +145,7 @@
|
|
String javah=System.getProperty( "java.home" );
|
|
String configFile = javah + File.separator +
|
|
"lib" + File.separator + "jaxm.properties";
|
|
- final File f=new File( configFile );
|
|
+ File f=new File( configFile );
|
|
if( f.exists()) {
|
|
Properties props=new Properties();
|
|
props.load( new FileInputStream(f));
|
|
@@ -134,49 +180,56 @@
|
|
} catch( Exception ex ) {
|
|
}
|
|
|
|
- return null;
|
|
+ // If not found and fallback should not be tried, return a null result.
|
|
+ if (!tryFallback)
|
|
+ return null;
|
|
+
|
|
+ // We didn't find the class through the usual means so try the default
|
|
+ // (built in) factory if specified.
|
|
+ if (defaultClassName == null) {
|
|
+ throw new SOAPException(
|
|
+ "Provider for " + factoryId + " cannot be found", null);
|
|
+ }
|
|
+ return newInstance(defaultClassName, classLoader);
|
|
}
|
|
|
|
/**
|
|
- * Finds the implementation <code>Class</code> object for the given
|
|
- * factory name, or if that fails, finds the <code>Class</code> object
|
|
- * for the given fallback class name. The arguments supplied must be
|
|
- * used in order. If using the first argument is successful, the second
|
|
- * one will not be used.
|
|
- * <P>
|
|
- * This method is package private so that this code can be shared.
|
|
- *
|
|
- * @return the <code>Class</code> object of the specified message factory;
|
|
- * may not be <code>null</code>
|
|
- *
|
|
- * @param factoryId the name of the factory to find, which is
|
|
- * a system property
|
|
- * @param fallbackClassName the implementation class name, which is
|
|
- * to be used only if nothing else
|
|
- * is found; <code>null</code> to indicate that
|
|
- * there is no fallback class name
|
|
- * @exception SOAPException if there is a SOAP error
|
|
+ * Loads the class, provided that the calling thread has an access to the
|
|
+ * class being loaded. If this is the specified default factory class and it
|
|
+ * is restricted by package.access we get a SecurityException and can do a
|
|
+ * Class.forName() on it so it will be loaded by the bootstrap class loader.
|
|
*/
|
|
- static Object find(String factoryId, String fallbackClassName)
|
|
- throws SOAPException
|
|
- {
|
|
-
|
|
- Object obj = find(factoryId);
|
|
- if (obj != null)
|
|
- return obj;
|
|
+ private static Class safeLoadClass(String className,
|
|
+ ClassLoader classLoader)
|
|
+ throws ClassNotFoundException {
|
|
+ try {
|
|
+ // make sure that the current thread has an access to the package of the given name.
|
|
+ SecurityManager s = System.getSecurityManager();
|
|
+ if (s != null) {
|
|
+ int i = className.lastIndexOf('.');
|
|
+ if (i != -1) {
|
|
+ s.checkPackageAccess(className.substring(0, i));
|
|
+ }
|
|
+ }
|
|
|
|
- ClassLoader classLoader;
|
|
- try {
|
|
- classLoader = Thread.currentThread().getContextClassLoader();
|
|
- } catch (Exception x) {
|
|
- throw new SOAPException(x.toString(), x);
|
|
- }
|
|
+ if (classLoader == null)
|
|
+ return Class.forName(className);
|
|
+ else
|
|
+ return classLoader.loadClass(className);
|
|
+ } catch (SecurityException se) {
|
|
+ // (only) default implementation can be loaded
|
|
+ // using bootstrap class loader ...
|
|
+ if (isDefaultImplementation(className))
|
|
+ return Class.forName(className);
|
|
|
|
- if (fallbackClassName == null) {
|
|
- throw new SOAPException(
|
|
- "Provider for " + factoryId + " cannot be found", null);
|
|
+ throw se;
|
|
}
|
|
+ }
|
|
|
|
- return newInstance(fallbackClassName, classLoader);
|
|
+ private static boolean isDefaultImplementation(String className) {
|
|
+ return MessageFactory.DEFAULT_MESSAGE_FACTORY.equals(className) ||
|
|
+ SOAPFactory.DEFAULT_SOAP_FACTORY.equals(className) ||
|
|
+ SOAPConnectionFactory.DEFAULT_SOAP_CONNECTION_FACTORY.equals(className) ||
|
|
+ SAAJMetaFactory.DEFAULT_META_FACTORY_CLASS.equals(className);
|
|
}
|
|
}
|
|
--- jaxws/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java 2012-08-10 09:51:59.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -66,7 +66,7 @@
|
|
*/
|
|
public abstract class MessageFactory {
|
|
|
|
- static private final String DEFAULT_MESSAGE_FACTORY
|
|
+ static final String DEFAULT_MESSAGE_FACTORY
|
|
= "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl";
|
|
|
|
static private final String MESSAGE_FACTORY_PROPERTY
|
|
@@ -99,11 +99,14 @@
|
|
public static MessageFactory newInstance()
|
|
throws SOAPException {
|
|
try {
|
|
- MessageFactory factory = (MessageFactory)
|
|
- FactoryFinder.find(MESSAGE_FACTORY_PROPERTY);
|
|
+ MessageFactory factory = (MessageFactory) FactoryFinder.find(
|
|
+ MESSAGE_FACTORY_PROPERTY,
|
|
+ DEFAULT_MESSAGE_FACTORY,
|
|
+ false);
|
|
|
|
- if (factory != null)
|
|
+ if (factory != null) {
|
|
return factory;
|
|
+ }
|
|
|
|
return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
|
|
} catch (Exception ex) {
|
|
--- jaxws/src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java 2012-08-10 09:51:59.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -44,7 +44,7 @@
|
|
public abstract class SAAJMetaFactory {
|
|
static private final String META_FACTORY_CLASS_PROPERTY =
|
|
"javax.xml.soap.MetaFactory";
|
|
- static private final String DEFAULT_META_FACTORY_CLASS =
|
|
+ static final String DEFAULT_META_FACTORY_CLASS =
|
|
"com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl";
|
|
|
|
/**
|
|
--- jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java 2012-08-10 09:51:59.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,7 +38,7 @@
|
|
* A constant representing the default value for a <code>SOAPConnection</code>
|
|
* object. The default is the point-to-point SOAP connection.
|
|
*/
|
|
- static private final String DEFAULT_SOAP_CONNECTION_FACTORY
|
|
+ static final String DEFAULT_SOAP_CONNECTION_FACTORY
|
|
= "com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory";
|
|
|
|
/**
|
|
--- jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java 2012-08-10 09:52:00.000000000 -0700
|
|
+++ jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java 2013-04-28 16:29:22.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -54,6 +54,12 @@
|
|
"javax.xml.soap.SOAPFactory";
|
|
|
|
/**
|
|
+ * Class name of default <code>SOAPFactory</code> implementation.
|
|
+ */
|
|
+ static final String DEFAULT_SOAP_FACTORY
|
|
+ = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl";
|
|
+
|
|
+ /**
|
|
* Creates a <code>SOAPElement</code> object from an existing DOM
|
|
* <code>Element</code>. If the DOM <code>Element</code> that is passed in
|
|
* as an argument is already a <code>SOAPElement</code> then this method
|
|
@@ -255,7 +261,7 @@
|
|
throws SOAPException
|
|
{
|
|
try {
|
|
- SOAPFactory factory = (SOAPFactory) FactoryFinder.find(SOAP_FACTORY_PROPERTY);
|
|
+ SOAPFactory factory = (SOAPFactory) FactoryFinder.find(SOAP_FACTORY_PROPERTY, DEFAULT_SOAP_FACTORY, false);
|
|
if (factory != null)
|
|
return factory;
|
|
return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
|
|
--- langtools/.hgtags 2012-08-10 10:39:19.000000000 -0700
|
|
+++ langtools/.hgtags 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -123,6 +123,7 @@
|
|
9425dd4f53d5bfcd992d9aecea0eb7d8b2d4f62b jdk7-b146
|
|
d34578643d1c6c752d4a6b5e79c6ab1b60850b4a jdk7u1-b01
|
|
58bc532d63418ac3c9b42460d89cdaf595c6f3e1 jdk7-b147
|
|
+23aadf169f085b180803bcdc53baad4ae870f75b 7u0
|
|
cd2cc8b5edb045b950aed46d159b4fb8fc2fd1df jdk7u1-b02
|
|
82820a30201dbf4b80f1916f3d0f4a92ad21b61a jdk7u1-b03
|
|
baa2c13c70fea3d6e259a34f0903197fdceb64b5 jdk7u1-b04
|
|
@@ -197,5 +198,81 @@
|
|
a35ca56cf8d09b92511f0cd71208a2ea05c8a338 jdk7u6-b21
|
|
4f3aafa690d1fcb18693fc4085049eeffe4778f7 jdk7u6-b22
|
|
dd3e29d8892fcaba6d76431d5fa9d49e7c088f76 jdk7u6-b23
|
|
-a35ca56cf8d09b92511f0cd71208a2ea05c8a338 jdk7u8-b01
|
|
-41bc8da868e58f7182d26b2ab9b6f8a4b09894ed jdk7u8-b02
|
|
+6aac89e84fc96d15bb78b13aa71c9e6b73d7237e jdk7u6-b24
|
|
+bcd1d067d525065630deb98b678bc00b499adbe1 jdk7u6-b30
|
|
+2d6017454236d4e95aad7feaff5fc92a612598f4 jdk7u6-b31
|
|
+2d6017454236d4e95aad7feaff5fc92a612598f4 jdk7u7-b10
|
|
+27041587508dbc4e08c956ba98a11ce0d5608dc4 jdk7u7-b30
|
|
+b92a9f4f6bce4ec500ed3adb8203e6424b579f94 jdk7u7-b11
|
|
+f0fd7463f02ea681ca53022d6d0d425ec1584b34 jdk7u7-b31
|
|
+6bfc26fc14a0650805dd6583048db0b4f8669844 jdk7u7-b01
|
|
+0d4cb328938002fa9a2efc8190ea97beae3230a9 jdk7u7-b02
|
|
+04848e261e42c697cb70401f8059186434855f33 jdk7u9-b03
|
|
+0000000000000000000000000000000000000000 jdk7u7-b01
|
|
+6bfc26fc14a0650805dd6583048db0b4f8669844 jdk7u9-b01
|
|
+0000000000000000000000000000000000000000 jdk7u7-b02
|
|
+0d4cb328938002fa9a2efc8190ea97beae3230a9 jdk7u9-b02
|
|
+9148cdb9a18b55ad7d51bb9644b6db812de34eea jdk7u9-b04
|
|
+1de4a0865a714076b4922a9a7119adb98aee23f2 jdk7u9-b05
|
|
+5d1a6a593fa17933683b34ea3a55c7d13c028a13 jdk7u9-b31
|
|
+acd27fc7fcf3e9dc0a1ae7e101cc036e960b6295 jdk7u9-b32
|
|
+8dfbebb98865d822ddd9e0b9641d21e8bdb8a866 jdk7u10-b10
|
|
+01c6dde274bd520067264231b3015c37e8e62d24 jdk7u10-b11
|
|
+1fb02747d3bce646374c2cab95048c516cec6b01 jdk7u10-b12
|
|
+14735b3d8bdffc7892f1db04b6262bdaad2eb9d7 jdk7u10-b13
|
|
+f555fcdbd07156ee11b25fb4ac106065bbf496b4 jdk7u10-b14
|
|
+dfcd16ac3fbcabed815b8ef4e792716cce0bce21 jdk7u10-b15
|
|
+eaa8a0141c35edc382d7ce0b1148912db8422b16 jdk7u10-b16
|
|
+7101b3e80e96b000b0b4f0bd7fe4dd7910d02f74 jdk7u10-b17
|
|
+4f529e320d83f517a55065b4710c7f1e5ff692c9 jdk7u10-b18
|
|
+1e5aed8511b9bea5c2ebe51a2d9094be8bac73cc jdk7u10-b30
|
|
+db426c20b06918feeeaa036d52a5096c2bb646b0 jdk7u10-b31
|
|
+b01338429ab6821f44d19601de433b538942b53d jdk7u11-b20
|
|
+aeef1c7e43bc2d4a0960ebf42b642f7a34ec8afc jdk7u11-b21
|
|
+92de02b43596ea1d01c87d56dbc9acc0960a90c3 jdk7u11-b32
|
|
+309b5ccd0501d48fa7eed29e45197b4101de4683 jdk7u11-b33
|
|
+eaa8a0141c35edc382d7ce0b1148912db8422b16 jdk7u11-b03
|
|
+e8071ede35dc5948f5ed127941be192a4a8c1ebd jdk7u11-b04
|
|
+17b9bb22f3fd6a624879a29a3fc4b252327c113d jdk7u11-b05
|
|
+96c8b3b817aa3e672f78f1d5006616104378ff29 jdk7u11-b06
|
|
+c5d3dabddff76c92425cbf6a99ed4e066d16b4fd jdk7u11-b07
|
|
+a0d9abc405580d6fa0ae217fab96608285a38c41 jdk7u11-b08
|
|
+a778aaf53c52f78c92f29a1220d9f46de94c9247 jdk7u13-b09
|
|
+761b933e269693fd689c2af5d8317201b2172dbb jdk7u13-b10
|
|
+8a12629ea21378f96666628f472cd9a6936a4933 jdk7u13-b30
|
|
+761b933e269693fd689c2af5d8317201b2172dbb jdk7u13-b20
|
|
+1298307076c2f0c2a4acd3a2a132cbe98d399009 jdk7u15-b01
|
|
+8db0105f00ce9fe6899ece52d46d78995111c456 jdk7u15-b02
|
|
+b00c1580ffa95d9edd567835e1b9a77cf8ca2af6 jdk7u15-b30
|
|
+2c82a733594aef14f7a91a910c6b7b20e6220078 jdk7u15-b31
|
|
+5639dfc55f771823fab02438e5c89c6b18f57d07 jdk7u15-b33
|
|
+c160d7d1616d099afad0986b7d06aee2d9405e57 jdk7u15-b03
|
|
+a778aaf53c52f78c92f29a1220d9f46de94c9247 jdk7u15-b32
|
|
+edfcf07c2877af8efa649e514167b22b7f6fc0b4 jdk7u17-b01
|
|
+2782a1c60faf7585dee0af0ef585aeed3288e521 jdk7u17-b02
|
|
+0abc443a68676c7231b274a324d27204c735acac jdk7u17-b30
|
|
+1a9b32d36ff86136549f20156cf3e821295228a0 jdk7u17-b31
|
|
+a91bdaf125d89b8b2c6ff86c8055aab3b7d2546c jdk7u17-b32
|
|
+8a12629ea21378f96666628f472cd9a6936a4933 jdk7u21-b01
|
|
+82103a284427a2512fe884d8f232f1a83d46beb6 jdk7u21-b02
|
|
+9adfe6a84c3884d5c24f6655e89546a6e0a80129 jdk7u21-b03
|
|
+71704143744ee46f105bf1bf3e4b7aecaf9c1003 jdk7u21-b04
|
|
+0970c229028499d5348d77712edf42d712538441 jdk7u21-b05
|
|
+5e0127eb56c3f70bdf67a5b2c57cf218838371ae jdk7u21-b06
|
|
+08034557136e484b3a7c4d0ec9b21e57ea9cd30b jdk7u21-b07
|
|
+f3c75c441d5623186e43de0b5a645e12fc360c29 jdk7u21-b08
|
|
+b6c7a18b668b85bdc41914b2b354c1928deb659e jdk7u21-b09
|
|
+de06078efe709392d7faf44803d54b74599f6bda jdk7u21-b10
|
|
+e120818fc321b5d9d8573a58bf5f6a6eb7471229 jdk7u21-b11
|
|
+ff6f8ab2635c6e0b0f6bb1a68dca48b4fc31b107 jdk7u21-b30
|
|
+a87ad97e80ae1861143b477d8a8990dc6ecc9173 jdk7u21-b12
|
|
+884621bb9042cd4a06e230307f1e26f1c518346d jdk7u25-b01
|
|
+1311e3618232058b09fe7ea25eda4af8d3fe6807 jdk7u25-b02
|
|
+8dc40e209a12638ea18bb7ee436051768afa5d39 jdk7u25-b03
|
|
+d7f974b867c4cf771ab749871c2ff4d3f869f13f jdk7u25-b04
|
|
+e8d01d8ee8f547f97d8670157ddf5a798459b85a jdk7u25-b05
|
|
+25489e38393b7c70fb826069d50860fbc409d11d jdk7u25-b06
|
|
+11fd425a3ebee6fa02bd684d356300b3619e5e7a jdk7u25-b07
|
|
+edaa697ef947de30b940bef0a546590d09c99cd3 jdk7u25-b08
|
|
+17ee569d0c0130824ba27bc1b090114e6075c5f2 jdk7u25-b09
|
|
+41c1b02cd6a8fa7746752cc911da3dd4d380098d jdk7u25-b10
|
|
--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java 2012-08-10 10:39:24.000000000 -0700
|
|
+++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java 2013-06-22 09:39:33.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -312,8 +312,41 @@
|
|
String scriptCode = DocletConstants.NL + " targetPage = \"\" + window.location.search;" + DocletConstants.NL +
|
|
" if (targetPage != \"\" && targetPage != \"undefined\")" + DocletConstants.NL +
|
|
" targetPage = targetPage.substring(1);" + DocletConstants.NL +
|
|
- " if (targetPage.indexOf(\":\") != -1)" + DocletConstants.NL +
|
|
+ " if (targetPage.indexOf(\":\") != -1 || (targetPage != \"\" && !validURL(targetPage)))" + DocletConstants.NL +
|
|
" targetPage = \"undefined\";" + DocletConstants.NL +
|
|
+ " function validURL(url) {" + DocletConstants.NL +
|
|
+ " if (!(url.indexOf(\".html\") == url.length - 5))" + DocletConstants.NL +
|
|
+ " return false;" + DocletConstants.NL +
|
|
+ " var allowNumber = false;" + DocletConstants.NL +
|
|
+ " var allowSep = false;" + DocletConstants.NL +
|
|
+ " var seenDot = false;" + DocletConstants.NL +
|
|
+ " for (var i = 0; i < url.length - 5; i++) {" + DocletConstants.NL +
|
|
+ " var ch = url.charAt(i);" + DocletConstants.NL +
|
|
+ " if ('a' <= ch && ch <= 'z' ||" + DocletConstants.NL +
|
|
+ " 'A' <= ch && ch <= 'Z' ||" + DocletConstants.NL +
|
|
+ " ch == '$' ||" + DocletConstants.NL +
|
|
+ " ch == '_') {" + DocletConstants.NL +
|
|
+ " allowNumber = true;" + DocletConstants.NL +
|
|
+ " allowSep = true;" + DocletConstants.NL +
|
|
+ " } else if ('0' <= ch && ch <= '9'" + DocletConstants.NL +
|
|
+ " || ch == '-') {" + DocletConstants.NL +
|
|
+ " if (!allowNumber)" + DocletConstants.NL +
|
|
+ " return false;" + DocletConstants.NL +
|
|
+ " } else if (ch == '/' || ch == '.') {" + DocletConstants.NL +
|
|
+ " if (!allowSep)" + DocletConstants.NL +
|
|
+ " return false;" + DocletConstants.NL +
|
|
+ " allowNumber = false;" + DocletConstants.NL +
|
|
+ " allowSep = false;" + DocletConstants.NL +
|
|
+ " if (ch == '.')" + DocletConstants.NL +
|
|
+ " seenDot = true;" + DocletConstants.NL +
|
|
+ " if (ch == '/' && seenDot)" + DocletConstants.NL +
|
|
+ " return false;" + DocletConstants.NL +
|
|
+ " } else {" + DocletConstants.NL +
|
|
+ " return false;"+ DocletConstants.NL +
|
|
+ " }" + DocletConstants.NL +
|
|
+ " }" + DocletConstants.NL +
|
|
+ " return true;" + DocletConstants.NL +
|
|
+ " }" + DocletConstants.NL +
|
|
" function loadFrames() {" + DocletConstants.NL +
|
|
" if (targetPage != \"\" && targetPage != \"undefined\")" + DocletConstants.NL +
|
|
" top.classFrame.location = top.targetPage;" + DocletConstants.NL +
|
|
--- langtools/test/Makefile 2012-08-10 10:39:30.000000000 -0700
|
|
+++ langtools/test/Makefile 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -42,6 +42,14 @@
|
|
ARCH=i586
|
|
endif
|
|
endif
|
|
+ifeq ($(findstring BSD,$(OSNAME)), BSD)
|
|
+ PLATFORM = bsd
|
|
+ JT_PLATFORM = linux
|
|
+ ARCH = $(shell uname -m)
|
|
+ ifeq ($(ARCH), i386)
|
|
+ ARCH=i586
|
|
+ endif
|
|
+endif
|
|
ifeq ($(OSNAME), Windows_NT)
|
|
PLATFORM = windows
|
|
JT_PLATFORM = win32
|
|
@@ -101,7 +109,7 @@
|
|
ifdef JPRT_JAVA_HOME
|
|
JT_JAVA = $(JPRT_JAVA_HOME)
|
|
else
|
|
- JT_JAVA = $(SLASH_JAVA)/re/jdk/1.6.0/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
|
+ JT_JAVA = $(TEST_ROOT)/../../build/$(PLATFORM)-$(ARCH)
|
|
endif
|
|
|
|
# Default JDK to test
|
|
@@ -196,7 +204,9 @@
|
|
|
|
# The test directories to run
|
|
DEFAULT_TESTDIRS = .
|
|
-TESTDIRS = $(DEFAULT_TESTDIRS)
|
|
+ifndef TESTDIRS
|
|
+ TESTDIRS = $(DEFAULT_TESTDIRS)
|
|
+endif
|
|
|
|
# Root of all test results
|
|
TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools
|
|
--- langtools/test/com/sun/javadoc/testJavascript/TestJavascript.java 2012-08-10 10:39:33.000000000 -0700
|
|
+++ langtools/test/com/sun/javadoc/testJavascript/TestJavascript.java 2013-06-22 09:39:33.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -23,7 +23,7 @@
|
|
|
|
/*
|
|
* @test
|
|
- * @bug 4665566 4855876 7025314
|
|
+ * @bug 4665566 4855876 7025314 8012375
|
|
* @summary Verify that the output has the right javascript.
|
|
* @author jamieh
|
|
* @library ../lib/
|
|
@@ -35,7 +35,7 @@
|
|
public class TestJavascript extends JavadocTester {
|
|
|
|
//Test information.
|
|
- private static final String BUG_ID = "4665566-4855876";
|
|
+ private static final String BUG_ID = "4665566-4855876-8012375";
|
|
|
|
//Javadoc arguments.
|
|
private static final String[] ARGS = new String[] {
|
|
@@ -53,8 +53,41 @@
|
|
" targetPage = \"\" + window.location.search;" + NL +
|
|
" if (targetPage != \"\" && targetPage != \"undefined\")" + NL +
|
|
" targetPage = targetPage.substring(1);" + NL +
|
|
- " if (targetPage.indexOf(\":\") != -1)" + NL +
|
|
+ " if (targetPage.indexOf(\":\") != -1 || (targetPage != \"\" && !validURL(targetPage)))" + NL +
|
|
" targetPage = \"undefined\";" + NL +
|
|
+ " function validURL(url) {" + NL +
|
|
+ " if (!(url.indexOf(\".html\") == url.length - 5))" + NL +
|
|
+ " return false;" + NL +
|
|
+ " var allowNumber = false;" + NL +
|
|
+ " var allowSep = false;" + NL +
|
|
+ " var seenDot = false;" + NL +
|
|
+ " for (var i = 0; i < url.length - 5; i++) {" + NL +
|
|
+ " var ch = url.charAt(i);" + NL +
|
|
+ " if ('a' <= ch && ch <= 'z' ||" + NL +
|
|
+ " 'A' <= ch && ch <= 'Z' ||" + NL +
|
|
+ " ch == '$' ||" + NL +
|
|
+ " ch == '_') {" + NL +
|
|
+ " allowNumber = true;" + NL +
|
|
+ " allowSep = true;" + NL +
|
|
+ " } else if ('0' <= ch && ch <= '9'" + NL +
|
|
+ " || ch == '-') {" + NL +
|
|
+ " if (!allowNumber)" + NL +
|
|
+ " return false;" + NL +
|
|
+ " } else if (ch == '/' || ch == '.') {" + NL +
|
|
+ " if (!allowSep)" + NL +
|
|
+ " return false;" + NL +
|
|
+ " allowNumber = false;" + NL +
|
|
+ " allowSep = false;" + NL +
|
|
+ " if (ch == '.')" + NL +
|
|
+ " seenDot = true;" + NL +
|
|
+ " if (ch == '/' && seenDot)" + NL +
|
|
+ " return false;" + NL +
|
|
+ " } else {" + NL +
|
|
+ " return false;" + NL +
|
|
+ " }" + NL +
|
|
+ " }" + NL +
|
|
+ " return true;" + NL +
|
|
+ " }" + NL +
|
|
" function loadFrames() {" + NL +
|
|
" if (targetPage != \"\" && targetPage != \"undefined\")" + NL +
|
|
" top.classFrame.location = top.targetPage;" + NL +
|
|
--- langtools/test/tools/javac/4846262/Test.sh 2012-08-10 10:39:38.000000000 -0700
|
|
+++ langtools/test/tools/javac/4846262/Test.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -44,7 +44,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
FS="/"
|
|
;;
|
|
CYGWIN* )
|
|
--- langtools/test/tools/javac/6302184/T6302184.sh 2012-08-10 10:39:38.000000000 -0700
|
|
+++ langtools/test/tools/javac/6302184/T6302184.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -41,7 +41,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
FS="/"
|
|
;;
|
|
CYGWIN* )
|
|
--- langtools/test/tools/javac/ClassPathTest/ClassPathTest.sh 2012-08-10 10:39:41.000000000 -0700
|
|
+++ langtools/test/tools/javac/ClassPathTest/ClassPathTest.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -56,7 +56,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- langtools/test/tools/javac/ExtDirs/ExtDirs.sh 2012-08-10 10:39:43.000000000 -0700
|
|
+++ langtools/test/tools/javac/ExtDirs/ExtDirs.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -54,7 +54,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javac/MissingInclude.sh 2012-08-10 10:39:44.000000000 -0700
|
|
+++ langtools/test/tools/javac/MissingInclude.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -47,7 +47,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- langtools/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh 2012-08-10 10:39:45.000000000 -0700
|
|
+++ langtools/test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -52,7 +52,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javac/T5090006/compiler.sh 2012-08-10 10:39:47.000000000 -0700
|
|
+++ langtools/test/tools/javac/T5090006/compiler.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -47,7 +47,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- langtools/test/tools/javac/apt.sh 2012-08-10 10:39:53.000000000 -0700
|
|
+++ langtools/test/tools/javac/apt.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -38,7 +38,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
NULL=/dev/null
|
|
PS=":"
|
|
FS="/"
|
|
--- langtools/test/tools/javac/constDebug/ConstDebug.sh 2012-08-10 10:39:55.000000000 -0700
|
|
+++ langtools/test/tools/javac/constDebug/ConstDebug.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -47,7 +47,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javac/fatalErrors/NoJavaLang.sh 2012-08-10 10:40:03.000000000 -0700
|
|
+++ langtools/test/tools/javac/fatalErrors/NoJavaLang.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -48,7 +48,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
FS="/"
|
|
;;
|
|
CYGWIN* )
|
|
--- langtools/test/tools/javac/innerClassFile/Driver.sh 2012-08-10 10:40:14.000000000 -0700
|
|
+++ langtools/test/tools/javac/innerClassFile/Driver.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -53,7 +53,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- langtools/test/tools/javac/javazip/Test.sh 2012-08-10 10:40:14.000000000 -0700
|
|
+++ langtools/test/tools/javac/javazip/Test.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -41,7 +41,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
FS="/"
|
|
SCR=`pwd`
|
|
;;
|
|
--- langtools/test/tools/javac/links/links.sh 2012-08-10 10:40:15.000000000 -0700
|
|
+++ langtools/test/tools/javac/links/links.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -53,7 +53,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
NULL=/dev/null
|
|
PS=":"
|
|
FS="/"
|
|
--- langtools/test/tools/javac/newlines/Newlines.sh 2012-08-10 10:40:17.000000000 -0700
|
|
+++ langtools/test/tools/javac/newlines/Newlines.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -50,7 +50,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- langtools/test/tools/javac/processing/6348499/T6348499.java 2012-08-10 10:40:18.000000000 -0700
|
|
+++ langtools/test/tools/javac/processing/6348499/T6348499.java 2013-04-28 16:29:40.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* 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,6 +47,7 @@
|
|
public static void main(String... args) {
|
|
String testSrc = System.getProperty("test.src", ".");
|
|
String testClasses = System.getProperty("test.classes");
|
|
+ String testClassPath = System.getProperty("test.class.path", testClasses);
|
|
String A_java = new File(testSrc, "A.java").getPath();
|
|
JavacTool tool = JavacTool.create();
|
|
MyDiagListener dl = new MyDiagListener();
|
|
@@ -55,7 +56,7 @@
|
|
fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "A.java")));
|
|
Iterable<String> opts = Arrays.asList("-proc:only",
|
|
"-processor", "A",
|
|
- "-processorpath", testClasses);
|
|
+ "-processorpath", testClassPath);
|
|
StringWriter out = new StringWriter();
|
|
JavacTask task = tool.getTask(out, fm, dl, opts, null, files);
|
|
task.call();
|
|
--- langtools/test/tools/javac/processing/6414633/T6414633.java 2012-08-10 10:40:18.000000000 -0700
|
|
+++ langtools/test/tools/javac/processing/6414633/T6414633.java 2013-04-28 16:29:40.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -43,20 +43,20 @@
|
|
public static void main(String... args) {
|
|
String testSrc = System.getProperty("test.src", ".");
|
|
String testClasses = System.getProperty("test.classes", ".");
|
|
+ String testClassPath = System.getProperty("test.class.path", testClasses);
|
|
|
|
JavacTool tool = JavacTool.create();
|
|
MyDiagListener dl = new MyDiagListener();
|
|
StandardJavaFileManager fm = tool.getStandardFileManager(dl, null, null);
|
|
try {
|
|
- fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(new File(testClasses)));
|
|
+ fm.setLocation(StandardLocation.CLASS_PATH, pathToFiles(testClassPath));
|
|
} catch (IOException e) {
|
|
throw new AssertionError(e);
|
|
}
|
|
Iterable<? extends JavaFileObject> files =
|
|
fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, A.class.getName()+".java")));
|
|
String[] opts = { "-proc:only",
|
|
- "-processor", A.class.getName(),
|
|
- "-classpath", testClasses + System.getProperty("path.separator") + "../../lib" };
|
|
+ "-processor", A.class.getName() };
|
|
JavacTask task = tool.getTask(null, fm, dl, Arrays.asList(opts), null, files);
|
|
task.call();
|
|
|
|
@@ -65,6 +65,15 @@
|
|
throw new AssertionError(dl.diags + " diagnostics reported");
|
|
}
|
|
|
|
+ private static List<File> pathToFiles(String path) {
|
|
+ List<File> list = new ArrayList<File>();
|
|
+ for (String s: path.split(File.pathSeparator)) {
|
|
+ if (!s.isEmpty())
|
|
+ list.add(new File(s));
|
|
+ }
|
|
+ return list;
|
|
+ }
|
|
+
|
|
private static class MyDiagListener implements DiagnosticListener<JavaFileObject>
|
|
{
|
|
public void report(Diagnostic d) {
|
|
--- langtools/test/tools/javac/processing/6430209/T6430209.java 2012-08-10 10:40:18.000000000 -0700
|
|
+++ langtools/test/tools/javac/processing/6430209/T6430209.java 2013-04-28 16:29:40.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -56,6 +56,7 @@
|
|
// -proc:only -processor b6341534 -cp . ./src/*.java
|
|
String testSrc = System.getProperty("test.src", ".");
|
|
String testClasses = System.getProperty("test.classes") + System.getProperty("path.separator") + "../../lib";
|
|
+ String testClassPath = System.getProperty("test.class.path", testClasses);
|
|
JavacTool tool = JavacTool.create();
|
|
MyDiagListener dl = new MyDiagListener();
|
|
StandardJavaFileManager fm = tool.getStandardFileManager(dl, null, null);
|
|
@@ -64,7 +65,7 @@
|
|
new File(testSrc, "test0.java"), new File(testSrc, "test1.java")));
|
|
Iterable<String> opts = Arrays.asList("-proc:only",
|
|
"-processor", "b6341534",
|
|
- "-processorpath", testClasses);
|
|
+ "-processorpath", testClassPath);
|
|
StringWriter out = new StringWriter();
|
|
JavacTask task = tool.getTask(out, fm, dl, opts, null, files);
|
|
task.call();
|
|
--- langtools/test/tools/javac/processing/T6920317.java 2012-08-10 10:40:19.000000000 -0700
|
|
+++ langtools/test/tools/javac/processing/T6920317.java 2013-04-28 16:29:40.000000000 -0700
|
|
@@ -1,5 +1,5 @@
|
|
/*
|
|
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
|
+ * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
@@ -156,7 +156,9 @@
|
|
String expect = null;
|
|
|
|
opts.add("-processorpath");
|
|
- opts.add(System.getProperty("test.classes"));
|
|
+ String testClasses = System.getProperty("test.classes");
|
|
+ String testClassPath = System.getProperty("test.class.path", testClasses);
|
|
+ opts.add(testClassPath);
|
|
opts.add("-processor");
|
|
opts.add(Processor.class.getName());
|
|
opts.add("-proc:only");
|
|
--- langtools/test/tools/javac/stackmap/T4955930.sh 2012-08-10 10:40:22.000000000 -0700
|
|
+++ langtools/test/tools/javac/stackmap/T4955930.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -41,7 +41,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows_95 | Windows_98 | Windows_NT )
|
|
--- langtools/test/tools/javac/unicode/SupplementaryJavaID6.sh 2012-08-10 10:40:25.000000000 -0700
|
|
+++ langtools/test/tools/javac/unicode/SupplementaryJavaID6.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -55,7 +55,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | Darwin | *BSD )
|
|
if [ -d /usr/lib/locale/en_US.UTF-8 -o -d /usr/lib/locale/en_US.utf8 ]
|
|
then
|
|
ENV="env LANG=en_US.UTF-8"
|
|
--- langtools/test/tools/javah/6257087/foo.sh 2012-08-10 10:40:28.000000000 -0700
|
|
+++ langtools/test/tools/javah/6257087/foo.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -41,7 +41,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javah/ConstMacroTest.sh 2012-08-10 10:40:28.000000000 -0700
|
|
+++ langtools/test/tools/javah/ConstMacroTest.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -56,7 +56,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin )
|
|
+ SunOS | Linux | *BSD | Darwin )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javah/MissingParamClassTest.sh 2012-08-10 10:40:28.000000000 -0700
|
|
+++ langtools/test/tools/javah/MissingParamClassTest.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -58,7 +58,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javah/ReadOldClass.sh 2012-08-10 10:40:28.000000000 -0700
|
|
+++ langtools/test/tools/javah/ReadOldClass.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -43,7 +43,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
PS=":"
|
|
FS="/"
|
|
;;
|
|
--- langtools/test/tools/javap/pathsep.sh 2012-08-10 10:40:29.000000000 -0700
|
|
+++ langtools/test/tools/javap/pathsep.sh 2013-06-22 09:42:04.000000000 -0700
|
|
@@ -40,7 +40,7 @@
|
|
# set platform-dependent variables
|
|
OS=`uname -s`
|
|
case "$OS" in
|
|
- SunOS | Linux | Darwin | CYGWIN* )
|
|
+ SunOS | Linux | *BSD | Darwin | CYGWIN* )
|
|
FS="/"
|
|
;;
|
|
Windows* )
|
|
--- make/scripts/normalizer.pl 2012-08-10 09:07:04.000000000 -0700
|
|
+++ make/scripts/normalizer.pl 1969-12-31 16:00:00.000000000 -0800
|
|
@@ -1,208 +0,0 @@
|
|
-#!/usr/bin/perl
|
|
-
|
|
-#
|
|
-# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
|
|
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
-#
|
|
-# This code is free software; you can redistribute it and/or modify it
|
|
-# under the terms of the GNU General Public License version 2 only, as
|
|
-# published by the Free Software Foundation.
|
|
-#
|
|
-# This code is distributed in the hope that it will be useful, but WITHOUT
|
|
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
-# version 2 for more details (a copy is included in the LICENSE file that
|
|
-# accompanied this code).
|
|
-#
|
|
-# You should have received a copy of the GNU General Public License version
|
|
-# 2 along with this work; if not, write to the Free Software Foundation,
|
|
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
-#
|
|
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
-# or visit www.oracle.com if you need additional information or have any
|
|
-# questions.
|
|
-#
|
|
-
|
|
-#
|
|
-# Parses java files:
|
|
-# 1. Removes from the end of lines spaces and TABs
|
|
-# 2. Replaces TABs by spaces
|
|
-# 3. Replaces all NewLine separators by Unix NewLine separators
|
|
-# 4. Makes one and only one empty line at the end of each file
|
|
-
|
|
-if ($#ARGV < 0) {
|
|
- &usage;
|
|
-
|
|
- die;
|
|
-}
|
|
-
|
|
-use Cwd 'abs_path';
|
|
-
|
|
-my @extensions = ("java");
|
|
-
|
|
-# Read options
|
|
-my $dirpos = 0;
|
|
-
|
|
-while ($dirpos < $#ARGV) {
|
|
- if ($ARGV[$dirpos] eq "-e") {
|
|
- @extensions = split(/,/, $ARGV[$dirpos + 1]);
|
|
- } else {
|
|
- last;
|
|
- }
|
|
-
|
|
- $dirpos += 2;
|
|
-}
|
|
-
|
|
-if ($dirpos > $#ARGV) {
|
|
- &usage;
|
|
-
|
|
- die;
|
|
-}
|
|
-
|
|
-use Cwd;
|
|
-my $currdir = getcwd;
|
|
-
|
|
-my $allfiles = 0;
|
|
-
|
|
-my $filecount = 0;
|
|
-
|
|
-my @tabvalues;
|
|
-
|
|
-# Init tabvalues
|
|
-push (@tabvalues, " ");
|
|
-
|
|
-for (my $i = 1; $i < 8; $i++) {
|
|
- push(@tabvalues, $tabvalues[$i - 1] . " ");
|
|
-}
|
|
-
|
|
-open(FILELIST, ">$currdir/filelist") or die "Failed while open $currdir/filelist: $!\n";
|
|
-
|
|
-while ($dirpos <= $#ARGV) {
|
|
- use File::Find;
|
|
-
|
|
- find(\&parse_file, abs_path($ARGV[$dirpos]));
|
|
-
|
|
- $dirpos += 1;
|
|
-}
|
|
-
|
|
-close(FILELIST);
|
|
-
|
|
-use Cwd 'chdir';
|
|
-chdir $currdir;
|
|
-
|
|
-print "Checked $allfiles file(s)\n";
|
|
-print "Modified $filecount file(s)\n";
|
|
-print "See results in the file $currdir/filelist\n";
|
|
-
|
|
-sub parse_file {
|
|
- my $filename = $File::Find::name;
|
|
-
|
|
- # Skip directories
|
|
- return if -d;
|
|
-
|
|
- # Skip SCCS files
|
|
- return if ($filename =~ /\/SCCS\//);
|
|
-
|
|
- # Skip files with invalid extensions
|
|
- my $accepted = 0;
|
|
- foreach my $ext (@extensions) {
|
|
- if ($_ =~ /\.$ext$/i) {
|
|
- $accepted = 1;
|
|
-
|
|
- last;
|
|
- }
|
|
- }
|
|
- return if ($accepted == 0);
|
|
-
|
|
- use File::Basename;
|
|
- my $dirname = dirname($filename);
|
|
-
|
|
- use Cwd 'chdir';
|
|
- chdir $dirname;
|
|
-
|
|
- open(FILE, $filename) or die "Failed while open $filename: $!\n";
|
|
-
|
|
- # Read file
|
|
- my @content;
|
|
- my $line;
|
|
- my $emptylinescount = 0;
|
|
- my $modified = 0;
|
|
-
|
|
- while ($line = <FILE>) {
|
|
- my $originalline = $line;
|
|
-
|
|
- # Process line
|
|
-
|
|
- # Remove from the end of the line spaces and return character
|
|
- while ($line =~ /\s$/) {
|
|
- chop($line);
|
|
- }
|
|
-
|
|
- # Replace TABs
|
|
- for (my $i = 0; $i < length($line); $i++) {
|
|
- if (substr($line, $i, 1) =~ /\t/) {
|
|
- $line = substr($line, 0, $i) . $tabvalues[7 - ($i % 8)] . substr($line, $i + 1);
|
|
- }
|
|
- }
|
|
-
|
|
- if (length($line) == 0) {
|
|
- $emptylinescount++;
|
|
- } else {
|
|
- while ($emptylinescount > 0) {
|
|
- push(@content, "");
|
|
-
|
|
- $emptylinescount--;
|
|
- }
|
|
-
|
|
- push(@content, $line);
|
|
- }
|
|
-
|
|
- if ($originalline ne ($line . "\n")) {
|
|
- $modified = 1;
|
|
- }
|
|
-
|
|
- }
|
|
-
|
|
- $allfiles++;
|
|
-
|
|
- if ($emptylinescount > 0) {
|
|
- $modified = 1;
|
|
- }
|
|
-
|
|
- close(FILE);
|
|
-
|
|
- if ($modified != 0) {
|
|
- # Write file
|
|
- open(FILE, ">$filename") or die "Failed while open $filename: $!\n";
|
|
-
|
|
- for (my $i = 0; $i <= $#content; $i++) {
|
|
- print FILE "$content[$i]\n";
|
|
- }
|
|
-
|
|
- close(FILE);
|
|
-
|
|
- # Print name from current dir
|
|
- if (index($filename, $currdir) == 0) {
|
|
- print FILELIST substr($filename, length($currdir) + 1);
|
|
- } else {
|
|
- print FILELIST $filename;
|
|
- }
|
|
- print FILELIST "\n";
|
|
-
|
|
- $filecount++;
|
|
-
|
|
- print "$filename: modified\n";
|
|
- }
|
|
-}
|
|
-
|
|
-sub usage {
|
|
- print "Usage:\n";
|
|
- print " normalizer.pl [-options] <dir> [dir2 dir3 ...]\n";
|
|
- print " Available options:\n";
|
|
- print " -e comma separated files extensions. By default accepts only java files\n";
|
|
- print "\n";
|
|
- print "Examples:\n";
|
|
- print " normalizer.pl -e c,cpp,h,hpp .\n";
|
|
-}
|
|
-
|
|
-
|