diff --git a/java/openjdk7/Makefile b/java/openjdk7/Makefile
index 653cfec958c5..aca4e6eef54e 100644
--- a/java/openjdk7/Makefile
+++ b/java/openjdk7/Makefile
@@ -3,7 +3,6 @@
PORTNAME= openjdk
PORTVERSION= ${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER}
-PORTREVISION= 2
CATEGORIES= java devel
MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}u${JDK_MINOR_VERSION}/promoted/b${JDK_BUILD_NUMBER}/ \
http://download.java.net/jaxp/1.4.5/:jaxp \
@@ -38,12 +37,12 @@ DEBUG_DESC= Enable extra debugging info
POLICY_DESC= Install the Unlimited Strength Policy Files
TZUPDATE_DESC= Update the time zone data
-PORT_MINOR_VERSION= 25
-PORT_BUILD_NUMBER= 15
+PORT_MINOR_VERSION= 45
+PORT_BUILD_NUMBER= 18
JDK_MAJOR_VERSION= 7
-JDK_MINOR_VERSION= 6
-JDK_BUILD_NUMBER= 24
-JDK_BUILD_DATE= 09_aug_2012
+JDK_MINOR_VERSION= 40
+JDK_BUILD_NUMBER= 43
+JDK_BUILD_DATE= 26_aug_2013
JDK_SRC_DISTFILE= ${PORTNAME}-${JDK_MAJOR_VERSION}u${JDK_MINOR_VERSION}-fcs-src-b${JDK_BUILD_NUMBER}-${JDK_BUILD_DATE}
# Use our own version of ant to avoid circular dependencies
@@ -104,19 +103,6 @@ BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk7 \
${LOCALBASE}/openjdk6 \
${LOCALBASE}/bootstrap-openjdk
-SECURITY_ICONS= security-icon-bw16.png \
- security-icon-bw24.png \
- security-icon-bw32.png \
- security-icon-bw48.png \
- security-icon-interim16.png \
- security-icon-interim24.png \
- security-icon-interim32.png \
- security-icon-interim48.png \
- security-icon-yellow16.png \
- security-icon-yellow24.png \
- security-icon-yellow32.png \
- security-icon-yellow48.png
-
NO_STAGE= yes
.include
@@ -146,14 +132,6 @@ PATCH_DEPENDS+= gpatch:${PORTSDIR}/devel/patch
PATCH= gpatch
.endif
-post-extract:
- # Move icons to their new home.
- @${MKDIR} ${WRKSRC}/jdk/src/share/classes/sun/awt/resources
-.for icon in ${SECURITY_ICONS}
- @${MV} ${WRKSRC}/jdk/src/solaris/classes/sun/awt/X11/${icon} \
- ${WRKSRC}/jdk/src/share/classes/sun/awt/resources/
-.endfor
-
post-patch:
@${REINPLACE_CMD} "s|%%LOCALBASE%%|${LOCALBASE}|" \
${WRKSRC}/hotspot/src/os/bsd/vm/os_bsd.cpp
diff --git a/java/openjdk7/distinfo b/java/openjdk7/distinfo
index 4d7d927a43ac..23cff337f530 100644
--- a/java/openjdk7/distinfo
+++ b/java/openjdk7/distinfo
@@ -1,4 +1,4 @@
-SHA256 (openjdk-7u6-fcs-src-b24-09_aug_2012.zip) = 22aec9bcc660d2e6502c9d24e5fdac97da9c4d251dafd87f708bcf6dabbbb431
-SIZE (openjdk-7u6-fcs-src-b24-09_aug_2012.zip) = 103796914
+SHA256 (openjdk-7u40-fcs-src-b43-26_aug_2013.zip) = 00f8ea561876cbcad174ba3ca7a9ae10b50df46a782ac64c2ac57ac357b50596
+SIZE (openjdk-7u40-fcs-src-b43-26_aug_2013.zip) = 104575196
SHA256 (apache-ant-1.8.4-bin.zip) = d49d60bc0468279125e4a0db4d9b6637cab342a4bd736c90c0b71865b26c1479
SIZE (apache-ant-1.8.4-bin.zip) = 8043520
diff --git a/java/openjdk7/files/patch-set b/java/openjdk7/files/patch-set
index 6748e31712d2..daec653be0fe 100644
--- a/java/openjdk7/files/patch-set
+++ b/java/openjdk7/files/patch-set
@@ -1,5 +1,5 @@
---- .hgtags 2012-08-10 09:07:00.000000000 -0700
-+++ .hgtags 2013-06-22 09:41:03.000000000 -0700
+--- .hgtags 2013-09-06 11:20:33.000000000 -0700
++++ .hgtags 2013-12-01 11:13:37.000000000 -0800
@@ -123,6 +123,7 @@
2d38c2a79c144c30cd04d143d83ee7ec6af40771 jdk7-b146
3ac30b3852876ccad6bd61697b5f9efa91ca7bc6 jdk7u1-b01
@@ -8,90 +8,71 @@
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
+@@ -300,6 +301,22 @@
+ 84285f4e0aa2f81b80bc6fbe713d768c0d9a7156 jdk7u25-b09
+ aae1e27d347b71f65f548c12b918ede98d869b7c jdk7u25-b10
+ 039f12124903cd0b7633a17a26f6ca281f7aaeae jdk7u25-b11
++210f464368dba0fc4f8d239654fa7432ad2ed31f jdk7u14-b16
++f07712232642fc30dcf7c433ff890e7247b5fd0b jdk7u14-b17
++9e2a9a2c5b240daa4e27ff75d030a77827174753 jdk7u14-b18
++d9d4dc020cb37142230f6a20d2a75a677c5cd26f jdk7u14-b19
++d9d4dc020cb37142230f6a20d2a75a677c5cd26f jdk7u14-b19
++b4b7795ef8047e3d2b2ba48a70c08d9184073100 jdk7u14-b19
++f413e7a22c198559af5aca28309356e6d4edd78f jdk7u14-b20
++41686e19d8189a546434a52dd9679e9b6a0a68be jdk7u14-b21
++3e3177719b43f732239d6d51e96d26ee18440960 jdk7u14-b22
++8c6e2197930c79f6beafd83181714cc817b83229 jdk7u40-b23
++5169c92728b54a4b5e9a41071f8bf8701d0fe1fa jdk7u40-b24
++f89fd7e2800c1c35b6c339f54780d5579bb30991 jdk7u40-b25
++4ef57f592525d36487ea6eeb2be84d0e9170b26b jdk7u40-b26
++75167199239375d05b68668023c885c2776fd548 jdk7u40-b27
++ac751f3867ecffca814b25daf5e19d82d83fc755 jdk7u40-b28
++dbe42a627813892d1bb59a4240c24f60ef22930a jdk7u40-b29
+ 2d02518960053d2b1dcb9aabacd709788e92c549 jdk7u25-b12
+ 37c4268341d79b16165bdaf7e1fad489d692bc83 jdk7u25-b13
+ 9de1fc3635def64c19c51f272f09b51d8cf0ca98 jdk7u25-b14
+@@ -327,7 +344,7 @@
+ ac751f3867ecffca814b25daf5e19d82d83fc755 jdk7u40-b28
+ dbe42a627813892d1bb59a4240c24f60ef22930a jdk7u40-b29
+ 1c141e6fde911c4974c87e340eb698754607f422 jdk7u40-b30
+-58a2a470aa3bccd3eb3624e68bca9397c8cc26a2 jdk7u40-b31
++e51f24701c608e57ba7ae69ba28bbc2daab02c4c jdk7u45-b01
+ da376fd5e4d68f8a45003a6e175267dc840711cc jdk7u40-b32
+ 3fdfe7f1b06354e11e8af51b7c653c8a0adb3987 jdk7u40-b33
+ a1ae13479e8767329fa20774b5cea5976aaeb37b jdk7u40-b34
+@@ -341,3 +358,19 @@
+ 3af81bfe320c12758234233da6fa27c3c0ffcdc4 jdk7u40-b42
+ 1d53bd8fd2a62bcf336727ebec377ef7498dd4a6 jdk7u40-b43
+ dc1e099cd62d250b4a997ce694b47fe2f50d2905 jdk7u40-b60
++07e41ff8674c9438cb1124cf78eed8636ed5d4fa jdk7u45-b02
++23c983c352a170d7a5fb7d703081daf1816d257a jdk7u45-b03
++1018a8ab686da6c1be22bec3ab9d01b2dc206333 jdk7u45-b04
++22e0ca1fa645d0518b514159afafe34335699c11 jdk7u45-b05
++61343f60f25a1d0deddc1468b2eb948df5275641 jdk7u45-b06
++24088aaf3f6834e46b486b706fbc6ce1f18814e5 jdk7u45-b07
++036425509e31070700a3956aaca7c33d583b7a5e jdk7u45-b08
++b6af2c522a633de1c7b66204fac7104b410ce23c jdk7u45-b09
++3fedb8c609a0f43bc8084edbecb0435e19dcb9a2 jdk7u45-b10
++142403d9f1167b8559b49627c7199c84623307da jdk7u45-b11
++a14018a5fa18092dcca5084656abb797bdb7b5ff jdk7u45-b12
++4d38e9adeb81df9c24550070df1f358aa9c17477 jdk7u45-b13
++bab0456ba0520f73ee20814ddf7ea0d596e49abd jdk7u45-b14
++b4b2584649027b622c188db7a6c3f9cff0e20130 jdk7u45-b15
++f2479abad143d2d9f33b6c872890ca0c5dd52530 jdk7u45-b16
++6fd67e0287a9893ea1f0090fe127f18a7e235148 jdk7u45-b17
+--- Makefile 2013-09-06 11:20:33.000000000 -0700
++++ Makefile 2013-12-01 11:13:37.000000000 -0800
+@@ -264,7 +264,7 @@
+ DEBUG_NAME=$(DEBUG_NAME) \
+ GENERATE_DOCS=false \
+ $(if $(findstring true,$(BUILD_INSTALL)),BUILD_INSTALL_BUNDLES=true,) \
+- CREATE_DEBUGINFO_BUNDLES=false \
++ CREATE_DEBUGINFO_BUNDLES=true \
+ $(BOOT_CYCLE_DEBUG_SETTINGS) \
+ generic_build_repo_series
+
+--- corba/.hgtags 2013-09-06 11:20:46.000000000 -0700
++++ corba/.hgtags 2013-12-01 11:13:39.000000000 -0800
@@ -123,6 +123,7 @@
770227a4087e4e401fe87ccd19738440111c3948 jdk7-b146
36f0efbc66ef8ace3cca8aa8d0c88f3334080f8a jdk7u1-b01
@@ -100,5531 +81,337 @@
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[] ;
+@@ -302,6 +303,22 @@
+ 161ec4dd450d59e1b8ad136db231925c97ff6205 jdk7u25-b09
+ c9da98e82bb006dccd94a50871d6cdb66fa2d7e7 jdk7u25-b10
+ 109386df5b8e259d0af802217769a3c448404e49 jdk7u25-b11
++38282b734daefcbb8155b7d7ef9664130330ed14 jdk7u14-b16
++8b1d77697ca4d2a9c29d67fd2ff03aded9b06012 jdk7u14-b17
++862b43d26e03bbceb3465f93354860e0d17eb324 jdk7u14-b18
++bfbaab73969d4d978d0280d6ad51bac8c47dbaf8 jdk7u14-b19
++bfbaab73969d4d978d0280d6ad51bac8c47dbaf8 jdk7u14-b19
++a921b45a1f9086a7d598a76f920639050386f996 jdk7u14-b19
++54320e5d9da60df24f0e2c57c011809911dc06e1 jdk7u14-b20
++fb590ca4de9aaf1f6bca945be040dffc55b5e8d2 jdk7u14-b21
++e5d89aa2c1a11dba841a646858dda9ea18dc8f57 jdk7u14-b22
++d85df1552f877a1cc51f43bc07a42a0c48f18e0b jdk7u40-b23
++d3ab3b19caa02ee85359cfe07b6e0b74eb7b3d74 jdk7u40-b24
++abfc54516d0b7f9aed34ef175f6bbb93fda4cbb3 jdk7u40-b25
++be9099c54a35c00d0dfe6beeed8ea5d4ab3cd3fe jdk7u40-b26
++f745eeabb0eaabe8c0835c175b31f1e1c0f00bd4 jdk7u40-b27
++c8b9201f88f4ce417df7a40efcb7fef656d94512 jdk7u40-b28
++1ad0a5a3f7b1e9d95670d733d7e70714050ba6bf jdk7u40-b29
+ ef8e6f8305d524f3b448a85f901aadf1adc81fc0 jdk7u25-b12
+ eca480919c71072a31f62a61cb3aad30677007e3 jdk7u25-b13
+ 577c4dd1a6e9bc1bb2c2e5d5ecbab8eacb4121af jdk7u25-b14
+@@ -343,3 +360,20 @@
+ b4a480a039bc19b27bfb5fcbbbf75e651d2718b7 jdk7u40-b42
+ e29ea0b297e519010e661603a07bb8d48fa904a2 jdk7u40-b43
+ 08737d863a7aa5eb39374b26c9585e1770affe92 jdk7u40-b60
++4f54264ca4df2fc50fbb9bb2654dad97776d10ac jdk7u45-b01
++1a1a1dedf437c50797a49c21a12161a79c761757 jdk7u45-b02
++3a2cca8c2f209b533af6c1201cc8aee43628e578 jdk7u45-b03
++4f4f7869bd6585042ad9596426dd1aa0829b8e98 jdk7u45-b04
++faee62d13040eae3d081f0383843a391ceef1edd jdk7u45-b05
++435dd0e1ab9ec9cbc83dc5ed260886f6becbef25 jdk7u45-b06
++2e19615f6045c3f39e39c56c485f7bc1df97e2ce jdk7u45-b07
++771c5c869d16d2da5668e412f505ad75f8f610c1 jdk7u45-b08
++a89d69bef3614f618843f5e9a495b12d13597851 jdk7u45-b09
++fd8a2041b75c4f712f2b08d627388d44a0cf2ee7 jdk7u45-b10
++55e0d3d9514343f380336b68aa8691a89b2e710b jdk7u45-b11
++336566c2905a49fc9a6f90f5ecd30517cfcaefff jdk7u45-b12
++6cadc3dd82a423f6c24460bb1997c0f39159dd93 jdk7u45-b13
++43e22471d0c29451f282b162864c2d3e494d5871 jdk7u45-b14
++3d7a52de59f03589d7a9334a6895063ff3331bfc jdk7u45-b15
++b1f069eb48edfa6fb7428dc045a53e287215ef4a jdk7u45-b16
++8b8793f06c56e343962b473bc0fb79f23b8be734 jdk7u45-b17
+--- corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2013-09-06 11:20:49.000000000 -0700
++++ corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2013-12-01 11:13:38.000000000 -0800
+@@ -905,28 +905,4 @@
- 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;
+ return contents.toString();
+ }
+-
+- public static void main(String[] args) {
+-
+- Class remoteInterface = java.rmi.Remote.class;
+-
+- if( args.length > 0 ) {
+- String className = args[0];
+- try {
+- remoteInterface = Class.forName(className);
+- } catch(Exception e) {
+- e.printStackTrace();
+- System.exit(-1);
+- }
+- }
+-
+- System.out.println("Building name translation for " + remoteInterface);
+- try {
+- IDLNameTranslator nameTranslator =
+- IDLNameTranslatorImpl.get(remoteInterface);
+- System.out.println(nameTranslator);
+- } catch(IllegalStateException ise) {
+- ise.printStackTrace();
+- }
+- }
+ }
+--- corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2013-09-06 11:20:50.000000000 -0700
++++ corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2013-12-01 11:13:38.000000000 -0800
+@@ -43,6 +43,8 @@
+ import com.sun.corba.se.spi.orbutil.proxy.DelegateInvocationHandlerImpl ;
+ import com.sun.corba.se.spi.orbutil.proxy.CompositeInvocationHandler ;
+ import com.sun.corba.se.spi.orbutil.proxy.CompositeInvocationHandlerImpl ;
+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() {
-+ @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 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
+ public class InvocationHandlerFactoryImpl implements InvocationHandlerFactory
{
-- 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();
+@@ -114,24 +116,32 @@
+ // which extends org.omg.CORBA.Object. This handler delegates all
+ // calls directly to a DynamicStubImpl, which extends
+ // org.omg.CORBA.portable.ObjectImpl.
+- InvocationHandler dynamicStubHandler =
++ final InvocationHandler dynamicStubHandler =
+ DelegateInvocationHandlerImpl.create( stub ) ;
-@@ -48,29 +42,6 @@
- }
+ // Create an invocation handler that handles any remote interface
+ // methods.
+- InvocationHandler stubMethodHandler = new StubInvocationHandlerImpl(
++ final InvocationHandler stubMethodHandler = new StubInvocationHandlerImpl(
+ pm, classData, stub ) ;
- /**
-- * 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.
-- *
-- * 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.
-- *
-- * 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.
-- *
-- * 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.
-- *
-- * 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;
+ // Create a composite handler that handles the DynamicStub interface
+ // as well as the remote interfaces.
+ final CompositeInvocationHandler handler =
+ new CustomCompositeInvocationHandlerImpl( stub ) ;
+
++ AccessController.doPrivileged(new PrivilegedAction() {
++ @Override
++ public Void run() {
+ handler.addInvocationHandler( DynamicStub.class,
+ dynamicStubHandler ) ;
+ handler.addInvocationHandler( org.omg.CORBA.Object.class,
+ dynamicStubHandler ) ;
+ handler.addInvocationHandler( Object.class,
+ dynamicStubHandler ) ;
++ return null;
++ }
++ });
++
+
+ // If the method passed to invoke is not from DynamicStub or its superclasses,
+ // it must be from an implemented interface, so we just handle
+--- corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2013-09-06 11:20:50.000000000 -0700
++++ corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2013-12-01 11:13:38.000000000 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2012, 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
+@@ -55,7 +55,7 @@
/**
- * 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;
+ * @author Harold Carr
+ */
+-public class SelectorImpl
++class SelectorImpl
+ extends
+ Thread
+ implements
+--- corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2013-09-06 11:20:51.000000000 -0700
++++ corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2013-12-01 11:13:38.000000000 -0800
+@@ -36,6 +36,7 @@
- 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 com.sun.corba.se.impl.presentation.rmi.DynamicAccessPermission;
-+import sun.corba.SharedSecrets;
-+
- /** This is a static factory class for commonly used operations
- * for property parsing. The following operations are supported:
- *
-@@ -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
+ public class CompositeInvocationHandlerImpl implements
+ CompositeInvocationHandler
+@@ -46,11 +47,13 @@
+ public void addInvocationHandler( Class interf,
+ InvocationHandler handler )
{
-- 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
++ checkAccess();
+ classToInvocationHandler.put( interf, handler ) ;
+ }
+
+ public void setDefaultHandler( InvocationHandler handler )
+ {
++ checkAccess();
+ defaultHandler = handler ;
+ }
+
+@@ -78,4 +81,12 @@
+
+ return handler.invoke( proxy, method, args ) ;
+ }
++
++ private static final DynamicAccessPermission perm = new DynamicAccessPermission("access");
++ private void checkAccess() {
++ final SecurityManager sm = System.getSecurityManager();
++ if (sm != null) {
++ sm.checkPermission(perm);
++}
++ }
+ }
+--- corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2013-09-06 11:20:56.000000000 -0700
++++ corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2013-12-01 11:13:38.000000000 -0800
@@ -1,5 +1,5 @@
/*
-- * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved.
+- * Copyright (c) 1998, 2012, 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;
+@@ -34,6 +34,9 @@
+ import java.io.File;
+ import java.io.IOException;
+import java.io.SerializablePermission;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+ import java.util.Vector;
+ import java.util.Hashtable;
+ import java.util.Enumeration;
+@@ -49,6 +52,7 @@
+ import com.sun.corba.se.impl.util.PackagePrefixChecker;
+ import sun.rmi.rmic.Main;
+
+
/**
- * 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 @@
+ * An IIOP stub/tie generator for rmic.
+ *
+@@ -78,6 +82,7 @@
+ protected boolean castArray = false;
+ protected Hashtable transactionalObjects = new Hashtable() ;
+ protected boolean POATie = false ;
++ protected boolean emitPermissionCheck = false;
- 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() {
-+ @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() {
-+ @Override
-+ public TypeCodeOutputStream run() {
-+ return new TypeCodeOutputStream(orb);
-+ }
-+ });
-+ }
-+
-+ public static TypeCodeOutputStream newTypeCodeOutputStream(
-+ final ORB orb, final boolean littleEndian) {
-+ return AccessController.doPrivileged(
-+ new PrivilegedAction() {
-+ @Override
-+ public TypeCodeOutputStream run() {
-+ return new TypeCodeOutputStream(orb, littleEndian);
-+ }
-+ });
-+ }
-+
-+ public static EncapsOutputStream newEncapsOutputStream(
-+ final ORB orb) {
-+ return AccessController.doPrivileged(
-+ new PrivilegedAction() {
-+ @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() {
-+ @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() {
-+ @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() {
-+ @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() {
-+ @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() {
-+ @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);
+ * Default constructor for Main to use.
+@@ -193,6 +198,9 @@
+ } else if (argv[i].equals("-standardPackage")) {
+ standardPackage = true;
+ argv[i] = null;
++ } else if (argv[i].equals("-emitPermissionCheck")) {
++ emitPermissionCheck = true;
++ argv[i] = null;
+ } else if (arg.equals("-xstubbase")) {
+ argv[i] = null;
+ if (++i < argv.length && argv[i] != null && !argv[i].startsWith("-")) {
+@@ -390,9 +398,22 @@
+
+ writePackageAndImports(p);
+
++// generate
++// import java.security.AccessController;
++// import java.security.PrivilegedAction;
++// import java.io.SerializablePermission;
++ if (emitPermissionCheck) {
++ p.pln("import java.security.AccessController;");
++ p.pln("import java.security.PrivilegedAction;");
++ p.pln("import java.io.SerializablePermission;");
++ p.pln();
++ p.pln();
+ }
-+ return javaCorbaAccess;
-+ }
+
-+ public static void setJavaCorbaAccess(JavaCorbaAccess access) {
-+ javaCorbaAccess = access;
-+ }
+ // Declare the stub class; implement all remote interfaces.
+
+ p.p("public class " + currentClass);
+
-+}
---- hotspot/.hgtags 2012-08-10 09:20:36.000000000 -0700
-+++ hotspot/.hgtags 2013-04-28 16:29:15.000000000 -0700
+ p.p(" extends " + getName(stubBaseClass));
+ p.p(" implements ");
+ if (remoteInterfaces.length > 0) {
+@@ -422,6 +443,56 @@
+ writeIds( p, theType, false );
+ p.pln();
+
++ if (emitPermissionCheck) {
++
++ // produce the following generated code
++ // private static Void checkPermission() {
++ // SecurityManager sm = System.getSecurityManager();
++ // if (sm != null) {
++ // sm.checkPermission(new SerializablePermission(
++ // "enableSubclassImplementation")); // testing
++ // }
++ // return null;
++ // }
++ //
++ // private _XXXXXX_Stub(Void ignore) {
++ // }
++ //
++ // public _XXXXXX_Stub() {
++ // this(checkPermission());
++ // }
++ // where XXXXXX is the name of the remote interface
++
++ p.pln();
++ p.plnI("private static Void checkPermission() {");
++ p.plnI("SecurityManager sm = System.getSecurityManager();");
++ p.pln("if (sm != null) {");
++ p.pI();
++ p.plnI("sm.checkPermission(new SerializablePermission(");
++ p.plnI("\"enableSubclassImplementation\"));");
++ p.pO();
++ p.pO();
++ p.pOln("}");
++ p.pln("return null;");
++ p.pO();
++ p.pOln("}");
++ p.pln();
++ p.pO();
++
++ p.pI();
++ p.pln("private " + currentClass + "(Void ignore) { }");
++ p.pln();
++
++ p.plnI("public " + currentClass + "() { ");
++ p.pln("this(checkPermission());");
++ p.pOln("}");
++ p.pln();
++ }
++
++ if (!emitPermissionCheck) {
++ p.pI();
++ }
++
+ // Write the _ids() method...
+
+ p.plnI("public String[] _ids() { ");
+@@ -815,7 +886,6 @@
+ CompoundType theType) throws IOException {
+
+ // Wtite the method declaration and opening brace...
+-
+ String methodName = method.getName();
+ String methodIDLName = method.getIDLName();
+
+@@ -1631,7 +1701,7 @@
+
+ // Write data members...
+ p.pln();
+- p.pln("private " + getName(theType) + " target = null;");
++ p.pln("volatile private " + getName(theType) + " target = null;");
+ p.pln();
+
+ // Write the ids...
+@@ -1695,6 +1765,10 @@
+
+ if (remoteMethods.length > 0) {
+ p.plnI("try {");
++ p.pln(getName(theType) + " target = this.target;");
++ p.plnI("if (target == null) {");
++ p.pln("throw new java.io.IOException();");
++ p.pOln("}");
+ p.plnI(idExtInputStream + " "+in+" = ");
+ p.pln("(" + idExtInputStream + ") "+_in+";");
+ p.pO();
+--- hotspot/.hgtags 2013-09-06 11:21:49.000000000 -0700
++++ hotspot/.hgtags 2013-12-01 11:14:05.000000000 -0800
@@ -182,6 +182,7 @@
38fa55e5e79232d48f1bb8cf27d88bc094c9375a hs21-b16
81d815b05abb564aa1f4100ae13491c949b9a07e jdk7-b147
@@ -5633,80 +420,65 @@
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
+@@ -476,6 +477,24 @@
+ 8386245b59c3e82b7c728b7d3832ea342c62615d jdk7u21-b50
+ c5e4585a045fe165d067ec0e98af42eace20c5f8 jdk7u21-b12
+ 00dbf9fa12ec6b1ba15d9a9a12495f50e10837bf jdk7u21-b31
++bf2d84c5103d98db1697b50071a649ea23c4e33d jdk7u25-b01
++07119340f80f77dfcb03fa568641e80b43d4be74 jdk7u25-b02
++655bea6843fb7beabd8d9eeda59572c0c7055b85 jdk7u25-b03
++96a4e612195c0d753be24cf38fea0ee8ce30edcf jdk7u25-b04
++7151c26b838828a20cb28595ef1f70403d1868cf jdk7u25-b05
++fbb5f6083dd00ca7417e4a45311f33918bb2a5f0 jdk7u25-b06
++83abf4b2fc8a5bb7226177c5e4334bd0bfd7a8df jdk7u25-b07
++525252cd9fca4869c3fd81bc61299a85e73ff9c7 jdk7u25-b08
++706a255a8404b7e41579cea278df6bb87c314567 jdk7u25-b09
++402184622f60a2ba35479bdf124a8d4694835406 jdk7u25-b10
++cca49a35bf83664456af112482ffb3a7465d21fa jdk7u25-b11
++7ca68c0674df72fdd784de337c049404d2b5b0c3 jdk7u25-b12
++3e145a686fedd9eefdcb6b714241200ed236b41d jdk7u25-b13
++4fafaf293aa5666e8c9f5ca1d96c3f752305f586 jdk7u25-b14
++40acb370626fbc439e4cfed8854960a83a376fba jdk7u25-b15
++97a3ebd62052410e0709035f40032d3f2113ed86 jdk7u25-b30
++b80a290e6e3011097273525c4f352c70b9857464 jdk7u25-b16
++273e8afccd6ef9e10e9fe121f7b323755191f3cc jdk7u25-b32
+ e3d2c238e29c421c3b5c001e400acbfb30790cfc jdk7u14-b14
+ 860ae068f4dff62a77c8315f0335b7e935087e86 hs24-b34
+ 12619005c5e29be6e65f0dc9891ca19d9ffb1aaa jdk7u14-b15
+@@ -550,3 +569,20 @@
+ b8d8caf6df744d5342b5d284376a005e86c0b108 hs24-b56
+ eceae04782438987cd747e1c76e4085f50b43a18 jdk7u40-b43
+ af1fc2868a2b919727bfbb0858449bd991bbee4a jdk7u40-b60
++5fb434aa203c32b4551167b922a70e79831ffdf4 jdk7u45-b01
++f2039061ba49de742ae88cc3123fd1237965d665 jdk7u45-b02
++d6fd3f84a30ce82a37fc39b6e5e9d73bd8054ab2 jdk7u45-b03
++7f16aa9067386aeb3668336aa6cd63ef3dc4f44a jdk7u45-b04
++b4fe146b820b47d8b59bbb9dc9d43221436ed0ae jdk7u45-b05
++63efa616e54dd3545e16a5aa1917662548b18ee5 jdk7u45-b06
++f6748e6123b6745497d69addffdff38e224a77c5 jdk7u45-b07
++06bcab9ef18355dccc87401fc24dbd5f15615db0 jdk7u45-b08
++996b6863b3b2468cece20d7a6f571f9ec1b7830c jdk7u45-b09
++bcaf889eea9e64d30f8c3aefdcdc2c2ee29406f2 jdk7u45-b10
++7ca907428850dc2aa99ee4a906446e479dbeb392 jdk7u45-b11
++ed1505510ea0e94b17f968cdb3e8aba13c99d543 jdk7u45-b12
++89f99af7a7bbdadb5b8cf781c7d899c22df64b71 jdk7u45-b13
++718d1e9223dd0359d9ccef81fb82c32215702fe8 jdk7u45-b14
++9ad76a08e5edfe24e95eef84e15fef261bff1abf jdk7u45-b15
++429884602206fcf5314c8b953c06d54d337558ca jdk7u45-b16
++0c0dc384915cafd9bfaa2fe5792a629a22d1b990 jdk7u45-b17
+--- hotspot/agent/src/os/bsd/ps_proc.c 2013-09-06 11:21:50.000000000 -0700
++++ hotspot/agent/src/os/bsd/ps_proc.c 2013-12-01 19:30:15.000000000 -0800
+@@ -131,7 +131,7 @@
+
+ static bool ptrace_continue(pid_t pid, int signal) {
+ // pass the signal to the process so we don't swallow it
+- if (ptrace(PTRACE_CONT, pid, NULL, signal) < 0) {
++ if (ptrace(PT_CONTINUE, pid, NULL, signal) < 0) {
+ print_debug("ptrace(PTRACE_CONT, ..) failed for %d\n", pid);
+ return false;
+ }
+--- hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2013-09-06 11:21:51.000000000 -0700
++++ hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2013-12-01 11:14:05.000000000 -0800
@@ -33,6 +33,7 @@
import sun.jvm.hotspot.debugger.remote.*;
import sun.jvm.hotspot.debugger.windbg.*;
@@ -5715,8 +487,8 @@
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
+--- hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2013-09-06 11:21:52.000000000 -0700
++++ hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2013-12-01 11:14:05.000000000 -0800
@@ -35,6 +35,7 @@
import sun.jvm.hotspot.debugger.windbg.*;
import sun.jvm.hotspot.debugger.linux.*;
@@ -5725,8 +497,8 @@
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
+--- hotspot/make/bsd/Makefile 2013-09-06 11:21:59.000000000 -0700
++++ hotspot/make/bsd/Makefile 2013-12-01 11:14:05.000000000 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -5756,8 +528,8 @@
# 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
+--- hotspot/make/bsd/makefiles/buildtree.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/buildtree.make 2013-12-01 11:14:05.000000000 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -5765,7 +537,7 @@
# 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 @@
+@@ -253,6 +253,16 @@
echo "$(call gamma-path,commonsrc,os/posix/vm)"; \
[ -n "$(CFLAGS_BROWSE)" ] && \
echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \
@@ -5782,7 +554,7 @@
[ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \
echo && \
echo "HOTSPOT_EXTRA_SYSDEFS\$$(HOTSPOT_EXTRA_SYSDEFS) = $(HOTSPOT_EXTRA_SYSDEFS)" && \
-@@ -359,7 +369,7 @@
+@@ -382,7 +392,7 @@
$(QUIETLY) ( \
$(BUILDTREE_COMMENT); \
echo "JDK=${JAVA_HOME}"; \
@@ -5791,241 +563,8 @@
.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
+--- hotspot/make/bsd/makefiles/jsig.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/jsig.make 2013-12-01 11:14:05.000000000 -0800
@@ -36,9 +36,16 @@
LIBJSIG_G = lib$(JSIG_G).so
endif
@@ -6078,8 +617,8 @@
$(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
+--- hotspot/make/bsd/makefiles/launcher.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/launcher.make 2013-12-01 11:14:05.000000000 -0800
@@ -50,7 +50,7 @@
LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS)
else
@@ -6089,78 +628,488 @@
# 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;
+--- hotspot/make/bsd/makefiles/mapfile-vers-product 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/mapfile-vers-product 2013-12-01 20:12:29.000000000 -0800
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+ # This code is free software; you can redistribute it and/or modify it
+@@ -19,235 +19,247 @@
+ # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ # or visit www.oracle.com if you need additional information or have any
+ # questions.
++#
+ #
+-#
+-# Only used for OSX/Darwin builds
-- # 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;
+ # Define public interface.
+- # _JNI
+- _JNI_CreateJavaVM
+- _JNI_GetCreatedJavaVMs
+- _JNI_GetDefaultJavaVMInitArgs
-
- # 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
+- _JVM_Accept
+- _JVM_ActiveProcessorCount
+- _JVM_AllocateNewArray
+- _JVM_AllocateNewObject
+- _JVM_ArrayCopy
+- _JVM_AssertionStatusDirectives
+- _JVM_Available
+- _JVM_Bind
+- _JVM_ClassDepth
+- _JVM_ClassLoaderDepth
+- _JVM_Clone
+- _JVM_Close
+- _JVM_CX8Field
+- _JVM_CompileClass
+- _JVM_CompileClasses
+- _JVM_CompilerCommand
+- _JVM_Connect
+- _JVM_ConstantPoolGetClassAt
+- _JVM_ConstantPoolGetClassAtIfLoaded
+- _JVM_ConstantPoolGetDoubleAt
+- _JVM_ConstantPoolGetFieldAt
+- _JVM_ConstantPoolGetFieldAtIfLoaded
+- _JVM_ConstantPoolGetFloatAt
+- _JVM_ConstantPoolGetIntAt
+- _JVM_ConstantPoolGetLongAt
+- _JVM_ConstantPoolGetMethodAt
+- _JVM_ConstantPoolGetMethodAtIfLoaded
+- _JVM_ConstantPoolGetMemberRefInfoAt
+- _JVM_ConstantPoolGetSize
+- _JVM_ConstantPoolGetStringAt
+- _JVM_ConstantPoolGetUTF8At
+- _JVM_CountStackFrames
+- _JVM_CurrentClassLoader
+- _JVM_CurrentLoadedClass
+- _JVM_CurrentThread
+- _JVM_CurrentTimeMillis
+- _JVM_DefineClass
+- _JVM_DefineClassWithSource
+- _JVM_DefineClassWithSourceCond
+- _JVM_DesiredAssertionStatus
+- _JVM_DisableCompiler
+- _JVM_DoPrivileged
+- _JVM_DTraceGetVersion
+- _JVM_DTraceActivate
+- _JVM_DTraceIsProbeEnabled
+- _JVM_DTraceIsSupported
+- _JVM_DTraceDispose
+- _JVM_DumpAllStacks
+- _JVM_DumpThreads
+- _JVM_EnableCompiler
+- _JVM_Exit
+- _JVM_FillInStackTrace
+- _JVM_FindClassFromClass
+- _JVM_FindClassFromClassLoader
+- _JVM_FindClassFromBootLoader
+- _JVM_FindLibraryEntry
+- _JVM_FindLoadedClass
+- _JVM_FindPrimitiveClass
+- _JVM_FindSignal
+- _JVM_FreeMemory
+- _JVM_GC
+- _JVM_GetAllThreads
+- _JVM_GetArrayElement
+- _JVM_GetArrayLength
+- _JVM_GetCPClassNameUTF
+- _JVM_GetCPFieldClassNameUTF
+- _JVM_GetCPFieldModifiers
+- _JVM_GetCPFieldNameUTF
+- _JVM_GetCPFieldSignatureUTF
+- _JVM_GetCPMethodClassNameUTF
+- _JVM_GetCPMethodModifiers
+- _JVM_GetCPMethodNameUTF
+- _JVM_GetCPMethodSignatureUTF
+- _JVM_GetCallerClass
+- _JVM_GetClassAccessFlags
+- _JVM_GetClassAnnotations
+- _JVM_GetClassCPEntriesCount
+- _JVM_GetClassCPTypes
+- _JVM_GetClassConstantPool
+- _JVM_GetClassContext
+- _JVM_GetClassDeclaredConstructors
+- _JVM_GetClassDeclaredFields
+- _JVM_GetClassDeclaredMethods
+- _JVM_GetClassFieldsCount
+- _JVM_GetClassInterfaces
+- _JVM_GetClassLoader
+- _JVM_GetClassMethodsCount
+- _JVM_GetClassModifiers
+- _JVM_GetClassName
+- _JVM_GetClassNameUTF
+- _JVM_GetClassSignature
+- _JVM_GetClassSigners
+- _JVM_GetComponentType
+- _JVM_GetDeclaredClasses
+- _JVM_GetDeclaringClass
+- _JVM_GetEnclosingMethodInfo
+- _JVM_GetFieldAnnotations
+- _JVM_GetFieldIxModifiers
+- _JVM_GetHostName
+- _JVM_GetInheritedAccessControlContext
+- _JVM_GetInterfaceVersion
+- _JVM_GetLastErrorString
+- _JVM_GetManagement
+- _JVM_GetMethodAnnotations
+- _JVM_GetMethodDefaultAnnotationValue
+- _JVM_GetMethodIxArgsSize
+- _JVM_GetMethodIxByteCode
+- _JVM_GetMethodIxByteCodeLength
+- _JVM_GetMethodIxExceptionIndexes
+- _JVM_GetMethodIxExceptionTableEntry
+- _JVM_GetMethodIxExceptionTableLength
+- _JVM_GetMethodIxExceptionsCount
+- _JVM_GetMethodIxLocalsCount
+- _JVM_GetMethodIxMaxStack
+- _JVM_GetMethodIxModifiers
+- _JVM_GetMethodIxNameUTF
+- _JVM_GetMethodIxSignatureUTF
+- _JVM_GetMethodParameterAnnotations
+- _JVM_GetPrimitiveArrayElement
+- _JVM_GetProtectionDomain
+- _JVM_GetSockName
+- _JVM_GetSockOpt
+- _JVM_GetStackAccessControlContext
+- _JVM_GetStackTraceDepth
+- _JVM_GetStackTraceElement
+- _JVM_GetSystemPackage
+- _JVM_GetSystemPackages
+- _JVM_GetThreadStateNames
+- _JVM_GetThreadStateValues
+- _JVM_GetVersionInfo
+- _JVM_Halt
+- _JVM_HoldsLock
+- _JVM_IHashCode
+- _JVM_InitAgentProperties
+- _JVM_InitProperties
+- _JVM_InitializeCompiler
+- _JVM_InitializeSocketLibrary
+- _JVM_InternString
+- _JVM_Interrupt
+- _JVM_InvokeMethod
+- _JVM_IsArrayClass
+- _JVM_IsConstructorIx
+- _JVM_IsInterface
+- _JVM_IsInterrupted
+- _JVM_IsNaN
+- _JVM_IsPrimitiveClass
+- _JVM_IsSameClassPackage
+- _JVM_IsSilentCompiler
+- _JVM_IsSupportedJNIVersion
+- _JVM_IsThreadAlive
+- _JVM_LatestUserDefinedLoader
+- _JVM_Listen
+- _JVM_LoadClass0
+- _JVM_LoadLibrary
+- _JVM_Lseek
+- _JVM_MaxObjectInspectionAge
+- _JVM_MaxMemory
+- _JVM_MonitorNotify
+- _JVM_MonitorNotifyAll
+- _JVM_MonitorWait
+- _JVM_NanoTime
+- _JVM_NativePath
+- _JVM_NewArray
+- _JVM_NewInstanceFromConstructor
+- _JVM_NewMultiArray
+- _JVM_OnExit
+- _JVM_Open
+- _JVM_PrintStackTrace
+- _JVM_RaiseSignal
+- _JVM_RawMonitorCreate
+- _JVM_RawMonitorDestroy
+- _JVM_RawMonitorEnter
+- _JVM_RawMonitorExit
+- _JVM_Read
+- _JVM_Recv
+- _JVM_RecvFrom
+- _JVM_RegisterSignal
+- _JVM_ReleaseUTF
+- _JVM_ResolveClass
+- _JVM_ResumeThread
+- _JVM_Send
+- _JVM_SendTo
+- _JVM_SetArrayElement
+- _JVM_SetClassSigners
+- _JVM_SetLength
+- _JVM_SetNativeThreadName
+- _JVM_SetPrimitiveArrayElement
+- _JVM_SetProtectionDomain
+- _JVM_SetSockOpt
+- _JVM_SetThreadPriority
+- _JVM_Sleep
+- _JVM_Socket
+- _JVM_SocketAvailable
+- _JVM_SocketClose
+- _JVM_SocketShutdown
+- _JVM_StartThread
+- _JVM_StopThread
+- _JVM_SuspendThread
+- _JVM_SupportsCX8
+- _JVM_Sync
+- _JVM_Timeout
+- _JVM_TotalMemory
+- _JVM_TraceInstructions
+- _JVM_TraceMethodCalls
+- _JVM_UnloadLibrary
+- _JVM_Write
+- _JVM_Yield
+- _JVM_handle_bsd_signal
++
++SUNWprivate_1.1 {
++ global:
++ # JNI
++ JNI_CreateJavaVM;
++ JNI_GetCreatedJavaVMs;
++ JNI_GetDefaultJavaVMInitArgs;
++
++ # JVM
++ JVM_Accept;
++ JVM_ActiveProcessorCount;
++ JVM_AllocateNewArray;
++ JVM_AllocateNewObject;
++ JVM_ArrayCopy;
++ JVM_AssertionStatusDirectives;
++ JVM_Available;
++ JVM_Bind;
++ JVM_ClassDepth;
++ JVM_ClassLoaderDepth;
++ JVM_Clone;
++ JVM_Close;
++ JVM_CX8Field;
++ JVM_CompileClass;
++ JVM_CompileClasses;
++ JVM_CompilerCommand;
++ JVM_Connect;
++ JVM_ConstantPoolGetClassAt;
++ JVM_ConstantPoolGetClassAtIfLoaded;
++ JVM_ConstantPoolGetDoubleAt;
++ JVM_ConstantPoolGetFieldAt;
++ JVM_ConstantPoolGetFieldAtIfLoaded;
++ JVM_ConstantPoolGetFloatAt;
++ JVM_ConstantPoolGetIntAt;
++ JVM_ConstantPoolGetLongAt;
++ JVM_ConstantPoolGetMethodAt;
++ JVM_ConstantPoolGetMethodAtIfLoaded;
++ JVM_ConstantPoolGetMemberRefInfoAt;
++ JVM_ConstantPoolGetSize;
++ JVM_ConstantPoolGetStringAt;
++ JVM_ConstantPoolGetUTF8At;
++ JVM_CountStackFrames;
++ JVM_CurrentClassLoader;
++ JVM_CurrentLoadedClass;
++ JVM_CurrentThread;
++ JVM_CurrentTimeMillis;
++ JVM_DefineClass;
++ JVM_DefineClassWithSource;
++ JVM_DefineClassWithSourceCond;
++ JVM_DesiredAssertionStatus;
++ JVM_DisableCompiler;
++ JVM_DoPrivileged;
++ JVM_DTraceGetVersion;
++ JVM_DTraceActivate;
++ JVM_DTraceIsProbeEnabled;
++ JVM_DTraceIsSupported;
++ JVM_DTraceDispose;
++ JVM_DumpAllStacks;
++ JVM_DumpThreads;
++ JVM_EnableCompiler;
++ JVM_Exit;
++ JVM_FillInStackTrace;
++ JVM_FindClassFromClass;
++ JVM_FindClassFromClassLoader;
++ JVM_FindClassFromBootLoader;
++ JVM_FindLibraryEntry;
++ JVM_FindLoadedClass;
++ JVM_FindPrimitiveClass;
++ JVM_FindSignal;
++ JVM_FreeMemory;
++ JVM_GC;
++ JVM_GetAllThreads;
++ JVM_GetArrayElement;
++ JVM_GetArrayLength;
++ JVM_GetCPClassNameUTF;
++ JVM_GetCPFieldClassNameUTF;
++ JVM_GetCPFieldModifiers;
++ JVM_GetCPFieldNameUTF;
++ JVM_GetCPFieldSignatureUTF;
++ JVM_GetCPMethodClassNameUTF;
++ JVM_GetCPMethodModifiers;
++ JVM_GetCPMethodNameUTF;
++ JVM_GetCPMethodSignatureUTF;
++ JVM_GetCallerClass;
++ JVM_GetClassAccessFlags;
++ JVM_GetClassAnnotations;
++ JVM_GetClassCPEntriesCount;
++ JVM_GetClassCPTypes;
++ JVM_GetClassConstantPool;
++ JVM_GetClassContext;
++ JVM_GetClassDeclaredConstructors;
++ JVM_GetClassDeclaredFields;
++ JVM_GetClassDeclaredMethods;
++ JVM_GetClassFieldsCount;
++ JVM_GetClassInterfaces;
++ JVM_GetClassLoader;
++ JVM_GetClassMethodsCount;
++ JVM_GetClassModifiers;
++ JVM_GetClassName;
++ JVM_GetClassNameUTF;
++ JVM_GetClassSignature;
++ JVM_GetClassSigners;
++ JVM_GetComponentType;
++ JVM_GetDeclaredClasses;
++ JVM_GetDeclaringClass;
++ JVM_GetEnclosingMethodInfo;
++ JVM_GetFieldAnnotations;
++ JVM_GetFieldIxModifiers;
++ JVM_GetHostName;
++ JVM_GetInheritedAccessControlContext;
++ JVM_GetInterfaceVersion;
++ JVM_GetLastErrorString;
++ JVM_GetManagement;
++ JVM_GetMethodAnnotations;
++ JVM_GetMethodDefaultAnnotationValue;
++ JVM_GetMethodIxArgsSize;
++ JVM_GetMethodIxByteCode;
++ JVM_GetMethodIxByteCodeLength;
++ JVM_GetMethodIxExceptionIndexes;
++ JVM_GetMethodIxExceptionTableEntry;
++ JVM_GetMethodIxExceptionTableLength;
++ JVM_GetMethodIxExceptionsCount;
++ JVM_GetMethodIxLocalsCount;
++ JVM_GetMethodIxMaxStack;
++ JVM_GetMethodIxModifiers;
++ JVM_GetMethodIxNameUTF;
++ JVM_GetMethodIxSignatureUTF;
++ JVM_GetMethodParameterAnnotations;
++ JVM_GetPrimitiveArrayElement;
++ JVM_GetProtectionDomain;
++ JVM_GetSockName;
++ JVM_GetSockOpt;
++ JVM_GetStackAccessControlContext;
++ JVM_GetStackTraceDepth;
++ JVM_GetStackTraceElement;
++ JVM_GetSystemPackage;
++ JVM_GetSystemPackages;
++ JVM_GetThreadStateNames;
++ JVM_GetThreadStateValues;
++ JVM_GetVersionInfo;
++ JVM_Halt;
++ JVM_HoldsLock;
++ JVM_IHashCode;
++ JVM_InitAgentProperties;
++ JVM_InitProperties;
++ JVM_InitializeCompiler;
++ JVM_InitializeSocketLibrary;
++ JVM_InternString;
++ JVM_Interrupt;
++ JVM_InvokeMethod;
++ JVM_IsArrayClass;
++ JVM_IsConstructorIx;
++ JVM_IsInterface;
++ JVM_IsInterrupted;
++ JVM_IsNaN;
++ JVM_IsPrimitiveClass;
++ JVM_IsSameClassPackage;
++ JVM_IsSilentCompiler;
++ JVM_IsSupportedJNIVersion;
++ JVM_IsThreadAlive;
++ JVM_LatestUserDefinedLoader;
++ JVM_Listen;
++ JVM_LoadClass0;
++ JVM_LoadLibrary;
++ JVM_Lseek;
++ JVM_MaxObjectInspectionAge;
++ JVM_MaxMemory;
++ JVM_MonitorNotify;
++ JVM_MonitorNotifyAll;
++ JVM_MonitorWait;
++ JVM_NanoTime;
++ JVM_NativePath;
++ JVM_NewArray;
++ JVM_NewInstanceFromConstructor;
++ JVM_NewMultiArray;
++ JVM_OnExit;
++ JVM_Open;
++ JVM_PrintStackTrace;
++ JVM_RaiseSignal;
++ JVM_RawMonitorCreate;
++ JVM_RawMonitorDestroy;
++ JVM_RawMonitorEnter;
++ JVM_RawMonitorExit;
++ JVM_Read;
++ JVM_Recv;
++ JVM_RecvFrom;
++ JVM_RegisterSignal;
++ JVM_ReleaseUTF;
++ JVM_ResolveClass;
++ JVM_ResumeThread;
++ JVM_Send;
++ JVM_SendTo;
++ JVM_SetArrayElement;
++ JVM_SetClassSigners;
++ JVM_SetLength;
+ JVM_SetNativeThreadName;
- JVM_SetPrimitiveArrayElement;
- JVM_SetProtectionDomain;
- JVM_SetSockOpt;
-@@ -244,24 +245,6 @@
- JVM_Yield;
- JVM_handle_bsd_signal;
++ JVM_SetPrimitiveArrayElement;
++ JVM_SetProtectionDomain;
++ JVM_SetSockOpt;
++ JVM_SetThreadPriority;
++ JVM_Sleep;
++ JVM_Socket;
++ JVM_SocketAvailable;
++ JVM_SocketClose;
++ JVM_SocketShutdown;
++ JVM_StartThread;
++ JVM_StopThread;
++ JVM_SuspendThread;
++ JVM_SupportsCX8;
++ JVM_Sync;
++ JVM_Timeout;
++ JVM_TotalMemory;
++ JVM_TraceInstructions;
++ JVM_TraceMethodCalls;
++ JVM_UnloadLibrary;
++ JVM_Write;
++ JVM_Yield;
++ JVM_handle_linux_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
+- _jio_fprintf
+- _jio_printf
+- _jio_snprintf
+- _jio_vfprintf
+- _jio_vsnprintf
++ jio_fprintf;
++ jio_printf;
++ jio_snprintf;
++ jio_vfprintf;
++ jio_vsnprintf;
++ fork1;
++ numa_warn;
++ numa_error;
++
++ # Needed because there is no JVM interface for this.
++ sysThreadAvailableStackWithSlack;
+
+ # This is for Forte Analyzer profiling support.
+- _AsyncGetCallTrace
++ AsyncGetCallTrace;
++
++ # INSERT VTABLE SYMBOLS HERE
+
+- # INSERT VTABLE SYMBOLS HERE
++ local:
++ *;
++};
+
+--- hotspot/make/bsd/makefiles/ppc.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/ppc.make 2013-12-01 11:14:05.000000000 -0800
@@ -28,3 +28,6 @@
# Must also specify if CPU is big endian
CFLAGS += -DVM_BIG_ENDIAN
@@ -6168,8 +1117,8 @@
+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
+--- hotspot/make/bsd/makefiles/saproc.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/bsd/makefiles/saproc.make 2013-12-01 11:14:05.000000000 -0800
@@ -36,6 +36,11 @@
LIBSAPROC_G = lib$(SAPROC_G).so
endif
@@ -6226,146 +1175,86 @@
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%)
+--- hotspot/make/hotspot_version 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/hotspot_version 2013-12-01 11:14:00.000000000 -0800
+@@ -34,8 +34,8 @@
+ HOTSPOT_VM_COPYRIGHT=Copyright 2013
--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
+ HS_MAJOR_VER=24
+-HS_MINOR_VER=0
+-HS_BUILD_NUMBER=56
++HS_MINOR_VER=45
++HS_BUILD_NUMBER=08
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 @@
+--- hotspot/make/solaris/makefiles/defs.make 2013-09-06 11:22:00.000000000 -0700
++++ hotspot/make/solaris/makefiles/defs.make 2013-12-01 11:14:06.000000000 -0800
+@@ -221,8 +221,8 @@
endif
- ifeq ($(ARCH_DATA_MODEL), 32)
+ ifeq ($(JVM_VARIANT_CLIENT),true)
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
+ ifeq ($(ARCH_DATA_MODEL),32)
+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX)
+--- hotspot/make/windows/makefiles/compile.make 2013-09-06 11:22:01.000000000 -0700
++++ hotspot/make/windows/makefiles/compile.make 2013-12-01 11:14:01.000000000 -0800
+@@ -172,6 +172,7 @@
+ PRODUCT_OPT_OPTION = /O2 /Oy-
+ FASTDEBUG_OPT_OPTION = /O2 /Oy-
+ DEBUG_OPT_OPTION = /Od
++SAFESEH_FLAG = /SAFESEH
+ !endif
+
+ !if "$(COMPILER_NAME)" == "VS2005"
+@@ -190,6 +191,7 @@
+ !if "x$(MT)" == "x"
+ MT=mt.exe
+ !endif
++SAFESEH_FLAG = /SAFESEH
+ !endif
+
+ !if "$(COMPILER_NAME)" == "VS2008"
+@@ -203,6 +205,7 @@
+ !if "x$(MT)" == "x"
+ MT=mt.exe
+ !endif
++SAFESEH_FLAG = /SAFESEH
+ !endif
+
+ !if "$(COMPILER_NAME)" == "VS2010"
+@@ -216,9 +219,11 @@
+ !if "x$(MT)" == "x"
+ MT=mt.exe
+ !endif
+-!if "$(BUILDARCH)" == "i486"
+-LD_FLAGS = /SAFESEH $(LD_FLAGS)
++SAFESEH_FLAG = /SAFESEH
+ !endif
++
++!if "$(BUILDARCH)" == "i486"
++LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS)
+ !endif
+
+ # If NO_OPTIMIZATIONS is defined in the environment, turn everything off
+--- hotspot/make/windows/makefiles/sa.make 2013-09-06 11:22:01.000000000 -0700
++++ hotspot/make/windows/makefiles/sa.make 2013-12-01 11:14:01.000000000 -0800
+@@ -107,6 +107,9 @@
+ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
+ SA_LFLAGS = $(SA_LFLAGS) -map -debug
+ !endif
++!if "$(BUILDARCH)" == "i486"
++SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS)
++!endif
+
+ # Note that we do not keep sawindbj.obj around as it would then
+ # get included in the dumpbin command in build_vm_def.sh
+--- hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2013-09-06 11:22:02.000000000 -0700
++++ hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2013-12-01 11:14:06.000000000 -0800
@@ -71,7 +71,11 @@
define_pd_global(bool, RewriteBytecodes, true);
define_pd_global(bool, RewriteFrequentPairs, true);
@@ -6378,139 +1267,27 @@
// 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;
+--- hotspot/src/os/bsd/vm/attachListener_bsd.cpp 2013-09-06 11:22:03.000000000 -0700
++++ hotspot/src/os/bsd/vm/attachListener_bsd.cpp 2013-12-01 16:07:49.000000000 -0800
+@@ -460,14 +460,14 @@
-+ // 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()));
+ void AttachListener::vm_start() {
+ char fn[UNIX_PATH_MAX];
+- struct stat64 st;
++ struct stat st;
+ int ret;
-@@ -1702,6 +1713,14 @@
- "copied argument(s) must fall within current frame");
- }
+ int n = snprintf(fn, UNIX_PATH_MAX, "%s/.java_pid%d",
+ os::get_temp_directory(), os::current_process_id());
+ assert(n < (int)UNIX_PATH_MAX, "java_pid file name buffer overflow");
-+ 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;
+- RESTARTABLE(::stat64(fn, &st), ret);
++ RESTARTABLE(::stat(fn, &st), ret);
+ if (ret == 0) {
+ ret = ::unlink(fn);
+ if (ret == -1) {
--- 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
++++ hotspot/src/os/bsd/vm/decoder_bsd.cpp 2013-12-01 11:14:05.000000000 -0800
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -6558,9 +1335,91 @@
+ 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 @@
+--- hotspot/src/os/bsd/vm/os_bsd.cpp 2013-09-06 11:22:03.000000000 -0700
++++ port/hotspot/src/os/bsd/vm/os_bsd.cpp 2013-12-07 18:34:55.000000000 -0800
+@@ -187,6 +187,8 @@
+ static int SR_signum = SIGUSR2;
+ sigset_t SR_sigset;
+
++// Declarations
++static void unpackTime(timespec* absTime, bool isAbsolute, jlong time);
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // utility functions
+@@ -355,7 +357,11 @@
+ * since it returns a 64 bit value)
+ */
+ mib[0] = CTL_HW;
++#ifdef HW_MEMSIZE
+ mib[1] = HW_MEMSIZE;
++#else
++ mib[1] = HW_USERMEM;
++#endif
+ len = sizeof(mem_val);
+ if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1) {
+ assert(len == sizeof(mem_val), "unexpected data size");
+@@ -971,13 +977,14 @@
+ #endif
+
+ #ifdef __APPLE__
+-static uint64_t locate_unique_thread_id() {
++static uint64_t locate_unique_thread_id(mach_port_t mach_thread_port) {
+ // Additional thread_id used to correlate threads in SA
+ thread_identifier_info_data_t m_ident_info;
+ mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT;
+
+- thread_info(::mach_thread_self(), THREAD_IDENTIFIER_INFO,
++ thread_info(mach_thread_port, THREAD_IDENTIFIER_INFO,
+ (thread_info_t) &m_ident_info, &count);
++
+ return m_ident_info.thread_id;
+ }
+ #endif
+@@ -1009,9 +1016,14 @@
+
+ #ifdef _ALLBSD_SOURCE
+ #ifdef __APPLE__
+- // thread_id is mach thread on macos
+- osthread->set_thread_id(::mach_thread_self());
+- osthread->set_unique_thread_id(locate_unique_thread_id());
++ // thread_id is mach thread on macos, which pthreads graciously caches and provides for us
++ mach_port_t thread_id = ::pthread_mach_thread_np(::pthread_self());
++ guarantee(thread_id != 0, "thread id missing from pthreads");
++ osthread->set_thread_id(thread_id);
++
++ uint64_t unique_thread_id = locate_unique_thread_id(thread_id);
++ guarantee(unique_thread_id != 0, "unique thread id was not found");
++ osthread->set_unique_thread_id(unique_thread_id);
+ #else
+ // thread_id is pthread_id on BSD
+ osthread->set_thread_id(::pthread_self());
+@@ -1207,8 +1219,14 @@
+ // Store pthread info into the OSThread
+ #ifdef _ALLBSD_SOURCE
+ #ifdef __APPLE__
+- osthread->set_thread_id(::mach_thread_self());
+- osthread->set_unique_thread_id(locate_unique_thread_id());
++ // thread_id is mach thread on macos, which pthreads graciously caches and provides for us
++ mach_port_t thread_id = ::pthread_mach_thread_np(::pthread_self());
++ guarantee(thread_id != 0, "just checking");
++ osthread->set_thread_id(thread_id);
++
++ uint64_t unique_thread_id = locate_unique_thread_id(thread_id);
++ guarantee(unique_thread_id != 0, "just checking");
++ osthread->set_unique_thread_id(unique_thread_id);
+ #else
+ osthread->set_thread_id(::pthread_self());
+ #endif
+@@ -1830,7 +1848,7 @@
+
+ intx os::current_thread_id() {
+ #ifdef __APPLE__
+- return (intx)::mach_thread_self();
++ return (intx)::pthread_mach_thread_np(::pthread_self());
+ #else
+ return (intx)::pthread_self();
+ #endif
+@@ -2381,14 +2399,14 @@
}
void os::print_os_info_brief(outputStream* st) {
@@ -6577,7 +1436,7 @@
os::Posix::print_uname_info(st);
-@@ -2357,10 +2357,6 @@
+@@ -2397,10 +2415,6 @@
os::Posix::print_load_average(st);
}
@@ -6588,7 +1447,7 @@
void os::print_memory_info(outputStream* st) {
st->print("Memory:");
-@@ -2377,6 +2373,7 @@
+@@ -2417,6 +2431,7 @@
st->print("(" UINT64_FORMAT "k free)",
os::available_memory() >> 10);
#ifndef _ALLBSD_SOURCE
@@ -6596,7 +1455,7 @@
st->print(", swap " UINT64_FORMAT "k",
((jlong)si.totalswap * si.mem_unit) >> 10);
st->print("(" UINT64_FORMAT "k free)",
-@@ -2384,12 +2381,22 @@
+@@ -2424,12 +2439,22 @@
#endif
st->cr();
@@ -6619,7 +1478,7 @@
// 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 @@
+@@ -2575,6 +2600,25 @@
len = strlen(buf);
jrelib_p = buf + len;
@@ -6645,7 +1504,7 @@
// Add the appropriate library subdir
snprintf(jrelib_p, buflen-len, "/jre/lib");
if (0 != access(buf, F_OK)) {
-@@ -2561,6 +2587,7 @@
+@@ -2604,6 +2648,7 @@
if (rp == NULL)
return;
}
@@ -6653,10 +1512,35 @@
}
}
}
-@@ -2817,7 +2844,11 @@
+@@ -2707,10 +2752,14 @@
+ bool timedwait(unsigned int sec, int nsec);
+ private:
+ jlong currenttime() const;
+- semaphore_t _semaphore;
++ os_semaphore_t _semaphore;
+ };
+
++#if defined(__FreeBSD__) && __FreeBSD__ > 8
++Semaphore::Semaphore() : _semaphore() {
++#else
+ Semaphore::Semaphore() : _semaphore(0) {
++#endif
+ SEM_INIT(_semaphore, 0);
}
- void os::free_memory(char *addr, size_t bytes, size_t alignment_hint) {
+@@ -2775,7 +2824,7 @@
+
+ bool Semaphore::timedwait(unsigned int sec, int nsec) {
+ struct timespec ts;
+- jlong endtime = unpackTime(&ts, false, (sec * NANOSECS_PER_SEC) + nsec);
++ unpackTime(&ts, false, (sec * NANOSECS_PER_SEC) + nsec);
+
+ while (1) {
+ int result = sem_timedwait(&_semaphore, &ts);
+@@ -2996,7 +3045,11 @@
+ }
+
+ void os::pd_free_memory(char *addr, size_t bytes, size_t alignment_hint) {
+#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ commit_memory(addr, bytes, alignment_hint, false);
+#else
@@ -6665,8 +1549,16 @@
}
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
+@@ -3829,6 +3882,7 @@
+ return OS_OK;
+ #elif defined(__FreeBSD__)
+ int ret = pthread_setprio(thread->osthread()->pthread_id(), newpri);
++ return (ret == 0) ? OS_OK : OS_ERR;
+ #elif defined(__APPLE__) || defined(__NetBSD__)
+ struct sched_param sp;
+ int policy;
+--- hotspot/src/os/bsd/vm/os_bsd.hpp 2013-09-06 11:22:03.000000000 -0700
++++ hotspot/src/os/bsd/vm/os_bsd.hpp 2013-12-01 11:14:06.000000000 -0800
@@ -103,6 +103,12 @@
static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
@@ -6680,8 +1572,8 @@
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
+--- hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2013-09-06 11:22:03.000000000 -0700
++++ hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2013-12-01 11:14:06.000000000 -0800
@@ -31,10 +31,22 @@
# include "atomic_bsd_x86.inline.hpp"
# include "orderAccess_bsd_x86.inline.hpp"
@@ -6705,8 +1597,8 @@
// 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
+--- hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2013-09-06 11:22:03.000000000 -0700
++++ hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2013-12-01 11:14:05.000000000 -0800
@@ -34,11 +34,26 @@
# include "orderAccess_bsd_x86.inline.hpp"
# include "prefetch_bsd_x86.inline.hpp"
@@ -6734,57 +1626,9 @@
// 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 @@
+--- hotspot/src/os/posix/vm/os_posix.cpp 2013-09-06 11:22:04.000000000 -0700
++++ hotspot/src/os/posix/vm/os_posix.cpp 2013-12-01 11:14:06.000000000 -0800
+@@ -173,11 +173,19 @@
if (rlim.rlim_cur == RLIM_INFINITY) st->print("infinity");
else st->print("%d", rlim.rlim_cur);
@@ -6804,58 +1648,8 @@
}
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
+--- hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2013-09-06 11:22:04.000000000 -0700
++++ hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2013-12-01 11:14:07.000000000 -0800
@@ -24,7 +24,7 @@
*/
@@ -6865,681 +1659,55 @@
# include /* 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 @@
+--- hotspot/src/share/vm/classfile/classFileParser.cpp 2013-09-06 11:22:10.000000000 -0700
++++ hotspot/src/share/vm/classfile/classFileParser.cpp 2013-12-01 11:14:01.000000000 -0800
+@@ -2028,8 +2028,8 @@
+ }
+ if (lvt_cnt == max_lvt_cnt) {
+ max_lvt_cnt <<= 1;
+- REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt);
+- REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt);
++ localvariable_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt);
++ localvariable_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt);
+ }
+ localvariable_table_start[lvt_cnt] =
+ parse_localvariable_table(code_length,
+@@ -2058,8 +2058,8 @@
+ // Parse local variable type table
+ if (lvtt_cnt == max_lvtt_cnt) {
+ max_lvtt_cnt <<= 1;
+- REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt);
+- REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt);
++ localvariable_type_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt);
++ localvariable_type_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt);
+ }
+ localvariable_type_table_start[lvtt_cnt] =
+ parse_localvariable_table(code_length,
+@@ -4051,9 +4051,8 @@
+ for (int index = 0; index < num_methods; index++) {
+ methodOop m = (methodOop)methods->obj_at(index);
- 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
---- 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;
- }
+- // skip private, static and methods
+- if ((!m->is_private()) &&
+- (!m->is_static()) &&
++ // skip static and methods
++ if ((!m->is_static()) &&
+ (m->name() != vmSymbols::object_initializer_name())) {
-+// 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 @@
- }
+ Symbol* name = m->name();
+--- hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2013-09-06 11:22:12.000000000 -0700
++++ hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2013-12-01 18:56:31.000000000 -0800
+@@ -109,7 +109,7 @@
+ if (e.should_commit()) {
+ e.set_gcId(_shared_gc_info.id());
+ e.set_data(to_trace_struct(pf_info));
+- e.set_thread(pf_info.thread()->thread_id());
++ e.set_thread((uint64_t) pf_info.thread()->thread_id());
+ e.commit();
}
}
-+
-+// 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
+--- hotspot/src/share/vm/runtime/atomic.cpp 2013-09-06 11:22:15.000000000 -0700
++++ hotspot/src/share/vm/runtime/atomic.cpp 2013-12-01 11:14:05.000000000 -0800
@@ -54,6 +54,12 @@
#ifdef TARGET_OS_ARCH_windows_x86
# include "atomic_windows_x86.inline.hpp"
@@ -7553,22 +1721,98 @@
#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")
+--- hotspot/src/share/vm/runtime/mutexLocker.cpp 2013-09-06 11:22:15.000000000 -0700
++++ hotspot/src/share/vm/runtime/mutexLocker.cpp 2013-12-01 11:14:07.000000000 -0800
+@@ -133,13 +133,15 @@
- /*
- * 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
+ Mutex* Management_lock = NULL;
+ Monitor* Service_lock = NULL;
+-Mutex* Stacktrace_lock = NULL;
++Monitor* PeriodicTask_lock = NULL;
+
+-Monitor* JfrQuery_lock = NULL;
++#ifdef INCLUDE_TRACE
++Mutex* JfrStacktrace_lock = NULL;
+ Monitor* JfrMsg_lock = NULL;
+ Mutex* JfrBuffer_lock = NULL;
+ Mutex* JfrStream_lock = NULL;
+-Monitor* PeriodicTask_lock = NULL;
++Mutex* JfrThreadGroups_lock = NULL;
++#endif
+
+ #define MAX_NUM_MUTEX 128
+ static Monitor * _mutex_array[MAX_NUM_MUTEX];
+@@ -215,7 +217,6 @@
+ def(Patching_lock , Mutex , special, true ); // used for safepointing and code patching.
+ def(ObjAllocPost_lock , Monitor, special, false);
+ def(Service_lock , Monitor, special, true ); // used for service thread operations
+- def(Stacktrace_lock , Mutex, special, true ); // used for JFR stacktrace database
+ def(JmethodIdCreation_lock , Mutex , leaf, true ); // used for creating jmethodIDs.
+
+ def(SystemDictionary_lock , Monitor, leaf, true ); // lookups done by VM thread
+@@ -278,12 +279,17 @@
+ def(MethodCompileQueue_lock , Monitor, nonleaf+4, true );
+ def(Debug2_lock , Mutex , nonleaf+4, true );
+ def(Debug3_lock , Mutex , nonleaf+4, true );
+- def(CompileThread_lock , Monitor, nonleaf+5, false );
++ def(CompileThread_lock , Monitor, nonleaf+5, false);
++ def(PeriodicTask_lock , Monitor, nonleaf+5, true);
+
++#ifdef INCLUDE_TRACE
+ def(JfrMsg_lock , Monitor, leaf, true);
+ def(JfrBuffer_lock , Mutex, nonleaf+1, true);
++ def(JfrThreadGroups_lock , Mutex, nonleaf+1, true);
+ def(JfrStream_lock , Mutex, nonleaf+2, true);
+- def(PeriodicTask_lock , Monitor, nonleaf+5, true);
++ def(JfrStacktrace_lock , Mutex, special, true );
++#endif
++
+ }
+
+ GCMutexLocker::GCMutexLocker(Monitor * mutex) {
+--- hotspot/src/share/vm/runtime/mutexLocker.hpp 2013-09-06 11:22:15.000000000 -0700
++++ hotspot/src/share/vm/runtime/mutexLocker.hpp 2013-12-01 11:14:07.000000000 -0800
+@@ -135,13 +135,15 @@
+
+ extern Mutex* Management_lock; // a lock used to serialize JVM management
+ extern Monitor* Service_lock; // a lock used for service thread operation
+-extern Mutex* Stacktrace_lock; // used to guard access to the stacktrace table
++extern Monitor* PeriodicTask_lock; // protects the periodic task structure
+
+-extern Monitor* JfrQuery_lock; // protects JFR use
++#ifdef INCLUDE_TRACE
++extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table
+ extern Monitor* JfrMsg_lock; // protects JFR messaging
+ extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
+ extern Mutex* JfrStream_lock; // protects JFR stream access
+-extern Monitor* PeriodicTask_lock; // protects the periodic task structure
++extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups
++#endif
+
+ // A MutexLocker provides mutual exclusion with respect to a given mutex
+ // for the scope which contains the locker. The lock is an OS lock, not
+--- hotspot/src/share/vm/runtime/objectMonitor.cpp 2013-09-06 11:22:15.000000000 -0700
++++ hotspot/src/share/vm/runtime/objectMonitor.cpp 2013-12-01 19:08:09.000000000 -0800
+@@ -1684,7 +1684,7 @@
+ }
+ iterator->_notified = 1 ;
+ Thread * Self = THREAD;
+- iterator->_notifier_tid = Self->osthread()->thread_id();
++ iterator->_notifier_tid = (jlong) Self->osthread()->thread_id();
+
+ ObjectWaiter * List = _EntryList ;
+ if (List != NULL) {
+@@ -1810,7 +1810,7 @@
+ guarantee (iterator->_notified == 0, "invariant") ;
+ iterator->_notified = 1 ;
+ Thread * Self = THREAD;
+- iterator->_notifier_tid = Self->osthread()->thread_id();
++ iterator->_notifier_tid = (jlong) Self->osthread()->thread_id();
+ if (Policy != 4) {
+ iterator->TState = ObjectWaiter::TS_ENTER ;
+ }
+--- hotspot/src/share/vm/runtime/os.hpp 2013-09-06 11:22:15.000000000 -0700
++++ hotspot/src/share/vm/runtime/os.hpp 2013-12-01 11:14:07.000000000 -0800
@@ -30,6 +30,9 @@
#include "runtime/extendedPC.hpp"
#include "runtime/handles.hpp"
@@ -7578,16 +1822,8 @@
+#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
+@@ -755,8 +758,8 @@
# include "os_windows.hpp"
#endif
#ifdef TARGET_OS_FAMILY_bsd
@@ -7597,91 +1833,42 @@
#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);
+--- hotspot/src/share/vm/runtime/vmThread.cpp 2013-09-06 11:22:16.000000000 -0700
++++ hotspot/src/share/vm/runtime/vmThread.cpp 2013-12-01 19:27:03.000000000 -0800
+@@ -390,7 +390,7 @@
+ // Only write caller thread information for non-concurrent vm operations.
+ // For concurrent vm operations, the thread id is set to 0 indicating thread is unknown.
+ // This is because the caller thread could have exited already.
+- event.set_caller(is_concurrent ? 0 : op->calling_thread()->osthread()->thread_id());
++ event.set_caller(is_concurrent ? 0 : (uint64_t) op->calling_thread()->osthread()->thread_id());
+ event.commit();
+ }
- 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);
- }
+--- hotspot/src/share/vm/trace/tracetypes.xml 2013-09-06 11:22:17.000000000 -0700
++++ hotspot/src/share/vm/trace/tracetypes.xml 2013-12-01 18:56:50.000000000 -0800
+@@ -60,7 +60,7 @@
+
+
+
++ type="thread_id_t" builtin_type="OSTHREAD">
+
+
--#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} " );
- }
+@@ -294,8 +294,8 @@
+ type="u8" sizeop="sizeof(u8)"/>
--#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 @@
+
+ .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
++# Run test for InternTest.java
+#
+
+if [ "${TESTSRC}" = "" ]
-+ then 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"
++ echo "TESTJAVA not set, selecting " ${TESTJAVA}
++ echo "If this is incorrect, try setting the variable manually."
++fi
++
++if [ "${TESTCLASSES}" = "" ]
++then
++ echo "TESTCLASSES not set. Test cannot execute. Failed."
++ exit 1
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
++ SunOS | Linux | *BSD )
++ NULL=/dev/null
++ PS=":"
++ FS="/"
++ ;;
+ Windows_* )
++ NULL=NUL
++ PS=";"
+ FS="\\"
+ ;;
+ * )
-+ FS="/"
++ echo "Unrecognized system!"
++ exit 1;
+ ;;
+esac
+
-+JAVA=${TESTJAVA}${FS}bin${FS}java
++JEMMYPATH=${CPAPPEND}
++CLASSPATH=.${PS}${TESTCLASSES}${PS}${JEMMYPATH} ; export CLASSPATH
+
-+#
-+# Just run with an option we are confident will not be recognized,
-+# and check for the message:
-+#
-+OPTION=this_is_not_an_option
++THIS_DIR=`pwd`
+
-+${JAVA} ${TESTVMOPTS} -showversion -XX:${OPTION} 2>&1 | grep "Unrecognized VM option"
-+if [ "$?" != "0" ]
++${TESTJAVA}${FS}bin${FS}java -fullversion
++
++${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}InternTest.java
++
++cp ${TESTSRC}${FS}badstrings.txt .
++
++${TESTJAVA}${FS}bin${FS}java -XX:+PrintStringTableStatistics -XX:+TraceSafepointCleanupTime InternTest bad > test.out 2>&1 &
++C_PID=$!
++
++sleep 60
++
++ps | grep ${C_PID} | grep -v grep
++
++if [ $? = 0 ]
+then
-+ printf "FAILED: option not flagged as unrecognized.\n"
-+ exit 1
++ kill -9 ${C_PID}
++ echo "Test Failed"
++ exit 1
++else
++ echo "Test Passed"
++ exit 0
+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
+--- jaxp/.hgtags 2013-09-06 11:22:52.000000000 -0700
++++ jaxp/.hgtags 2013-12-01 11:13:42.000000000 -0800
@@ -123,6 +123,7 @@
bcd31fa1e3c6f51b4fdd427ef905188cdac57164 jdk7-b146
067fb18071e3872698f6218724958bd0cebf30a3 jdk7u1-b01
@@ -9267,6625 +1993,8386 @@
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 ClassGen 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 M. Dahm
- */
-@@ -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 M. Dahm
- */
- 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 M. Dahm
- */
- 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 @@
- *
- *
-+ * @version $Id: JavaWrapper.java,v 1.3 2007-07-19 04:34:52 ofung Exp $
- * @author M. Dahm
- * @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() {
-+ 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 @@
+@@ -302,6 +303,22 @@
+ 5952538d55e624132f97400332a50b71880c874c jdk7u25-b09
+ aa00dd983dd0f5b07269d0648a0325e9b3e0d957 jdk7u25-b10
+ 0fb6d76bcd2e8d54d0a69e1c3d2a85d84b3e17a4 jdk7u25-b11
++7b47e1a26f7cbb8d8d22ea165f2d7fbbbd354c77 jdk7u14-b16
++77ac1ef42b2fd47cc87b9800f63efdd4cf2fa05d jdk7u14-b17
++d47975f80a24b55410fa2e2c5f50f3405d83fe73 jdk7u14-b18
++331e489ecb7b19fa98c60324f7ce5d168284a8c8 jdk7u14-b19
++331e489ecb7b19fa98c60324f7ce5d168284a8c8 jdk7u14-b19
++c3c9f04cf10c2fe576b208f6a8ca3777b1d31145 jdk7u14-b19
++5e1fee011646b4a3ff29b7b9cdc208e0a0577cb4 jdk7u14-b20
++d1c8bb1cbc9183fc994b5fedf26886ceda0d59f9 jdk7u14-b21
++d1c6afebdfe28eb07eb2d03a6911a0f33b619165 jdk7u14-b22
++0e4c549d3635122145ac88bad7b98716976ca49e jdk7u40-b23
++d17acb2ee133811baa8eae3436a8c191fc433da1 jdk7u40-b24
++52bcce690998b4ad91abddae118847f4358c6110 jdk7u40-b25
++cd764ada36b50e2096ba35b4c27ca8f83b3db964 jdk7u40-b26
++7626b3fbc822fd4efd5ba3b5fc18f2fef5749597 jdk7u40-b27
++9186b6efd2b2eafa7fee5be1b043f59f25db12a6 jdk7u40-b28
++740942c76fb668a04bf89feccf069f6958651d54 jdk7u40-b29
+ 5e87aee78c91efa65bd5aeb37bcc1c1c637a7f0c jdk7u25-b12
+ 83b80c094befd08cbac4247d9b8f12c6a039f23f jdk7u25-b13
+ 68cc0d2a49f09b5c611b2775f2e66de1022bdedc jdk7u25-b14
+@@ -343,3 +360,20 @@
+ 66363323f14d85d4ab28e883a3323b9d72dea5fd jdk7u40-b42
+ c0bd71414ea513f54f23965936a837fca093ac91 jdk7u40-b43
+ 91bc4534851265291bb3b16452a0968d6909979f jdk7u40-b60
++1a7e2024963d3a8d6cde209de0967ac43418b82a jdk7u45-b01
++72b314bf2ee171bec2157f737ba3bf77fbdf1118 jdk7u45-b02
++399c58bf22ad35a3527a286123497615100746b2 jdk7u45-b03
++e66ea9257ba8a77fc64f6f2924584b183767d82b jdk7u45-b04
++3a6dce39c05c254aba9f3ae57c035bf3facfe8b9 jdk7u45-b05
++a7b1dcabdebbdbf40040a1c6f8411d2f8d25bb37 jdk7u45-b06
++abb39bc40bcc91c7f8ebc2867e98f302d9bc8417 jdk7u45-b07
++72295e1b27e61751cc323b5e4d6781bf7afae0a4 jdk7u45-b08
++255d92f5ed98915a025484360963d7d09bd77313 jdk7u45-b09
++28a18e725bb39d47e920ef910f435321fb891a88 jdk7u45-b10
++3d3b4da34d583e86a3b90b8f69927a37d40f5b57 jdk7u45-b11
++2ac5c9749223f205cd081ecd0028b2f3ea13f8f8 jdk7u45-b12
++18a009fdfba2bbc5036f96cbefffcdefe9580bb1 jdk7u45-b13
++d577bae705f208661733e09a4875d79255897b7b jdk7u45-b14
++daadec741c9bc5067897eb8803123d0af6c5ebc3 jdk7u45-b15
++0a8b95184728548be4b20876e05f76e0262e4195 jdk7u45-b16
++2586d303503b5bb6fd39dc0ce572d6e858caf41c jdk7u45-b17
+--- jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java 2013-09-06 11:22:55.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java 2013-12-01 11:13:41.000000000 -0800
+@@ -39,33 +39,138 @@
//
// 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();
- }
- }
+- // Oracle Feature:
++ //Xerces security manager
++ public static final String SECURITY_MANAGER =
++ "http://apache.org/xml/properties/security-manager";
+
++ //
++ // Implementation limits: API properties
++ //
++ /** Oracle JAXP property prefix ("http://www.oracle.com/xml/jaxp/properties/"). */
++ public static final String ORACLE_JAXP_PROPERTY_PREFIX =
++ "http://www.oracle.com/xml/jaxp/properties/";
/**
-- * 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
+- *
Use Service Mechanism
+- *
+- *
+- *
++ * JDK entity expansion limit; Note that the existing system property
++ * "entityExpansionLimit" with no prefix is still observed
+ */
-+ public static ListResourceBundle getResourceBundle(String bundle) {
-+ return getResourceBundle(bundle, Locale.getDefault());
++ public static final String JDK_ENTITY_EXPANSION_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "entityExpansionLimit";
++
++ /**
++ * JDK element attribute limit; Note that the existing system property
++ * "elementAttributeLimit" with no prefix is still observed
++ */
++ public static final String JDK_ELEMENT_ATTRIBUTE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "elementAttributeLimit";
++
++ /**
++ * JDK maxOccur limit; Note that the existing system property
++ * "maxOccurLimit" with no prefix is still observed
++ */
++ public static final String JDK_MAX_OCCUR_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxOccurLimit";
++
++ /**
++ * JDK total entity size limit
++ */
++ public static final String JDK_TOTAL_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "totalEntitySizeLimit";
++
++ /**
++ * JDK maximum general entity size limit
++ */
++ public static final String JDK_GENEAL_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxGeneralEntitySizeLimit";
++ /**
++ * JDK maximum parameter entity size limit
++ */
++ public static final String JDK_PARAMETER_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxParameterEntitySizeLimit";
++ /**
++ * JDK maximum XML name limit
++ */
++ public static final String JDK_XML_NAME_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxXMLNameLimit";
++ /**
++ * JDK property indicating whether the parser shall print out entity
++ * count information
++ * Value: a string "yes" means print, "no" or any other string means not.
++ */
++ public static final String JDK_ENTITY_COUNT_INFO =
++ ORACLE_JAXP_PROPERTY_PREFIX + "getEntityCountInfo";
++
++ //
++ // Implementation limits: corresponding System Properties of the above
++ // API properties
++ //
++ /**
++ * JDK entity expansion limit; Note that the existing system property
++ * "entityExpansionLimit" with no prefix is still observed
++ */
++ public static final String SP_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";
++
++ /**
++ * JDK element attribute limit; Note that the existing system property
++ * "elementAttributeLimit" with no prefix is still observed
++ */
++ public static final String SP_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";
++
++ /**
++ * JDK maxOccur limit; Note that the existing system property
++ * "maxOccurLimit" with no prefix is still observed
++ */
++ public static final String SP_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";
++
++ /**
++ * JDK total entity size limit
++ */
++ public static final String SP_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";
++
++ /**
++ * JDK maximum general entity size limit
++ */
++ public static final String SP_GENEAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";
++ /**
++ * JDK maximum parameter entity size limit
++ */
++ public static final String SP_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";
++ /**
++ * JDK maximum XML name limit
++ */
++ public static final String SP_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";
++
++ //legacy System Properties
++ public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit";
++ public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
++ public final static String MAX_OCCUR_LIMIT = "maxOccurLimit";
++
++ /**
++ * A string "yes" that can be used for properties such as getEntityCountInfo
++ */
++ public static final String JDK_YES = "yes";
++
++ // Oracle Feature:
++ /**
++ *
Use Service Mechanism
++ *
++ *
++ *
+ * {@code true} instruct an object to use service mechanism to
+ * find a service implementation. This is the default behavior.
+ *
+ *
+ * {@code false} instruct an object to skip service mechanism and
+ * use the default implementation for that service.
+- *
+- *
+- */
+-
++ *
++ *
++ */
+ public static final String ORACLE_FEATURE_SERVICE_MECHANISM = "http://www.oracle.com/feature/use-service-mechanism";
+
+- /** Oracle JAXP property prefix ("http://www.oracle.com/xml/jaxp/properties/"). */
+- public static final String ORACLE_JAXP_PROPERTY_PREFIX =
+- "http://www.oracle.com/xml/jaxp/properties/";
+
+ //System Properties corresponding to ACCESS_EXTERNAL_* properties
+ public static final String SP_ACCESS_EXTERNAL_STYLESHEET = "javax.xml.accessExternalStylesheet";
+ public static final String SP_ACCESS_EXTERNAL_DTD = "javax.xml.accessExternalDTD";
+
+-
+ //all access keyword
+ public static final String ACCESS_EXTERNAL_ALL = "all";
+
+--- jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -0,0 +1,449 @@
++/*
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
++ *
++ * Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
++ *
++ * The contents of this file are subject to the terms of either the GNU
++ * General Public License Version 2 only ("GPL") or the Common Development
++ * and Distribution License("CDDL") (collectively, the "License"). You
++ * may not use this file except in compliance with the License. You can
++ * obtain a copy of the License at
++ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
++ * or packager/legal/LICENSE.txt. See the License for the specific
++ * language governing permissions and limitations under the License.
++ *
++ * When distributing the software, include this License Header Notice in each
++ * file and include the License file at packager/legal/LICENSE.txt.
++ *
++ * GPL Classpath Exception:
++ * Oracle designates this particular file as subject to the "Classpath"
++ * exception as provided by Oracle in the GPL Version 2 section of the License
++ * file that accompanied this code.
++ *
++ * Modifications:
++ * If applicable, add the following below the License Header, with the fields
++ * enclosed by brackets [] replaced by your own identifying information:
++ * "Portions Copyright [year] [name of copyright owner]"
++ *
++ * Contributor(s):
++ * If you wish your version of this file to be governed by only the CDDL or
++ * only the GPL Version 2, indicate your decision by adding "[Contributor]
++ * elects to include this software in this distribution under the [CDDL or GPL
++ * Version 2] license." If you don't indicate a single choice of license, a
++ * recipient has the option to distribute your version of this file under
++ * either the CDDL, the GPL Version 2 or to extend the choice of license to
++ * its licensees as provided above. However, if you add GPL Version 2 code
++ * and therefore, elected the GPL Version 2 license, then the option applies
++ * only if the new code is made subject to such option by the copyright
++ * holder.
++ */
++package com.sun.org.apache.xalan.internal.utils;
++
++import com.sun.org.apache.xalan.internal.XalanConstants;
++
++
++/**
++ * This class is not the same as that in Xerces. It is used to manage the
++ * state of corresponding Xerces properties and pass the values over to
++ * the Xerces Security Manager.
++ *
++ * @author Joe Wang Oracle Corp.
++ *
++ */
++public final class XMLSecurityManager {
++
++ /**
++ * States of the settings of a property, in the order: default value, value
++ * set by FEATURE_SECURE_PROCESSING, jaxp.properties file, jaxp system
++ * properties, and jaxp api properties
++ */
++ public static enum State {
++ //this order reflects the overriding order
++
++ DEFAULT("default"), FSP("FEATURE_SECURE_PROCESSING"),
++ JAXPDOTPROPERTIES("jaxp.properties"), SYSTEMPROPERTY("system property"),
++ APIPROPERTY("property");
++
++ final String literal;
++ State(String literal) {
++ this.literal = literal;
++ }
++
++ String literal() {
++ return literal;
++ }
+ }
+
+ /**
-+ * 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
++ * Limits managed by the security manager
+ */
-+ public static ListResourceBundle getResourceBundle(final String bundle, final Locale locale) {
-+ return AccessController.doPrivileged(new PrivilegedAction() {
-+ 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 enum Limit {
++
++ ENTITY_EXPANSION_LIMIT(XalanConstants.JDK_ENTITY_EXPANSION_LIMIT,
++ XalanConstants.SP_ENTITY_EXPANSION_LIMIT, 0, 64000),
++ MAX_OCCUR_NODE_LIMIT(XalanConstants.JDK_MAX_OCCUR_LIMIT,
++ XalanConstants.SP_MAX_OCCUR_LIMIT, 0, 5000),
++ ELEMENT_ATTRIBUTE_LIMIT(XalanConstants.JDK_ELEMENT_ATTRIBUTE_LIMIT,
++ XalanConstants.SP_ELEMENT_ATTRIBUTE_LIMIT, 0, 10000),
++ TOTAL_ENTITY_SIZE_LIMIT(XalanConstants.JDK_TOTAL_ENTITY_SIZE_LIMIT,
++ XalanConstants.SP_TOTAL_ENTITY_SIZE_LIMIT, 0, 50000000),
++ GENEAL_ENTITY_SIZE_LIMIT(XalanConstants.JDK_GENEAL_ENTITY_SIZE_LIMIT,
++ XalanConstants.SP_GENEAL_ENTITY_SIZE_LIMIT, 0, 0),
++ PARAMETER_ENTITY_SIZE_LIMIT(XalanConstants.JDK_PARAMETER_ENTITY_SIZE_LIMIT,
++ XalanConstants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000);
++
++ final String apiProperty;
++ final String systemProperty;
++ final int defaultValue;
++ final int secureValue;
++
++ Limit(String apiProperty, String systemProperty, int value, int secureValue) {
++ this.apiProperty = apiProperty;
++ this.systemProperty = systemProperty;
++ this.defaultValue = value;
++ this.secureValue = secureValue;
++ }
++
++ public boolean equalsAPIPropertyName(String propertyName) {
++ return (propertyName == null) ? false : apiProperty.equals(propertyName);
++ }
++
++ public boolean equalsSystemPropertyName(String propertyName) {
++ return (propertyName == null) ? false : systemProperty.equals(propertyName);
++ }
++
++ public String apiProperty() {
++ return apiProperty;
++ }
++
++ String systemProperty() {
++ return systemProperty;
++ }
++
++ int defaultValue() {
++ return defaultValue;
++ }
++
++ int secureValue() {
++ return secureValue;
++ }
++ }
++
++ /**
++ * Map old property names with the new ones
++ */
++ public static enum NameMap {
++
++ ENTITY_EXPANSION_LIMIT(XalanConstants.SP_ENTITY_EXPANSION_LIMIT,
++ XalanConstants.ENTITY_EXPANSION_LIMIT),
++ MAX_OCCUR_NODE_LIMIT(XalanConstants.SP_MAX_OCCUR_LIMIT,
++ XalanConstants.MAX_OCCUR_LIMIT),
++ ELEMENT_ATTRIBUTE_LIMIT(XalanConstants.SP_ELEMENT_ATTRIBUTE_LIMIT,
++ XalanConstants.ELEMENT_ATTRIBUTE_LIMIT);
++ final String newName;
++ final String oldName;
++
++ NameMap(String newName, String oldName) {
++ this.newName = newName;
++ this.oldName = oldName;
++ }
++
++ String getOldName(String newName) {
++ if (newName.equals(this.newName)) {
++ return oldName;
++ }
++ return null;
++ }
++ }
++ /**
++ * Values of the properties
++ */
++ private final int[] values;
++ /**
++ * States of the settings for each property
++ */
++ private State[] states;
++ /**
++ * States that determine if properties are set explicitly
++ */
++ private boolean[] isSet;
++
++
++ /**
++ * Index of the special entityCountInfo property
++ */
++ private int indexEntityCountInfo = 10000;
++ private String printEntityCountInfo = "";
++
++ /**
++ * Default constructor. Establishes default values for known security
++ * vulnerabilities.
++ */
++ public XMLSecurityManager() {
++ this(false);
++ }
++
++ /**
++ * Instantiate Security Manager in accordance with the status of
++ * secure processing
++ * @param secureProcessing
++ */
++ public XMLSecurityManager(boolean secureProcessing) {
++ values = new int[Limit.values().length];
++ states = new State[Limit.values().length];
++ isSet = new boolean[Limit.values().length];
++ for (Limit limit : Limit.values()) {
++ if (secureProcessing) {
++ values[limit.ordinal()] = limit.secureValue();
++ states[limit.ordinal()] = State.FSP;
++ } else {
++ values[limit.ordinal()] = limit.defaultValue();
++ states[limit.ordinal()] = State.DEFAULT;
++ }
++ }
++ //read system properties or jaxp.properties
++ readSystemProperties();
++ }
++
++ /**
++ * Setting FEATURE_SECURE_PROCESSING explicitly
++ */
++ public void setSecureProcessing(boolean secure) {
++ for (Limit limit : Limit.values()) {
++ if (secure) {
++ setLimit(limit.ordinal(), State.FSP, limit.secureValue());
++ } else {
++ setLimit(limit.ordinal(), State.FSP, limit.defaultValue());
++ }
++ }
++ }
++
++ /**
++ * Set limit by property name and state
++ * @param propertyName property name
++ * @param state the state of the property
++ * @param value the value of the property
++ * @return true if the property is managed by the security manager; false
++ * if otherwise.
++ */
++ public boolean setLimit(String propertyName, State state, Object value) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ setLimit(index, state, value);
++ return true;
++ }
++ return false;
++ }
++
++ /**
++ * Set the value for a specific limit.
++ *
++ * @param limit the limit
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(Limit limit, State state, int value) {
++ setLimit(limit.ordinal(), state, value);
++ }
++
++ /**
++ * Set the value of a property by its index
++ *
++ * @param index the index of the property
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(int index, State state, Object value) {
++ if (index == indexEntityCountInfo) {
++ //if it's explicitly set, it's treated as yes no matter the value
++ printEntityCountInfo = (String)value;
++ } else {
++ int temp = 0;
++ try {
++ temp = Integer.parseInt((String) value);
++ if (temp < 0) {
++ temp = 0;
++ }
++ } catch (NumberFormatException e) {}
++ setLimit(index, state, temp); }
++ }
++
++ /**
++ * Set the value of a property by its index
++ *
++ * @param index the index of the property
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(int index, State state, int value) {
++ if (index == indexEntityCountInfo) {
++ //if it's explicitly set, it's treated as yes no matter the value
++ printEntityCountInfo = XalanConstants.JDK_YES;
++ } else {
++ //only update if it shall override
++ if (state.compareTo(states[index]) >= 0) {
++ values[index] = value;
++ states[index] = state;
++ isSet[index] = true;
++ }
++ }
++ }
++
++
++ /**
++ * Return the value of the specified property.
++ *
++ * @param propertyName the property name
++ * @return the value of the property as a string. If a property is managed
++ * by this manager, its value shall not be null.
++ */
++ public String getLimitAsString(String propertyName) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ return getLimitValueByIndex(index);
++ }
++
++ return null;
++ }
++
++ /**
++ * Return the value of a property by its ordinal
++ *
++ * @param limit the property
++ * @return value of a property
++ */
++ public String getLimitValueAsString(Limit limit) {
++ return Integer.toString(values[limit.ordinal()]);
++ }
++
++ /**
++ * Return the value of the specified property
++ *
++ * @param limit the property
++ * @return the value of the property
++ */
++ public int getLimit(Limit limit) {
++ return values[limit.ordinal()];
++ }
++
++ /**
++ * Return the value of a property by its ordinal
++ *
++ * @param index the index of a property
++ * @return value of a property
++ */
++ public int getLimitByIndex(int index) {
++ return values[index];
++ }
++ /**
++ * Return the value of a property by its index
++ *
++ * @param index the index of a property
++ * @return limit of a property as a string
++ */
++ public String getLimitValueByIndex(int index) {
++ if (index == indexEntityCountInfo) {
++ return printEntityCountInfo;
++ }
++
++ return Integer.toString(values[index]);
++ }
++ /**
++ * Return the state of the limit property
++ *
++ * @param limit the limit
++ * @return the state of the limit property
++ */
++ public State getState(Limit limit) {
++ return states[limit.ordinal()];
++ }
++
++ /**
++ * Return the state of the limit property
++ *
++ * @param limit the limit
++ * @return the state of the limit property
++ */
++ public String getStateLiteral(Limit limit) {
++ return states[limit.ordinal()].literal();
++ }
++
++ /**
++ * Get the index by property name
++ *
++ * @param propertyName property name
++ * @return the index of the property if found; return -1 if not
++ */
++ public int getIndex(String propertyName) {
++ for (Limit limit : Limit.values()) {
++ if (limit.equalsAPIPropertyName(propertyName)) {
++ //internally, ordinal is used as index
++ return limit.ordinal();
++ }
++ }
++ //special property to return entity count info
++ if (propertyName.equals(XalanConstants.JDK_ENTITY_COUNT_INFO)) {
++ return indexEntityCountInfo;
++ }
++ return -1;
++ }
++
++ /**
++ * Indicate if a property is set explicitly
++ * @param index
++ * @return
++ */
++ public boolean isSet(int index) {
++ return isSet[index];
++ }
++
++ public boolean printEntityCountInfo() {
++ return printEntityCountInfo.equals(XalanConstants.JDK_YES);
++ }
++ /**
++ * Read from system properties, or those in jaxp.properties
++ */
++ private void readSystemProperties() {
++
++ for (Limit limit : Limit.values()) {
++ if (!getSystemProperty(limit, limit.systemProperty())) {
++ //if system property is not found, try the older form if any
++ for (NameMap nameMap : NameMap.values()) {
++ String oldName = nameMap.getOldName(limit.systemProperty());
++ if (oldName != null) {
++ getSystemProperty(limit, oldName);
+ }
+ }
+ }
-+ });
++ }
++
+ }
+
-+ 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 () {}
++ /**
++ * Read from system properties, or those in jaxp.properties
++ *
++ * @param property the type of the property
++ * @param sysPropertyName the name of system property
++ */
++ private boolean getSystemProperty(Limit limit, String sysPropertyName) {
++ try {
++ String value = SecuritySupport.getSystemProperty(sysPropertyName);
++ if (value != null && !value.equals("")) {
++ values[limit.ordinal()] = Integer.parseInt(value);
++ states[limit.ordinal()] = State.SYSTEMPROPERTY;
++ return true;
++ }
+
-+ private SecuritySupport() {
++ value = SecuritySupport.readJAXPProperty(sysPropertyName);
++ if (value != null && !value.equals("")) {
++ values[limit.ordinal()] = Integer.parseInt(value);
++ states[limit.ordinal()] = State.JAXPDOTPROPERTIES;
++ return true;
++ }
++ } catch (NumberFormatException e) {
++ //invalid setting
++ throw new NumberFormatException("Invalid setting for system property: " + limit.systemProperty());
++ }
++ return false;
+ }
- }
---- 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;
++}
+--- jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityPropertyManager.java 2013-09-06 11:22:55.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityPropertyManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -94,6 +94,23 @@
+ }
+ /**
++ * Set limit by property name and state
++ * @param propertyName property name
++ * @param state the state of the property
++ * @param value the value of the property
++ * @return true if the property is managed by the security property manager;
++ * false if otherwise.
++ */
++ public boolean setValue(String propertyName, State state, Object value) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ setValue(index, state, (String)value);
++ return true;
++ }
++ return false;
++ }
++
++ /**
+ * Set the value for a specific property.
+ *
+ * @param property the property
+@@ -121,6 +138,22 @@
+ states[index] = state;
+ }
+ }
++
++ /**
++ * Return the value of the specified property
++ *
++ * @param propertyName the property name
++ * @return the value of the property as a string
++ */
++ public String getValue(String propertyName) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ return getValueByIndex(index);
++ }
++
++ return null;
++ }
++
+ /**
+ * Return the value of the specified property
+ *
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java 2013-09-06 11:22:55.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java 2013-12-01 11:13:41.000000000 -0800
+@@ -86,7 +86,7 @@
+ if (input == null) {
+ docToLoad = SystemIDResolver.getAbsoluteURI(docToLoad, currLoadedDoc);
+ String accessError = SecuritySupport.checkAccess(docToLoad,
+- xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
++ (String)xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
+ XalanConstants.ACCESS_EXTERNAL_ALL);
+
+ if (accessError != null) {
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java 2013-09-06 11:22:55.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java 2013-12-01 11:13:41.000000000 -0800
+@@ -87,7 +87,7 @@
+ if (input == null) {
+ docToLoad = SystemIDResolver.getAbsoluteURI(docToLoad, currLoadedDoc);
+ String accessError = SecuritySupport.checkAccess(docToLoad,
+- xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
++ (String)xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
+ XalanConstants.ACCESS_EXTERNAL_ALL);
+
+ if (accessError != null) {
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2013-09-06 11:22:55.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2013-12-01 11:13:41.000000000 -0800
+@@ -28,6 +28,7 @@
+ import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
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 @@
+ import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodType;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
+@@ -487,6 +488,20 @@
}
- }
- catch (TypeCheckError e) {
-- reportError(ERROR, new ErrorMsg(e));
-+ reportError(ERROR, new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR, e));
- }
- }
-@@ -430,7 +430,7 @@
+ final XMLReader reader = parser.getXMLReader();
++ try {
++ XMLSecurityManager securityManager =
++ (XMLSecurityManager)_xsltc.getProperty(XalanConstants.SECURITY_MANAGER);
++ for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) {
++ reader.setProperty(limit.apiProperty(), securityManager.getLimitValueAsString(limit));
++ }
++ if (securityManager.printEntityCountInfo()) {
++ parser.setProperty(XalanConstants.JDK_ENTITY_COUNT_INFO, XalanConstants.JDK_YES);
++ }
++ } catch (SAXException se) {
++ System.err.println("Warning: " + reader.getClass().getName() + ": "
++ + se.getMessage());
++ }
++
+ return(parse(reader, input));
}
- 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;
-
+ catch (ParserConfigurationException e) {
+@@ -565,7 +580,7 @@
+ }
+ path = SystemIDResolver.getAbsoluteURI(path);
+ String accessError = SecuritySupport.checkAccess(path,
+- _xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
++ (String)_xsltc.getProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET),
+ XalanConstants.ACCESS_EXTERNAL_ALL);
+ if (accessError != null) {
+ ErrorMsg msg = new ErrorMsg(ErrorMsg.ACCESSING_XSLT_TARGET_ERR,
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2013-09-06 11:22:56.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2013-12-01 11:13:41.000000000 -0800
+@@ -44,11 +44,11 @@
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.XalanConstants;
+ import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
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 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 @@
+@@ -146,6 +146,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."}
+ private String _accessExternalDTD = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
- };
-
---- 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);
- }
++ private XMLSecurityManager _xmlSecurityManager;
/**
---- 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";
-+
+ * XSLTC compiler constructor
+@@ -184,12 +185,14 @@
/**
- * 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;
+ * Return allowed protocols for accessing external stylesheet.
+ */
+- public String getProperty(String name) {
++ public Object getProperty(String name) {
+ if (name.equals(XMLConstants.ACCESS_EXTERNAL_STYLESHEET)) {
+ return _accessExternalStylesheet;
+ }
+ else if (name.equals(XMLConstants.ACCESS_EXTERNAL_DTD)) {
+ return _accessExternalDTD;
++ } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
++ return _xmlSecurityManager;
+ }
+ return null;
+ }
+@@ -197,12 +200,14 @@
+ /**
+ * Set allowed protocols for accessing external stylesheet.
+ */
+- public void setProperty(String name, String value) {
++ public void setProperty(String name, Object value) {
+ if (name.equals(XMLConstants.ACCESS_EXTERNAL_STYLESHEET)) {
+ _accessExternalStylesheet = (String)value;
+ }
+ else if (name.equals(XMLConstants.ACCESS_EXTERNAL_DTD)) {
+ _accessExternalDTD = (String)value;
++ } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
++ _xmlSecurityManager = (XMLSecurityManager)value;
+ }
+ }
+
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -29,7 +29,7 @@
+ import javax.xml.transform.TransformerException;
+ import javax.xml.transform.URIResolver;
+ import javax.xml.transform.sax.TemplatesHandler;
-
-+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
++import com.sun.org.apache.xalan.internal.XalanConstants;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.CompilerException;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.Parser;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.SourceLoader;
+@@ -103,6 +103,8 @@
+ (String)tfactory.getAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET));
+ xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD,
+ (String)tfactory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD));
++ xsltc.setProperty(XalanConstants.SECURITY_MANAGER,
++ tfactory.getAttribute(XalanConstants.SECURITY_MANAGER));
+
+
+ if ("true".equals(tfactory.getAttribute(TransformerFactoryImpl.ENABLE_INLINING)))
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -77,6 +77,7 @@
+ import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager.Property;
+ import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager.State;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
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) {
+@@ -227,17 +228,17 @@
+ */
+ private boolean _useServicesMechanism;
-- 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);
+- /**
++ /**
+ * protocols allowed for external references set by the stylesheet processing instruction, Import and Include element.
+ */
+ private String _accessExternalStylesheet = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
+-
+ /**
+ * protocols allowed for external DTD references in source file and/or stylesheet.
+ */
+ private String _accessExternalDTD = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
+
+ private XMLSecurityPropertyManager _xmlSecurityPropertyMgr;
++ private XMLSecurityManager _xmlSecurityManager;
+
+ /**
+ * javax.xml.transform.sax.TransformerFactory implementation.
+@@ -264,6 +265,9 @@
+ Property.ACCESS_EXTERNAL_DTD);
+ _accessExternalStylesheet = _xmlSecurityPropertyMgr.getValue(
+ Property.ACCESS_EXTERNAL_STYLESHEET);
++
++ //Parser's security manager
++ _xmlSecurityManager = new XMLSecurityManager(true);
+ }
+
+ /**
+@@ -322,11 +326,21 @@
+ return Boolean.TRUE;
+ else
+ return Boolean.FALSE;
++ } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
++ return _xmlSecurityManager;
+ }
+
+- int index = _xmlSecurityPropertyMgr.getIndex(name);
+- if (index > -1) {
+- return _xmlSecurityPropertyMgr.getValueByIndex(index);
++ /** Check to see if the property is managed by the security manager **/
++ String propertyValue = (_xmlSecurityManager != null) ?
++ _xmlSecurityManager.getLimitAsString(name) : null;
++ if (propertyValue != null) {
++ return propertyValue;
+ } else {
-+ err = new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR);
++ propertyValue = (_xmlSecurityPropertyMgr != null) ?
++ _xmlSecurityPropertyMgr.getValue(name) : null;
++ if (propertyValue != null) {
++ return propertyValue;
++ }
+ }
+
+ // Throw an exception for all other attributes
+@@ -429,10 +443,13 @@
+ }
+ }
+
+- int index = _xmlSecurityPropertyMgr.getIndex(name);
+- if (index > -1) {
+- _xmlSecurityPropertyMgr.setValue(index,
+- State.APIPROPERTY, (String)value);
++ if (_xmlSecurityManager != null &&
++ _xmlSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) {
++ return;
+ }
-+ TransformerConfigurationException exc = new TransformerConfigurationException(err.toString(), err.getCause());
++
++ if (_xmlSecurityPropertyMgr != null &&
++ _xmlSecurityPropertyMgr.setValue(name, XMLSecurityPropertyManager.State.APIPROPERTY, value)) {
+ _accessExternalDTD = _xmlSecurityPropertyMgr.getValue(
+ Property.ACCESS_EXTERNAL_DTD);
+ _accessExternalStylesheet = _xmlSecurityPropertyMgr.getValue(
+@@ -482,6 +499,7 @@
+ throw new TransformerConfigurationException(err.toString());
+ }
+ _isNotSecureProcessing = !value;
++ _xmlSecurityManager.setSecureProcessing(value);
- // 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");
+ // set external access restriction when FSP is explicitly set
+ if (value && XalanConstants.IS_JDK8_OR_ABOVE) {
+@@ -851,6 +869,7 @@
+ if (!_isNotSecureProcessing) xsltc.setSecureProcessing(true);
+ xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, _accessExternalStylesheet);
+ xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, _accessExternalDTD);
++ xsltc.setProperty(XalanConstants.SECURITY_MANAGER, _xmlSecurityManager);
+ xsltc.init();
- File transletParentFile = new File(transletParentDir);
+ // Set a document loader (for xsl:include/import) if defined
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -25,6 +25,7 @@
---- 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 @@
+ import com.sun.org.apache.xalan.internal.XalanConstants;
+ import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
+ import java.io.File;
+ import java.io.FileOutputStream;
+ import java.io.IOException;
+@@ -218,6 +219,7 @@
+ */
+ private String _accessExternalDTD = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
+
++ private XMLSecurityManager _securityManager;
+ /**
+ * A hashtable to store parameters for the identity transform. These
+ * are not needed during the transformation, but we must keep track of
+@@ -272,8 +274,11 @@
+ _useServicesMechanism = _tfactory.useServicesMechnism();
+ _accessExternalStylesheet = (String)_tfactory.getAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET);
+ _accessExternalDTD = (String)_tfactory.getAttribute(XMLConstants.ACCESS_EXTERNAL_DTD);
++ _securityManager = (XMLSecurityManager)_tfactory.getAttribute(XalanConstants.SECURITY_MANAGER);
+ _readerManager = XMLReaderManager.getInstance(_useServicesMechanism);
+ _readerManager.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, _accessExternalDTD);
++ _readerManager.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, _isSecureProcessing);
++ _readerManager.setProperty(XalanConstants.SECURITY_MANAGER, _securityManager);
+ //_isIncremental = tfactory._incremental;
+ }
+
+@@ -289,6 +294,7 @@
+ */
+ public void setSecureProcessing(boolean flag) {
+ _isSecureProcessing = flag;
++ _readerManager.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, _isSecureProcessing);
+ }
+ /**
+ * Return the state of the services mechanism feature.
+--- jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java 2013-12-01 11:13:41.000000000 -0800
+@@ -23,6 +23,7 @@
+
+ package com.sun.org.apache.xalan.internal.xsltc.trax;
+
++import com.sun.org.apache.xalan.internal.XalanConstants;
+ import java.io.InputStream;
+ import java.io.Reader;
+
+@@ -43,6 +44,7 @@
+ import javax.xml.transform.stream.StreamSource;
+
+ import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC;
+ import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
+
+@@ -105,6 +107,13 @@
+ if (reader == null) {
+ try {
+ reader= XMLReaderFactory.createXMLReader();
++ try {
++ reader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,
++ xsltc.isSecureProcessing());
++ } catch (SAXNotRecognizedException e) {
++ System.err.println("Warning: " + reader.getClass().getName() + ": "
++ + e.getMessage());
++ }
+ } catch (Exception e ) {
+ try {
+
+@@ -144,6 +153,22 @@
+ + e.getMessage());
+ }
+
++ try {
++ XMLSecurityManager securityManager =
++ (XMLSecurityManager)xsltc.getProperty(XalanConstants.SECURITY_MANAGER);
++ if (securityManager != null) {
++ for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) {
++ reader.setProperty(limit.apiProperty(),
++ securityManager.getLimitValueAsString(limit));
++ }
++ if (securityManager.printEntityCountInfo()) {
++ reader.setProperty(XalanConstants.JDK_ENTITY_COUNT_INFO, XalanConstants.JDK_YES);
++ }
++ }
++ } catch (SAXException se) {
++ System.err.println("Warning: " + reader.getClass().getName() + ": "
++ + se.getMessage());
++ }
+ xsltc.setXMLReader(reader);
+ }catch (SAXNotRecognizedException snre ) {
+ throw new TransformerConfigurationException
+--- jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -33,6 +33,7 @@
+ import com.sun.org.apache.xerces.internal.util.PropertyState;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+ import com.sun.org.apache.xerces.internal.utils.ObjectFactory;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XMLDTDContentModelHandler;
+ import com.sun.org.apache.xerces.internal.xni.XMLDTDHandler;
+@@ -59,6 +60,7 @@
+ import org.w3c.dom.ls.LSResourceResolver;
- 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;
++
+ /**
+ * Xerces implementation of DOMConfiguration that maintains a table of recognized parameters.
+ *
+@@ -156,6 +158,9 @@
+ protected static final String SCHEMA_DV_FACTORY =
+ Constants.XERCES_PROPERTY_PREFIX + Constants.SCHEMA_DV_FACTORY_PROPERTY;
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
++
+ /** Property identifier: Security property manager. */
+ private static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+@@ -279,6 +284,7 @@
+ JAXP_SCHEMA_LANGUAGE,
+ DTD_VALIDATOR_FACTORY_PROPERTY,
+ SCHEMA_DV_FACTORY,
++ SECURITY_MANAGER,
+ XML_SECURITY_PROPERTY_MANAGER
+ };
+ addRecognizedProperties(recognizedProperties);
+@@ -313,6 +319,8 @@
+ fValidationManager = createValidationManager();
+ setProperty(VALIDATION_MANAGER, fValidationManager);
+
++ setProperty(SECURITY_MANAGER, new XMLSecurityManager(true));
++
+ setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER,
+ new XMLSecurityPropertyManager());
+
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java 2013-12-01 11:13:41.000000000 -0800
+@@ -174,8 +174,6 @@
+ /** JAXP schemaSource language: when used internally may include DTD namespace (DOM) */
+ public static final String SCHEMA_LANGUAGE = "schemaLanguage";
+
+- public static final String SYSTEM_PROPERTY_ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
+-
+ /** JAXP Standard property prefix ("http://javax.xml.XMLConstants/property/"). */
+ public static final String JAXPAPI_PROPERTY_PREFIX =
+ "http://javax.xml.XMLConstants/property/";
+@@ -209,6 +207,107 @@
+ public static final boolean IS_JDK8_OR_ABOVE = isJavaVersionAtLeast(8);
+
+ //
++ // Implementation limits: corresponding System Properties of the above
++ // API properties
++ //
++ /**
++ * JDK entity expansion limit; Note that the existing system property
++ * "entityExpansionLimit" with no prefix is still observed
++ */
++ public static final String JDK_ENTITY_EXPANSION_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "entityExpansionLimit";
++
++ /**
++ * JDK element attribute limit; Note that the existing system property
++ * "elementAttributeLimit" with no prefix is still observed
++ */
++ public static final String JDK_ELEMENT_ATTRIBUTE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "elementAttributeLimit";
++
++ /**
++ * JDK maxOccur limit; Note that the existing system property
++ * "maxOccurLimit" with no prefix is still observed
++ */
++ public static final String JDK_MAX_OCCUR_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxOccurLimit";
++
++ /**
++ * JDK total entity size limit
++ */
++ public static final String JDK_TOTAL_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "totalEntitySizeLimit";
++
++ /**
++ * JDK maximum general entity size limit
++ */
++ public static final String JDK_GENEAL_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxGeneralEntitySizeLimit";
++ /**
++ * JDK maximum parameter entity size limit
++ */
++ public static final String JDK_PARAMETER_ENTITY_SIZE_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxParameterEntitySizeLimit";
++ /**
++ * JDK maximum XML name limit
++ */
++ public static final String JDK_XML_NAME_LIMIT =
++ ORACLE_JAXP_PROPERTY_PREFIX + "maxXMLNameLimit";
++ /**
++ * JDK property to allow printing out information from the limit analyzer
++ */
++ public static final String JDK_ENTITY_COUNT_INFO =
++ ORACLE_JAXP_PROPERTY_PREFIX + "getEntityCountInfo";
++
++ //
++ // Implementation limits: API properties
++ //
++ /**
++ * JDK entity expansion limit; Note that the existing system property
++ * "entityExpansionLimit" with no prefix is still observed
++ */
++ public static final String SP_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";
++
++ /**
++ * JDK element attribute limit; Note that the existing system property
++ * "elementAttributeLimit" with no prefix is still observed
++ */
++ public static final String SP_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";
++
++ /**
++ * JDK maxOccur limit; Note that the existing system property
++ * "maxOccurLimit" with no prefix is still observed
++ */
++ public static final String SP_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";
++
++ /**
++ * JDK total entity size limit
++ */
++ public static final String SP_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";
++
++ /**
++ * JDK maximum general entity size limit
++ */
++ public static final String SP_GENEAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";
++ /**
++ * JDK maximum parameter entity size limit
++ */
++ public static final String SP_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";
++ /**
++ * JDK maximum XML name limit
++ */
++ public static final String SP_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";
++
++ //legacy System Properties
++ public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit";
++ public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ;
++ public final static String MAX_OCCUR_LIMIT = "maxOccurLimit";
++
++ /**
++ * A string "yes" that can be used for properties such as getEntityCountInfo
++ */
++ public static final String JDK_YES = "yes";
++
++ //
+ // DOM features
+ //
+
+@@ -443,7 +542,7 @@
+ public static final String LOCALE_PROPERTY = "locale";
+
+ /** property identifier: security manager. */
+- protected static final String SECURITY_MANAGER =
++ public static final String SECURITY_MANAGER =
+ Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY;
+
+
+@@ -511,9 +610,6 @@
+ */
+ public final static String ATTRIBUTE_DECLARED = "ATTRIBUTE_DECLARED";
+
+- public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit";
+-
+- public final static String MAX_OCCUR_LIMIT = "maxOccurLimit";
+
+ /**
+ * {@link org.w3c.dom.TypeInfo} associated with current element/attribute
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -25,6 +25,7 @@
+
+ package com.sun.org.apache.xerces.internal.impl;
+
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.xml.internal.stream.StaxEntityResolverWrapper;
+ import java.util.HashMap;
+@@ -50,12 +51,16 @@
+
+ private static final String STRING_INTERNING = "http://xml.org/sax/features/string-interning";
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
++
+ /** Property identifier: Security property manager. */
+ private static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+
+ HashMap supportedProps = new HashMap();
+
++ private XMLSecurityManager fSecurityManager;
+ private XMLSecurityPropertyManager fSecurityPropertyMgr;
+
+ public static final int CONTEXT_READER = 1;
+@@ -82,6 +87,7 @@
+
+ HashMap properties = propertyManager.getProperties();
+ supportedProps.putAll(properties);
++ fSecurityManager = (XMLSecurityManager)getProperty(SECURITY_MANAGER);
+ fSecurityPropertyMgr = (XMLSecurityPropertyManager)getProperty(XML_SECURITY_PROPERTY_MANAGER);
+ }
+
+@@ -124,6 +130,8 @@
+ supportedProps.put(Constants.XERCES_FEATURE_PREFIX + Constants.WARN_ON_DUPLICATE_ENTITYDEF_FEATURE, new Boolean(false));
+ supportedProps.put(Constants.XERCES_FEATURE_PREFIX + Constants.WARN_ON_UNDECLARED_ELEMDEF_FEATURE, new Boolean(false));
+
++ fSecurityManager = new XMLSecurityManager(true);
++ supportedProps.put(SECURITY_MANAGER, fSecurityManager);
+ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
+ supportedProps.put(XML_SECURITY_PROPERTY_MANAGER, fSecurityPropertyMgr);
+ }
+@@ -142,6 +150,7 @@
+ */
+ public boolean containsProperty(String property){
+ return supportedProps.containsKey(property) ||
++ (fSecurityManager != null && fSecurityManager.getIndex(property) > -1) ||
+ (fSecurityPropertyMgr!=null && fSecurityPropertyMgr.getIndex(property) > -1) ;
+ }
+
+@@ -169,12 +178,34 @@
+ supportedProps.put( Constants.XERCES_PROPERTY_PREFIX + Constants.STAX_ENTITY_RESOLVER_PROPERTY , new StaxEntityResolverWrapper((XMLResolver)value)) ;
+ }
+
+- int index = (fSecurityPropertyMgr != null) ? fSecurityPropertyMgr.getIndex(property) : -1;
+- if (index > -1) {
+- fSecurityPropertyMgr.setValue(index,
+- XMLSecurityPropertyManager.State.APIPROPERTY, (String)value);
+- } else {
+- supportedProps.put(property, value);
++ /**
++ * It's possible for users to set a security manager through the interface.
++ * If it's the old SecurityManager, convert it to the new XMLSecurityManager
++ */
++ if (property.equals(Constants.SECURITY_MANAGER)) {
++ fSecurityManager = XMLSecurityManager.convert(value, fSecurityManager);
++ supportedProps.put(Constants.SECURITY_MANAGER, fSecurityManager);
++ return;
++ }
++ if (property.equals(Constants.XML_SECURITY_PROPERTY_MANAGER)) {
++ if (value == null) {
++ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
++ } else {
++ fSecurityPropertyMgr = (XMLSecurityPropertyManager)value;
++ }
++ supportedProps.put(Constants.XML_SECURITY_PROPERTY_MANAGER, fSecurityPropertyMgr);
++ return;
++ }
++
++ //check if the property is managed by security manager
++ if (fSecurityManager == null ||
++ !fSecurityManager.setLimit(property, XMLSecurityManager.State.APIPROPERTY, value)) {
++ //check if the property is managed by security property manager
++ if (fSecurityPropertyMgr == null ||
++ !fSecurityPropertyMgr.setValue(property, XMLSecurityPropertyManager.State.APIPROPERTY, value)) {
++ //fall back to the existing property manager
++ supportedProps.put(property, value);
++ }
+ }
+
+ if(equivalentProperty != null){
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -108,6 +108,7 @@
+ * @author Elena Litani, IBM
+ * @author Michael Glavassevich, IBM
+ * @author Sunitha Reddy, Sun Microsystems
++ * @version $Id: XML11NSDocumentScannerImpl.java,v 1.6 2010-11-01 04:39:40 joehw Exp $
+ */
+ public class XML11NSDocumentScannerImpl extends XML11DocumentScannerImpl {
+
+@@ -236,7 +237,8 @@
+
+ // attributes
+ scanAttribute(fAttributes);
+- if (fSecurityManager != null && fAttributes.getLength() > fElementAttributeLimit){
++ if (fSecurityManager != null && (!fSecurityManager.isNoLimit(fElementAttributeLimit)) &&
++ fAttributes.getLength() > fElementAttributeLimit){
+ fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+ "ElementAttributeLimit",
+ new Object[]{rawname, new Integer(fElementAttributeLimit) },
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -44,6 +44,8 @@
+ import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;
+ import com.sun.org.apache.xerces.internal.impl.XMLEntityHandler;
+ import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
++import com.sun.xml.internal.stream.Entity;
/**
- * Used to format DOM error messages, using the system locale.
-@@ -31,6 +31,7 @@
- * @xerces.internal
+ * This class is responsible for scanning the declarations found
+@@ -66,7 +68,7 @@
+ * @author Glenn Marcy, IBM
+ * @author Eric Ye, IBM
*
- * @author Sandy Gao, IBM
-+ * @version $Id: DOMMessageFormatter.java,v 1.6 2010-11-01 04:39:38 joehw Exp $
+- * @version $Id: XMLDTDScannerImpl.java,v 1.7 2007/09/26 12:52:40 ndw Exp $
++ * @version $Id: XMLDTDScannerImpl.java,v 1.8 2010-11-01 04:39:41 joehw Exp $
*/
- public class DOMMessageFormatter {
- public static final String DOM_DOMAIN = "http://www.w3.org/dom/DOMTR";
-@@ -122,13 +123,13 @@
+ public class XMLDTDScannerImpl
+ extends XMLScanner
+@@ -1545,7 +1547,7 @@
+
+ // internal entity
+ if (systemId == null) {
+- scanEntityValue(fLiteral, fLiteral2);
++ scanEntityValue(name, isPEDecl, fLiteral, fLiteral2);
+ // since we need it's value anyway, let's snag it so it doesn't get corrupted
+ // if a new load takes place before we store the entity values
+ fStringBuffer.clear();
+@@ -1610,7 +1612,7 @@
+ * the use of scanCharReferenceValue), and fStringBuffer2, anything in them
+ * at the time of calling is lost.
*/
- 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");
+- protected final void scanEntityValue(XMLString value,
++ protected final void scanEntityValue(String entityName, boolean isPEDecl, XMLString value,
+ XMLString nonNormalizedValue)
+ throws IOException, XNIException {
+ int quote = fEntityScanner.scanChar();
+@@ -1622,10 +1624,20 @@
+
+ XMLString literal = fString;
+ XMLString literal2 = fString;
++ int countChar = 0;
++ if (fLimitAnalyzer == null && fSecurityManager != null) {
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
++ fLimitAnalyzer.startEntity(entityName);
++ }
++
+ if (fEntityScanner.scanLiteral(quote, fString) != quote) {
+ fStringBuffer.clear();
+ fStringBuffer2.clear();
+ do {
++ if (isPEDecl && fLimitAnalyzer != null) {
++ checkLimit("%" + entityName, fString.length + countChar);
++ }
++ countChar = 0;
+ fStringBuffer.append(fString);
+ fStringBuffer2.append(fString);
+ if (fEntityScanner.skipChar('&')) {
+@@ -1685,6 +1697,7 @@
+ }
+ }
+ else {
++ countChar++;
+ int c = fEntityScanner.peekChar();
+ if (XMLChar.isHighSurrogate(c)) {
+ scanSurrogates(fStringBuffer2);
+@@ -1708,9 +1721,17 @@
+ fStringBuffer2.append(fString);
+ literal = fStringBuffer;
+ literal2 = fStringBuffer2;
++ } else {
++ if (isPEDecl) {
++ checkLimit("%" + entityName, literal);
++ }
+ }
+ value.setValues(literal);
+ nonNormalizedValue.setValues(literal2);
++ if (fLimitAnalyzer != null) {
++ fLimitAnalyzer.endEntity(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT, entityName);
++ }
++
+ if (!fEntityScanner.skipChar(quote)) {
+ reportFatalError("CloseQuoteMissingInDecl", null);
+ }
+@@ -2126,6 +2147,43 @@
+ //new SymbolTable());
+ }
+
++ /**
++ * Add the count of the content buffer and check if the accumulated
++ * value exceeds the limit
++ * @param entityName entity name
++ * @param buffer content buffer
++ */
++ private void checkLimit(String entityName, XMLString buffer) {
++ checkLimit(entityName, buffer.length);
++ }
++
++ /**
++ * Add the count and check limit
++ * @param entityName entity name
++ * @param len length of the buffer
++ */
++ private void checkLimit(String entityName, int len) {
++ if (fLimitAnalyzer == null) {
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
++ }
++ fLimitAnalyzer.addValue(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT, entityName, len);
++ if (fSecurityManager.isOverLimit(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT)) {
++ fSecurityManager.debugPrint();
++ reportFatalError("MaxEntitySizeLimit", new Object[]{entityName,
++ fLimitAnalyzer.getValue(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getLimit(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getStateLiteral(XMLSecurityManager.Limit.PARAMETER_ENTITY_SIZE_LIMIT)});
++ }
++ if (fSecurityManager.isOverLimit(XMLSecurityManager.Limit.TOTAL_ENTITY_SIZE_LIMIT)) {
++ fSecurityManager.debugPrint();
++ reportFatalError("TotalEntitySizeLimit",
++ new Object[]{fLimitAnalyzer.getTotalValue(XMLSecurityManager.Limit.TOTAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getLimit(XMLSecurityManager.Limit.TOTAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getStateLiteral(XMLSecurityManager.Limit.TOTAL_ENTITY_SIZE_LIMIT)});
++ }
++
++ }
++
+ public DTDGrammar getGrammar(){
+ return nvGrammarInfo;
+ }
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -50,12 +50,14 @@
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.impl.XMLEntityHandler;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.NamespaceSupport;
+ import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
++import com.sun.org.apache.xerces.internal.utils.XMLLimitAnalyzer;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager.Limit;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager.State;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
+-import com.sun.xml.internal.stream.Entity;
+ import javax.xml.XMLConstants;
+ import javax.xml.stream.XMLStreamConstants;
+ import javax.xml.stream.events.XMLEvent;
+@@ -165,7 +167,7 @@
+
+ /** Feature identifier: standard uri conformant */
+ protected static final String STANDARD_URI_CONFORMANT =
+- Constants.XERCES_FEATURE_PREFIX +Constants.STANDARD_URI_CONFORMANT_FEATURE;
++ Constants.XERCES_FEATURE_PREFIX + Constants.STANDARD_URI_CONFORMANT_FEATURE;
+
+ /** Property identifier: Security property manager. */
+ private static final String XML_SECURITY_PROPERTY_MANAGER =
+@@ -213,11 +215,8 @@
+ };
+
+ private static final char [] cdata = {'[','C','D','A','T','A','['};
+- private static final char [] endTag = {'<','/'};
+-
+- //this variable is also used by XMLDocumentScannerImpl in the same package
+ static final char [] xmlDecl = {'<','?','x','m','l'};
+-
++ private static final char [] endTag = {'<','/'};
+ // debugging
+
+ /** Debug scanner state. */
+@@ -316,6 +315,7 @@
+ protected String fDeclaredEncoding = null;
+ /** Xerces Feature: Disallow doctype declaration. */
+ protected boolean fDisallowDoctype = false;
++
+ /**
+ * comma-delimited list of protocols that are allowed for the purpose
+ * of accessing external dtd or entity references
+@@ -384,7 +384,6 @@
+
+ protected boolean foundBuiltInRefs = false;
+
+- protected SecurityManager fSecurityManager = null;
+
+ //skip element algorithm
+ static final short MAX_DEPTH_LIMIT = 5 ;
+@@ -571,8 +570,11 @@
+ // xerces features
+ fReportCdataEvent = componentManager.getFeature(Constants.STAX_REPORT_CDATA_EVENT, true);
+
+- fSecurityManager = (SecurityManager)componentManager.getProperty(Constants.SECURITY_MANAGER, null);
+- fElementAttributeLimit = (fSecurityManager != null)?fSecurityManager.getElementAttrLimit():0;
++ fSecurityManager = (XMLSecurityManager)componentManager.getProperty(Constants.SECURITY_MANAGER, null);
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
++
++ fElementAttributeLimit = (fSecurityManager != null)?
++ fSecurityManager.getLimit(XMLSecurityManager.Limit.ELEMENT_ATTRIBUTE_LIMIT):0;
+
+ fNotifyBuiltInRefs = componentManager.getFeature(NOTIFY_BUILTIN_REFS, false);
+
+@@ -598,9 +600,6 @@
+ //xxx: external entities are supported in Xerces
+ // it would be good to define feature for this case
+ fSupportExternalEntities = true;
+- fSupportExternalEntities = true;
+- fSupportExternalEntities = true;
+- fSupportExternalEntities = true;
+ fReplaceEntityReferences = true;
+ fIsCoalesce = false;
+
+@@ -667,10 +666,13 @@
+
+ dtdGrammarUtil = null;
+
+- // JAXP 1.5 features and properties
++ // JAXP 1.5 features and properties
+ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager)
+ propertyManager.getProperty(XML_SECURITY_PROPERTY_MANAGER);
+ fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD);
++
++ fSecurityManager = (XMLSecurityManager)propertyManager.getProperty(Constants.SECURITY_MANAGER);
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
+ } // reset(XMLComponentManager)
+
+ /**
+@@ -769,10 +771,10 @@
+
+ //JAXP 1.5 properties
+ if (propertyId.equals(XML_SECURITY_PROPERTY_MANAGER))
+- {
++ {
+ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager)value;
+ fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD);
+- }
++ }
+
+ } // setProperty(String,Object)
+
+@@ -1322,7 +1324,8 @@
+ fAddDefaultAttr = true;
+ do {
+ scanAttribute(fAttributes);
+- if (fSecurityManager != null && fAttributes.getLength() > fElementAttributeLimit){
++ if (fSecurityManager != null && !fSecurityManager.isNoLimit(fElementAttributeLimit) &&
++ fAttributes.getLength() > fElementAttributeLimit){
+ fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+ "ElementAttributeLimit",
+ new Object[]{rawname, new Integer(fAttributes.getLength()) },
+@@ -2036,6 +2039,13 @@
+
+ } // getDriverName():String
+
++ /**
++ * Check the protocol used in the systemId against allowed protocols
++ *
++ * @param systemId the Id of the URI
++ * @param allowedProtocols a list of allowed protocols separated by comma
++ * @return the name of the protocol if rejected, null otherwise
++ */
+ String checkAccess(String systemId, String allowedProtocols) throws IOException {
+ String baseSystemId = fEntityScanner.getBaseSystemId();
+ String expandedSystemId = fEntityManager.expandSystemId(systemId, baseSystemId,fStrictURI);
+@@ -2833,6 +2843,8 @@
+ if(DEBUG){
+ System.out.println("NOT USING THE BUFFER, STRING = " + fTempString.toString());
+ }
++ //check limit before returning event
++ checkLimit(fContentBuffer);
+ if(dtdGrammarUtil!= null && dtdGrammarUtil.isIgnorableWhiteSpace(fContentBuffer)){
+ if(DEBUG)System.out.println("Return SPACE EVENT");
+ return XMLEvent.SPACE;
+@@ -2931,6 +2943,8 @@
+ fLastSectionWasCharacterData = true ;
+ continue;
+ }else{
++ //check limit before returning event
++ checkLimit(fContentBuffer);
+ if(dtdGrammarUtil!= null && dtdGrammarUtil.isIgnorableWhiteSpace(fContentBuffer)){
+ if(DEBUG)System.out.println("Return SPACE EVENT");
+ return XMLEvent.SPACE;
+@@ -3141,6 +3155,30 @@
+ } //while loop
+ }//next
+
++ /**
++ * Add the count of the content buffer and check if the accumulated
++ * value exceeds the limit
++ * @param buffer content buffer
++ */
++ protected void checkLimit(XMLStringBuffer buffer) {
++ if (fLimitAnalyzer.isTracking(fCurrentEntityName)) {
++ fLimitAnalyzer.addValue(Limit.GENEAL_ENTITY_SIZE_LIMIT, fCurrentEntityName, buffer.length);
++ if (fSecurityManager.isOverLimit(Limit.GENEAL_ENTITY_SIZE_LIMIT)) {
++ fSecurityManager.debugPrint();
++ reportFatalError("MaxEntitySizeLimit", new Object[]{fCurrentEntityName,
++ fLimitAnalyzer.getValue(Limit.GENEAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getLimit(Limit.GENEAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getStateLiteral(Limit.GENEAL_ENTITY_SIZE_LIMIT)});
++ }
++ if (fSecurityManager.isOverLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT)) {
++ fSecurityManager.debugPrint();
++ reportFatalError("TotalEntitySizeLimit",
++ new Object[]{fLimitAnalyzer.getTotalValue(Limit.TOTAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT),
++ fSecurityManager.getStateLiteral(Limit.TOTAL_ENTITY_SIZE_LIMIT)});
++ }
++ }
++ }
+
+ //
+ // Protected methods
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -18,19 +18,17 @@
+ * limitations under the License.
+ */
+
+-package com.sun.org.apache.xerces.internal.impl ;
++package com.sun.org.apache.xerces.internal.impl;
+
+-import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader;
+ import com.sun.org.apache.xerces.internal.impl.io.UCSReader;
+ import com.sun.org.apache.xerces.internal.impl.io.UTF8Reader;
+ import com.sun.org.apache.xerces.internal.impl.msg.XMLMessageFormatter;
+-import com.sun.org.apache.xerces.internal.impl.XMLEntityHandler;
+ import com.sun.org.apache.xerces.internal.impl.validation.ValidationManager;
+ import com.sun.org.apache.xerces.internal.util.*;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+-import com.sun.org.apache.xerces.internal.util.URI;
+ import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
++import com.sun.org.apache.xerces.internal.utils.XMLLimitAnalyzer;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier;
+@@ -174,7 +172,6 @@
+ /** access external dtd: file protocol */
+ static final String EXTERNAL_ACCESS_DEFAULT = Constants.EXTERNAL_ACCESS_DEFAULT;
+
+-
+ // recognized features and properties
+
+ /** Recognized features. */
+@@ -307,6 +304,7 @@
+
+ /** used to restrict external access */
+ protected String fAccessExternalDTD = EXTERNAL_ACCESS_DEFAULT;
++
+ // settings
+
+ /**
+@@ -324,9 +322,12 @@
+ */
+ protected int fBufferSize = DEFAULT_BUFFER_SIZE;
+
+- // stores defaults for entity expansion limit if it has
+- // been set on the configuration.
+- protected SecurityManager fSecurityManager = null;
++ /** Security Manager */
++ protected XMLSecurityManager fSecurityManager = null;
++
++ protected XMLLimitAnalyzer fLimitAnalyzer = null;
++
++ protected int entityExpansionIndex;
+
+ /**
+ * True if the document entity is standalone. This should really
+@@ -352,10 +353,6 @@
+ /** XML 1.1 entity scanner. */
+ protected XMLEntityScanner fXML11EntityScanner;
+
+- /** entity expansion limit (contains useful data if and only if
+- fSecurityManager is non-null) */
+- protected int fEntityExpansionLimit = 0;
+-
+ /** count of entities expanded: */
+ protected int fEntityExpansionCount = 0;
+
+@@ -833,6 +830,9 @@
+ fCurrentEntity.setEncodingExternallySpecified(encodingExternallySpecified);
+ fEntityScanner.setCurrentEntity(fCurrentEntity);
+ fResourceIdentifier.setValues(publicId, literalSystemId, baseSystemId, expandedSystemId);
++ if (fLimitAnalyzer != null) {
++ fLimitAnalyzer.startEntity(name);
++ }
+ return encoding;
+ } //setupCurrentEntity(String, XMLInputSource, boolean, boolean): String
+
+@@ -1294,10 +1294,13 @@
+ //expansions exceeds the entity expansion limit, parser will throw fatal error.
+ // Note that this represents the nesting level of open entities.
+ fEntityExpansionCount++;
+- if( fSecurityManager != null && fEntityExpansionCount > fEntityExpansionLimit ){
+- fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+- "EntityExpansionLimitExceeded",
+- new Object[]{new Integer(fEntityExpansionLimit) },
++ if(fLimitAnalyzer != null) {
++ fLimitAnalyzer.addValue(entityExpansionIndex, name, 1);
++ }
++ if( fSecurityManager != null && fSecurityManager.isOverLimit(entityExpansionIndex)){
++ fSecurityManager.debugPrint();
++ fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,"EntityExpansionLimitExceeded",
++ new Object[]{fSecurityManager.getLimitValueByIndex(entityExpansionIndex)},
+ XMLErrorReporter.SEVERITY_FATAL_ERROR );
+ // is there anything better to do than reset the counter?
+ // at least one can envision debugging applications where this might
+@@ -1361,6 +1364,12 @@
+ if(fCurrentEntity != null){
+ //close the reader
+ try{
++ if (fLimitAnalyzer != null) {
++ fLimitAnalyzer.endEntity(XMLSecurityManager.Limit.GENEAL_ENTITY_SIZE_LIMIT, fCurrentEntity.name);
++ if (fCurrentEntity.name.equals("[xml]")) {
++ fSecurityManager.debugPrint();
++ }
++ }
+ fCurrentEntity.close();
+ }catch(IOException ex){
+ throw new XNIException(ex);
+@@ -1426,6 +1435,9 @@
+ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager) propertyManager.getProperty(XML_SECURITY_PROPERTY_MANAGER);
+ fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD);
+
++ fSecurityManager = (XMLSecurityManager)propertyManager.getProperty(SECURITY_MANAGER);
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
++
+ // initialize state
+ //fStandalone = false;
+ fEntities.clear();
+@@ -1485,7 +1497,9 @@
+ fEntityResolver = (XMLEntityResolver)componentManager.getProperty(ENTITY_RESOLVER, null);
+ fStaxEntityResolver = (StaxEntityResolverWrapper)componentManager.getProperty(STAX_ENTITY_RESOLVER, null);
+ fValidationManager = (ValidationManager)componentManager.getProperty(VALIDATION_MANAGER, null);
+- fSecurityManager = (SecurityManager)componentManager.getProperty(SECURITY_MANAGER, null);
++ fSecurityManager = (XMLSecurityManager)componentManager.getProperty(SECURITY_MANAGER, null);
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
++ entityExpansionIndex = fSecurityManager.getIndex(Constants.JDK_ENTITY_EXPANSION_LIMIT);
+
+ // JAXP 1.5 feature
+ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager) componentManager.getProperty(XML_SECURITY_PROPERTY_MANAGER, null);
+@@ -1506,7 +1520,6 @@
+ // a class acting as a component manager but not
+ // implementing that interface for whatever reason.
+ public void reset() {
+- fEntityExpansionLimit = (fSecurityManager != null)?fSecurityManager.getEntityExpansionLimit():0;
+
+ // initialize state
+ fStandalone = false;
+@@ -1642,19 +1655,18 @@
+ }
+ if (suffixLength == Constants.SECURITY_MANAGER_PROPERTY.length() &&
+ propertyId.endsWith(Constants.SECURITY_MANAGER_PROPERTY)) {
+- fSecurityManager = (SecurityManager)value;
+- fEntityExpansionLimit = (fSecurityManager != null)?fSecurityManager.getEntityExpansionLimit():0;
++ fSecurityManager = (XMLSecurityManager)value;
++ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
+ }
+ }
+
+ //JAXP 1.5 properties
+ if (propertyId.equals(XML_SECURITY_PROPERTY_MANAGER))
+- {
++ {
+ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager)value;
+ fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD);
++ }
+ }
+- }
+-
+ /**
+ * Returns a list of property identifiers that are recognized by
+ * this component. This method may return null if no properties
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -58,6 +58,7 @@
+ * @author Neeraj Bajaj, Sun Microsystems
+ * @author Venugopal Rao K, Sun Microsystems
+ * @author Elena Litani, IBM
++ * @version $Id: XMLNSDocumentScannerImpl.java,v 1.11 2010-11-01 04:39:41 joehw Exp $
+ */
+ public class XMLNSDocumentScannerImpl
+ extends XMLDocumentScannerImpl {
+@@ -251,7 +252,8 @@
+
+ do {
+ scanAttribute(fAttributes);
+- if (fSecurityManager != null && fAttributes.getLength() > fElementAttributeLimit){
++ if (fSecurityManager != null && (!fSecurityManager.isNoLimit(fElementAttributeLimit)) &&
++ fAttributes.getLength() > fElementAttributeLimit){
+ fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
+ "ElementAttributeLimit",
+ new Object[]{rawname, new Integer(fAttributes.getLength()) },
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java 2013-09-06 11:22:57.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java 2013-12-01 11:13:41.000000000 -0800
+@@ -32,6 +32,8 @@
+ import com.sun.org.apache.xerces.internal.util.XMLChar;
+ import com.sun.org.apache.xerces.internal.util.XMLResourceIdentifierImpl;
+ import com.sun.org.apache.xerces.internal.util.XMLStringBuffer;
++import com.sun.org.apache.xerces.internal.utils.XMLLimitAnalyzer;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.xni.XMLAttributes;
+ import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier;
+@@ -106,6 +108,9 @@
+ protected static final String ENTITY_MANAGER =
+ Constants.XERCES_PROPERTY_PREFIX + Constants.ENTITY_MANAGER_PROPERTY;
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
++
+ // debugging
+
+ /** Debug attribute normalization. */
+@@ -159,6 +164,12 @@
+ /** xxx this should be available from EntityManager Entity storage */
+ protected XMLEntityStorage fEntityStore = null ;
+
++ /** Security manager. */
++ protected XMLSecurityManager fSecurityManager = null;
++
++ /** Limit analyzer. */
++ protected XMLLimitAnalyzer fLimitAnalyzer = null;
++
+ // protected data
+
+ /** event type */
+@@ -256,6 +267,7 @@
+ fSymbolTable = (SymbolTable)componentManager.getProperty(SYMBOL_TABLE);
+ fErrorReporter = (XMLErrorReporter)componentManager.getProperty(ERROR_REPORTER);
+ fEntityManager = (XMLEntityManager)componentManager.getProperty(ENTITY_MANAGER);
++ fSecurityManager = (XMLSecurityManager)componentManager.getProperty(SECURITY_MANAGER);
+
+ //this step is extra because we have separated the storage of entity
+ fEntityStore = fEntityManager.getEntityStore() ;
+@@ -293,6 +305,10 @@
+ fEntityManager = (XMLEntityManager)value;
+ }
+ }
++
++ if (propertyId.equals(SECURITY_MANAGER)) {
++ fSecurityManager = (XMLSecurityManager)value;
++ }
+ /*else if(propertyId.equals(Constants.STAX_PROPERTIES)){
+ fStaxProperties = (HashMap)value;
+ //TODO::discuss with neeraj what are his thoughts on passing properties.
+@@ -352,6 +368,8 @@
+ fEntityManager = (XMLEntityManager)propertyManager.getProperty(ENTITY_MANAGER);
+ fEntityStore = fEntityManager.getEntityStore() ;
+ fEntityScanner = (XMLEntityScanner)fEntityManager.getEntityScanner() ;
++ fSecurityManager = (XMLSecurityManager)propertyManager.getProperty(SECURITY_MANAGER);
++
+ //fEntityManager.reset();
+ // DTD preparsing defaults:
+ fValidation = false;
+@@ -499,7 +517,7 @@
+ reportFatalError("SDDeclInvalid", new Object[] {standalone});
+ }
+ } else {
+- reportFatalError("EncodingDeclRequired", null);
++ reportFatalError("SDDeclNameInvalid", null);
+ }
+ break;
+ }
+@@ -510,8 +528,9 @@
+ sawSpace = fEntityScanner.skipSpaces();
+ }
+ // restore original literal value
+- if(currLiteral)
++ if(currLiteral) {
+ currEnt.literal = true;
++ }
+ // REVISIT: should we remove this error reporting?
+ if (scanningTextDecl && state != STATE_DONE) {
+ reportFatalError("MorePseudoAttributes", null);
+@@ -564,7 +583,7 @@
+ XMLString value)
+ throws IOException, XNIException {
+
+- String name = fEntityScanner.scanName();
++ String name = scanPseudoAttributeName();
+ // XMLEntityManager.print(fEntityManager.getCurrentEntity());
+
+ if (name == null) {
+@@ -617,6 +636,35 @@
+ } // scanPseudoAttribute(XMLString):String
+
+ /**
++ * Scans the name of a pseudo attribute. The only legal names
++ * in XML 1.0/1.1 documents are 'version', 'encoding' and 'standalone'.
++ *
++ * @return the name of the pseudo attribute or null
++ * if a legal pseudo attribute name could not be scanned.
++ */
++ private String scanPseudoAttributeName() throws IOException, XNIException {
++ final int ch = fEntityScanner.peekChar();
++ switch (ch) {
++ case 'v':
++ if (fEntityScanner.skipString(fVersionSymbol)) {
++ return fVersionSymbol;
++ }
++ break;
++ case 'e':
++ if (fEntityScanner.skipString(fEncodingSymbol)) {
++ return fEncodingSymbol;
++ }
++ break;
++ case 's':
++ if (fEntityScanner.skipString(fStandaloneSymbol)) {
++ return fStandaloneSymbol;
++ }
++ break;
++ }
++ return null;
++ } // scanPseudoAttributeName()
++
++ /**
+ * Scans a processing instruction.
+ *
+ *
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties 2013-09-06 11:22:58.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -44,6 +44,7 @@
+
+ # 2.9 Standalone Document Declaration
+ SDDeclInvalid = The standalone document declaration value must be \"yes\" or \"no\", not \"{0}\".
++ SDDeclNameInvalid = The standalone name in XML declaration may be misspelled.
+ # 2.12 Language Identification
+ XMLLangInvalid = The xml:lang attribute value \"{0}\" is an invalid language identifier.
+ # 3. Logical Structures
+@@ -292,8 +293,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=The parser has encountered more than \"{0}\" entity expansions in this document; this is the limit imposed by the application.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: The parser has encountered more than \"{0}\" entity expansions in this document; this is the limit imposed by the JDK.
++ ElementAttributeLimit=JAXP00010002: Element \"{0}\" has more than \"{1}\" attributes, \"{1}\" is the limit imposed by the JDK.
++ MaxEntitySizeLimit=JAXP00010003: The length of entity \"{0}\" is \"{1}\" that exceeds the \"{2}\" limit set by \"{3}\".
++ TotalEntitySizeLimit=JAXP00010004: The accumulated size \"{0}\" of entities exceeded the \"{1}\" limit set by \"{2}\".
++ MaxXMLNameLimit=JAXP00010005: The name \"{0}\" exceeded the \"{1}\" limit set by \"{2}\".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= Element \"{0}\" has more than \"{1}\" attributes, \"{1}\" is the limit imposed by the application.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde im Prolog des Dokuments gefunden.
+ InvalidCharInXMLDecl = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde in der XML-Deklaration gefunden.
+ # 2.4 Character Data and Markup
+- CDEndInContent = Zeichenfolge"\"]]>\" darf nur im Content enthalten sein, wenn sie das Ende eines CDATA-Abschnitts markiert.
++ CDEndInContent = Zeichenfolge""]]>" darf nur im Content enthalten sein, wenn sie das Ende eines CDATA-Abschnitts markiert.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA-Abschnitt muss mit \"]]>\" enden.
++ CDSectUnterminated = CDATA-Abschnitt muss mit "]]>" enden.
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML-Deklaration darf nur ganz am Anfang des Dokuments enthalten sein.
+- EqRequiredInXMLDecl = Zeichen " = " muss auf \"{0}\" in der XML-Deklaration folgen.
+- QuoteRequiredInXMLDecl = Der Wert nach \"{0}\" in der XML-Deklaration muss eine Zeichenfolge in Anf\u00FChrungszeichen sein.
+- XMLDeclUnterminated = XML-Deklaration muss mit \"?>\" enden.
++ EqRequiredInXMLDecl = Zeichen " = " muss auf "{0}" in der XML-Deklaration folgen.
++ QuoteRequiredInXMLDecl = Der Wert nach "{0}" in der XML-Deklaration muss eine Zeichenfolge in Anf\u00FChrungszeichen sein.
++ XMLDeclUnterminated = XML-Deklaration muss mit "?>" enden.
+ VersionInfoRequired = Version ist in der XML-Deklaration erforderlich.
+ SpaceRequiredBeforeVersionInXMLDecl = Leerstelle vor dem Versionspseudoattribut in der XML-Deklaration erforderlich.
+ SpaceRequiredBeforeEncodingInXMLDecl = Leerstelle vor dem Codierungspseudoattribut in der XML-Deklaration erforderlich.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=Referenz ist nicht zul\u00E4ssig in angeh\u00E4ngtem Abschnitt.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = Standalone-Dokumentdeklarationswert muss \"Ja\" oder \"Nein\" und nicht \"{0}\" sein.
++ SDDeclInvalid = Standalone-Dokumentdeklarationswert muss "Ja" oder "Nein" und nicht "{0}" sein.
++ SDDeclNameInvalid = Der Standalone-Name in der XML-Deklaration ist m\u00F6glicherweise falsch geschrieben.
+ # 2.12 Language Identification
+- XMLLangInvalid = xml:lang-Attributwert \"{0}\" ist eine ung\u00FCltige Sprach-ID.
++ XMLLangInvalid = xml:lang-Attributwert "{0}" ist eine ung\u00FCltige Sprach-ID.
+ # 3. Logical Structures
+- ETagRequired = Elementtyp \"{0}\" muss mit dem entsprechenden Endtag \"{0}>\" beendet werden.
++ ETagRequired = Elementtyp "{0}" muss mit dem entsprechenden Endtag "{0}>" beendet werden.
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = Auf Elementtyp \"{0}\" m\u00FCssen entweder Attributspezifikationen, \">\" oder \"/>\" folgen.
+- EqRequiredInAttribute = Mit Elementtyp \"{0}\" verkn\u00FCpfter Attributname \"{1}\" muss vom Zeichen " = " gefolgt werden.
+- OpenQuoteExpected = \u00D6ffnendes Anf\u00FChrungszeichen wird f\u00FCr Attribut \"{1}\" erwartet, das mit Elementtyp \"{0}\" verkn\u00FCpft ist.
+- CloseQuoteExpected = Schlie\u00DFendes Anf\u00FChrungszeichen wird f\u00FCr Attribut \"{1}\" erwartet, das mit Elementtyp \"{0}\" verkn\u00FCpft ist.
+- AttributeNotUnique = Attribut \"{1}\" wurde bereits f\u00FCr Element \"{0}\" angegeben.
+- AttributeNSNotUnique = An Namespace \"{2}\" gebundenes Attribut \"{1}\" wurde bereits f\u00FCr Element \"{0}\" angegeben.
+- ETagUnterminated = Endtag f\u00FCr Elementtyp \"{0}\" muss mit einem ">"-Begrenzungszeichen enden.
++ ElementUnterminated = Auf Elementtyp "{0}" m\u00FCssen entweder Attributspezifikationen, ">" oder "/>" folgen.
++ EqRequiredInAttribute = Mit Elementtyp "{0}" verkn\u00FCpfter Attributname "{1}" muss vom Zeichen " = " gefolgt werden.
++ OpenQuoteExpected = \u00D6ffnendes Anf\u00FChrungszeichen wird f\u00FCr Attribut "{1}" erwartet, das mit Elementtyp "{0}" verkn\u00FCpft ist.
++ CloseQuoteExpected = Schlie\u00DFendes Anf\u00FChrungszeichen wird f\u00FCr Attribut "{1}" erwartet, das mit Elementtyp "{0}" verkn\u00FCpft ist.
++ AttributeNotUnique = Attribut "{1}" wurde bereits f\u00FCr Element "{0}" angegeben.
++ AttributeNSNotUnique = An Namespace "{2}" gebundenes Attribut "{1}" wurde bereits f\u00FCr Element "{0}" angegeben.
++ ETagUnterminated = Endtag f\u00FCr Elementtyp "{0}" muss mit einem ">"-Begrenzungszeichen enden.
+ MarkupNotRecognizedInContent = Der Content von Elementen muss aus ordnungsgem\u00E4\u00DF formatierten Zeichendaten oder Markups bestehen.
+ DoctypeIllegalInContent = DOCTYPE ist nicht zul\u00E4ssig in Content.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = Referenz muss mit einem ";"-Begrenzungszeichen beendet werden.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = Referenz muss vollst\u00E4ndig in derselben geparsten Entit\u00E4t enthalten sein.
+- ElementEntityMismatch = Element \"{0}\" muss innerhalb derselben Entit\u00E4t beginnen und enden.
++ ElementEntityMismatch = Element "{0}" muss innerhalb derselben Entit\u00E4t beginnen und enden.
+ MarkupEntityMismatch=XML-Dokumentstrukturen m\u00FCssen innerhalb derselben Entit\u00E4t beginnen und enden.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{2}) wurde im Wert des Attributs \"{1}\" gefunden. Element ist \"{0}\".
++ InvalidCharInAttValue = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{2}) wurde im Wert des Attributs "{1}" gefunden. Element ist "{0}".
+ InvalidCharInComment = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde im Kommentar gefunden.
+ InvalidCharInPI = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde in der Verarbeitungsanweisung gefunden.
+ InvalidCharInInternalSubset = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde in der internen Teilmenge der DTD gefunden.
+ InvalidCharInTextDecl = Ung\u00FCltiges XML-Zeichen (Unicode: 0x{0}) wurde in der Textdeklaration gefunden.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = Wert des Attributs \"{1}\" muss mit einem einzelnen oder doppelten Anf\u00FChrungszeichen beginnen.
+- LessthanInAttValue = Wert des Attributs \"{1}\", das mit Elementtyp \"{0}\" verkn\u00FCpft ist, darf nicht das Zeichen "<" enthalten.
+- AttributeValueUnterminated = Wert f\u00FCr Attribut \"{1}\" muss mit dem entsprechenden Anf\u00FChrungszeichen enden.
++ QuoteRequiredInAttValue = Wert des Attributs "{1}" muss mit einem einzelnen oder doppelten Anf\u00FChrungszeichen beginnen.
++ LessthanInAttValue = Wert des Attributs "{1}", das mit Elementtyp "{0}" verkn\u00FCpft ist, darf nicht das Zeichen "<" enthalten.
++ AttributeValueUnterminated = Wert f\u00FCr Attribut "{1}" muss mit dem entsprechenden Anf\u00FChrungszeichen enden.
+ # 2.5 Comments
+- InvalidCommentStart = Kommentar muss mit \"\" enden.
++ InvalidCommentStart = Kommentar muss mit "" enden.
+ COMMENT_NOT_IN_ONE_ENTITY = Kommentar ist nicht in derselben Entit\u00E4t enthalten.
+ # 2.6 Processing Instructions
+ PITargetRequired = Verarbeitungsanweisung muss mit dem Namen des Ziels beginnen.
+ SpaceRequiredInPI = Leerstelle ist zwischen dem Ziel der Verarbeitungsanweisung und den Daten erforderlich.
+- PIUnterminated = Verarbeitungsanweisung muss mit \"?>\" enden.
+- ReservedPITarget = Verarbeitungsanweisungsziel, das \"[xX][mM][lL]\" entspricht, ist nicht zul\u00E4ssig.
++ PIUnterminated = Verarbeitungsanweisung muss mit "?>" enden.
++ ReservedPITarget = Verarbeitungsanweisungsziel, das "[xX][mM][lL]" entspricht, ist nicht zul\u00E4ssig.
+ PI_NOT_IN_ONE_ENTITY = Verarbeitungsanweisung ist nicht in derselben Entit\u00E4t enthalten.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Ung\u00FCltige Version \"{0}\".
+- VersionNotSupported = XML-Version \"{0}\" wird nicht unterst\u00FCtzt. Nur XML 1.0 wird unterst\u00FCtzt.
+- VersionNotSupported11 = XML-Version \"{0}\" wird nicht unterst\u00FCtzt. Nur XML 1.0 und XML 1.1 werden unterst\u00FCtzt.
++ VersionInfoInvalid = Ung\u00FCltige Version "{0}".
++ VersionNotSupported = XML-Version "{0}" wird nicht unterst\u00FCtzt. Nur XML 1.0 wird unterst\u00FCtzt.
++ VersionNotSupported11 = XML-Version "{0}" wird nicht unterst\u00FCtzt. Nur XML 1.0 und XML 1.1 werden unterst\u00FCtzt.
+ VersionMismatch= Eine Entit\u00E4t kann keine andere Entit\u00E4t einer sp\u00E4teren Version enthalten.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Auf \"\" in einer Zeichenreferenz muss umgehend eine Dezimaldarstellung folgen.
+- HexdigitRequiredInCharRef = Auf \"\" in einer Zeichenreferenz muss umgehend eine hexadezimale Darstellung folgen.
++ DigitRequiredInCharRef = Auf "" in einer Zeichenreferenz muss umgehend eine Dezimaldarstellung folgen.
++ HexdigitRequiredInCharRef = Auf "" in einer Zeichenreferenz muss umgehend eine hexadezimale Darstellung folgen.
+ SemicolonRequiredInCharRef = Zeichenreferenz muss mit dem Begrenzungszeichen ";" enden.
+- InvalidCharRef = Zeichenreferenz \"{0}\" ist ein ung\u00FCltiges XML-Zeichen.
++ InvalidCharRef = Zeichenreferenz "{0}" ist ein ung\u00FCltiges XML-Zeichen.
+ NameRequiredInReference = Auf "&" in der Entit\u00E4tsreferenz muss umgehend der Entit\u00E4tsname folgen.
+- SemicolonRequiredInReference = Referenz zu Entit\u00E4t \"{0}\" muss mit dem Begrenzungszeichen ";" enden.
++ SemicolonRequiredInReference = Referenz zu Entit\u00E4t "{0}" muss mit dem Begrenzungszeichen ";" enden.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = Textdeklaration darf nur ganz am Anfang der externen geparsten Entit\u00E4t enthalten sein.
+- EqRequiredInTextDecl = Zeichen " = " muss auf \"{0}\" in der Textdeklaration folgen.
+- QuoteRequiredInTextDecl = Der Wert nach \"{0}\" in der Textdeklaration muss eine Zeichenfolge in Anf\u00FChrungszeichen sein.
+- CloseQuoteMissingInTextDecl = Schlie\u00DFendes Anf\u00FChrungszeichen im Wert nach \"{0}\" in der Textdeklaration fehlt.
++ EqRequiredInTextDecl = Zeichen " = " muss auf "{0}" in der Textdeklaration folgen.
++ QuoteRequiredInTextDecl = Der Wert nach "{0}" in der Textdeklaration muss eine Zeichenfolge in Anf\u00FChrungszeichen sein.
++ CloseQuoteMissingInTextDecl = Schlie\u00DFendes Anf\u00FChrungszeichen im Wert nach "{0}" in der Textdeklaration fehlt.
+ SpaceRequiredBeforeVersionInTextDecl = Leerstelle vor dem Versionspseudoattribut in der Textdeklaration erforderlich.
+ SpaceRequiredBeforeEncodingInTextDecl = Leerstelle vor dem Codierungspseudoattribut in der Textdeklaration erforderlich.
+- TextDeclUnterminated = Textdeklaration muss mit \"?>\" enden.
++ TextDeclUnterminated = Textdeklaration muss mit "?>" enden.
+ EncodingDeclRequired = Codierungsdeklaration ist in der Textdeklaration erforderlich.
+ NoMorePseudoAttributes = Es sind keine weiteren Pseudoattribute zul\u00E4ssig.
+ MorePseudoAttributes = Es werden weitere Pseudoattribute erwartet.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = Kommentar muss vollst\u00E4ndig in derselben geparsten Entit\u00E4t enthalten sein.
+ PINotInOneEntity = Verarbeitungsanweisung muss vollst\u00E4ndig in derselben geparsten Entit\u00E4t enthalten sein.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Ung\u00FCltiger Codierungsname \"{0}\".
+- EncodingByteOrderUnsupported = Angegebene Bytereihenfolge f\u00FCr die Codierung von \"{0}\" wird nicht unterst\u00FCtzt.
++ EncodingDeclInvalid = Ung\u00FCltiger Codierungsname "{0}".
++ EncodingByteOrderUnsupported = Angegebene Bytereihenfolge f\u00FCr die Codierung von "{0}" wird nicht unterst\u00FCtzt.
+ InvalidByte = Ung\u00FCltiges Byte {0} von {1}-Byte-UTF-8-Sequenz.
+ ExpectedByte = Byte {0} von {1}-Byte-UTF-8-Sequenz erwartet.
+ InvalidHighSurrogate = High-Surrogate-Bits in UTF-8-Sequenz d\u00FCrfen 0x10 nicht \u00FCberschreiten, gefunden wurde aber 0x{0}.
+- OperationNotSupported = Vorgang \"{0}\" nicht unterst\u00FCtzt von {1}-Reader.
+- InvalidASCII = Byte \"{0}\" geh\u00F6rt nicht zum (7-Bit) ASCII-Zeichensatz.
++ OperationNotSupported = Vorgang "{0}" nicht unterst\u00FCtzt von {1}-Reader.
++ InvalidASCII = Byte "{0}" geh\u00F6rt nicht zum (7-Bit) ASCII-Zeichensatz.
+ CharConversionFailure = Eine Entit\u00E4t, f\u00FCr die eine bestimmte Codierung ermittelt wurde, darf keine Sequenzen enthalten, die in dieser Codierung ung\u00FCltig sind.
+
+ # DTD Messages
+@@ -169,135 +167,135 @@
+ PubidCharIllegal = Zeichen (Unicode: 0x{0}) ist nicht zul\u00E4ssig in der \u00F6ffentlichen ID.
+ SpaceRequiredBetweenPublicAndSystem = Leerstellen erforderlich zwischen publicId und systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Leerstelle nach \"" enden.
+- PEReferenceWithinMarkup = Parameterentit\u00E4tsreferenz \"%{0};\" darf nicht in Markup in der internen Teilmenge der DTD vorkommen.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Leerstelle nach "" enden.
++ PEReferenceWithinMarkup = Parameterentit\u00E4tsreferenz "%{0};" darf nicht in Markup in der internen Teilmenge der DTD vorkommen.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = Die Markup-Deklarationen, die in der Dokumenttypdeklaration enthalten sind bzw. auf die von der Dokumenttypdeklaration verwiesen wird, m\u00FCssen ordnungsgem\u00E4\u00DF formatiert sein.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = Attributdeklaration f\u00FCr \"xml:space\" muss als aufgez\u00E4hlter Typ angegeben werden, dessen einzigen m\u00F6glichen Werte \"default\" und \"preserve\" sind.
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = Attributdeklaration f\u00FCr "xml:space" muss als aufgez\u00E4hlter Typ angegeben werden, dessen einzigen m\u00F6glichen Werte "default" und "preserve" sind.
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Leerstelle nach \"" enden.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Leerstelle nach Elementtyp "{0}" in der Elementtypdeklaration erforderlich.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = Constraint ist nach dem Elementtyp "{0}" in der Elementtypdeklaration erforderlich.
++ ElementDeclUnterminated = Deklaration f\u00FCr Elementtyp "{0}" muss mit ">" enden.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Das Zeichen "(" oder ein Elementtyp ist in der Deklaration des Elementtyps \"{0}\" erforderlich.
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Das Zeichen ")" ist in der Deklaration des Elementtyps \"{0}\" erforderlich.
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Das Zeichen "(" oder ein Elementtyp ist in der Deklaration des Elementtyps "{0}" erforderlich.
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Das Zeichen ")" ist in der Deklaration des Elementtyps "{0}" erforderlich.
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Ein Elementtyp ist in der Deklaration des Elementtyps \"{0}\" erforderlich.
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Das Zeichen ")" ist in der Deklaration des Elementtyps \"{0}\" erforderlich.
+- MixedContentUnterminated = Das Mischcontentmodell \"{0}\" muss mit \")*\" enden, wenn die Typen der untergeordneten Elemente eingeschr\u00E4nkt sind.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Ein Elementtyp ist in der Deklaration des Elementtyps "{0}" erforderlich.
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Das Zeichen ")" ist in der Deklaration des Elementtyps "{0}" erforderlich.
++ MixedContentUnterminated = Das Mischcontentmodell "{0}" muss mit ")*" enden, wenn die Typen der untergeordneten Elemente eingeschr\u00E4nkt sind.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Leerstelle nach \"\" enden.
+- IgnoreSectUnterminated = Der ausgeschlossene Bedingungsabschnitt muss mit \"]]>\" enden.
++ IncludeSectUnterminated = Der eingeschlossene Bedingungsabschnitt muss mit "]]>" enden.
++ IgnoreSectUnterminated = Der ausgeschlossene Bedingungsabschnitt muss mit "]]>" enden.
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = Auf "%" in der Parameterentit\u00E4tsreferenz muss umgehend der Entit\u00E4tsname folgen.
+- SemicolonRequiredInPEReference = Parameterentit\u00E4tsreferenz \"%{0};\" muss mit dem Begrenzungszeichen ";" enden.
++ SemicolonRequiredInPEReference = Parameterentit\u00E4tsreferenz "%{0};" muss mit dem Begrenzungszeichen ";" enden.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Leerstelle nach \"" enden.
+- MSG_DUPLICATE_ENTITY_DEFINITION = Entit\u00E4t \"{0}\" wurde mehrmals deklariert.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Leerstelle zwischen dem Entit\u00E4tsnamen "{0}" und der Definition in der Entit\u00E4tsdeklaration erforderlich.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Leerstelle zwischen "NDATA" und dem Notationsnamen in der Deklaration f\u00FCr die Entit\u00E4t "{0} erforderlich.
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Leerstelle vor "NDATA" in der Deklaration f\u00FCr die Entit\u00E4t "{0} erforderlich.
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = Notationsname ist nach "NDATA" in der Deklaration f\u00FCr die Entit\u00E4t "{0} erforderlich.
++ EntityDeclUnterminated = Deklaration f\u00FCr Entit\u00E4t "{0}" muss mit ">" enden.
++ MSG_DUPLICATE_ENTITY_DEFINITION = Entit\u00E4t "{0}" wurde mehrmals deklariert.
+ # 4.2.2 External Entities
+- ExternalIDRequired = Externe Entit\u00E4tsdeklaration muss mit \"SYSTEM\" oder \"PUBLIC\" beginnen.
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Leerstelle zwischen \"PUBLIC\" und der \u00F6ffentlichen ID erforderlich.
++ ExternalIDRequired = Externe Entit\u00E4tsdeklaration muss mit "SYSTEM" oder "PUBLIC" beginnen.
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Leerstelle zwischen "PUBLIC" und der \u00F6ffentlichen ID erforderlich.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Leerstelle zwischen der \u00F6ffentlichen ID und der System-ID erforderlich.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Leerstelle zwischen \"SYSTEM\" und der System-ID erforderlich.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = Fragment-ID darf nicht als Teil der System-ID \"{0}\" angegeben werden.
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Leerstelle zwischen "SYSTEM" und der System-ID erforderlich.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = Fragment-ID darf nicht als Teil der System-ID "{0}" angegeben werden.
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Leerstelle nach \"" enden.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Leerstelle nach dem Notationsnamen "{0}" in der Notationsdeklaration erforderlich.
++ ExternalIDorPublicIDRequired = Deklaration f\u00FCr die Notation "{0}" muss eine System- oder eine \u00F6ffentliche ID enthalten.
++ NotationDeclUnterminated = Deklaration f\u00FCr die Notation "{0}" muss mit ">" enden.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = Elementtyp \"{1}\" wurde bereits im Contentmodell der Elementdeklaration\"{0}\" angegeben.
+- ENTITIESInvalid = Attributwert \"{1}\" mit dem Typ ENTITIES muss aus den Namen von mindestens einer geparsten Entit\u00E4t bestehen.
+- ENTITYInvalid = Attributwert \"{1}\" mit dem Typ ENTITY muss aus dem Namen einer geparsten Entit\u00E4t bestehen.
+- IDDefaultTypeInvalid = ID-Attribut \"{0}\" muss den deklarierten Standardwert \"#IMPLIED\" oder \"#REQUIRED\" haben.
+- IDInvalid = Attributwert \"{0}\" mit dem Typ ID muss ein Name sein.
+- IDInvalidWithNamespaces = Attributwert \"{0}\" mit dem Typ ID muss ein NCName sein, wenn Namespaces aktiviert sind.
+- IDNotUnique = Attributwert \"{0}\" mit dem Typ ID muss eindeutig im Dokument sein.
+- IDREFInvalid = Attributwert \"{0}\" mit dem Typ IDREF muss ein Name sein.
+- IDREFInvalidWithNamespaces = Attributwert \"{0}\" mit dem Typ IDREF muss ein NCName sein, wenn Namespaces aktiviert sind.
+- IDREFSInvalid = Attributwert \"{0}\" mit dem Typ IDREFS muss mindestens ein Name sein.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Ersatztext der Parameterentit\u00E4t \"{0}\" muss ordnungsgem\u00E4\u00DF verschachtelte Deklarationen enthalten, wenn die Entit\u00E4tsreferenz als vollst\u00E4ndige Deklaration verwendet wird.
+- ImproperDeclarationNesting = Ersatztext der Parameterentit\u00E4t \"{0}\" muss ordnungsgem\u00E4\u00DF verschachtelte Deklarationen enthalten.
+- ImproperGroupNesting = Ersatztext der Parameterentit\u00E4t \"{0}\" muss ordnungsgem\u00E4\u00DF verschachtelte Klammernpaare enthalten.
+- INVALID_PE_IN_CONDITIONAL = Ersatztext der Parameterentit\u00E4t \"{0}\" muss den gesamten Bedingungsabschnitt oder nur INCLUDE oder IGNORE enthalten.
+- MSG_ATTRIBUTE_NOT_DECLARED = Attribut \"{1}\" muss f\u00FCr Elementtyp \"{0}\" deklariert werden.
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = Attribut \"{0}\" mit Wert \"{1}\" muss einen Wert aus der Liste \"{2}\" haben.
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = Der Wert \"{1}\" des Attributs \"{0}\" darf nicht von der Normalisierung (zu \"{2}\") in einem Standalone-Dokument ge\u00E4ndert werden.
+- MSG_CONTENT_INCOMPLETE = Content des Elementtyps \"{0}\" ist unvollst\u00E4ndig. Muss \"{1}\" entsprechen.
+- MSG_CONTENT_INVALID = Content des Elementtyps \"{0}\" muss \"{1}\" entsprechen.
+- MSG_CONTENT_INVALID_SPECIFIED = Content des Elementtyps \"{0}\" muss \"{1}\" entsprechen. Untergeordnete Elemente mit dem Typ \"{2}\" sind nicht zul\u00E4ssig.
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = Attribut \"{1}\" f\u00FCr Elementtyp \"{0}\" hat einen Standardwert und muss in einem Standalone-Dokument angegeben werden.
+- MSG_DUPLICATE_ATTDEF = Attribut \"{1}\" ist bereits deklariert f\u00FCr Elementtyp \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = Elementtyp \"{0}\" darf nicht mehrmals deklariert werden.
+- MSG_ELEMENT_NOT_DECLARED = Elementtyp \"{0}\" muss deklariert werden.
++ DuplicateTypeInMixedContent = Elementtyp "{1}" wurde bereits im Contentmodell der Elementdeklaration"{0}" angegeben.
++ ENTITIESInvalid = Attributwert "{1}" mit dem Typ ENTITIES muss aus den Namen von mindestens einer geparsten Entit\u00E4t bestehen.
++ ENTITYInvalid = Attributwert "{1}" mit dem Typ ENTITY muss aus dem Namen einer geparsten Entit\u00E4t bestehen.
++ IDDefaultTypeInvalid = ID-Attribut "{0}" muss den deklarierten Standardwert "#IMPLIED" oder "#REQUIRED" haben.
++ IDInvalid = Attributwert "{0}" mit dem Typ ID muss ein Name sein.
++ IDInvalidWithNamespaces = Attributwert "{0}" mit dem Typ ID muss ein NCName sein, wenn Namespaces aktiviert sind.
++ IDNotUnique = Attributwert "{0}" mit dem Typ ID muss eindeutig im Dokument sein.
++ IDREFInvalid = Attributwert "{0}" mit dem Typ IDREF muss ein Name sein.
++ IDREFInvalidWithNamespaces = Attributwert "{0}" mit dem Typ IDREF muss ein NCName sein, wenn Namespaces aktiviert sind.
++ IDREFSInvalid = Attributwert "{0}" mit dem Typ IDREFS muss mindestens ein Name sein.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Ersatztext der Parameterentit\u00E4t "{0}" muss ordnungsgem\u00E4\u00DF verschachtelte Deklarationen enthalten, wenn die Entit\u00E4tsreferenz als vollst\u00E4ndige Deklaration verwendet wird.
++ ImproperDeclarationNesting = Ersatztext der Parameterentit\u00E4t "{0}" muss ordnungsgem\u00E4\u00DF verschachtelte Deklarationen enthalten.
++ ImproperGroupNesting = Ersatztext der Parameterentit\u00E4t "{0}" muss ordnungsgem\u00E4\u00DF verschachtelte Klammernpaare enthalten.
++ INVALID_PE_IN_CONDITIONAL = Ersatztext der Parameterentit\u00E4t "{0}" muss den gesamten Bedingungsabschnitt oder nur INCLUDE oder IGNORE enthalten.
++ MSG_ATTRIBUTE_NOT_DECLARED = Attribut "{1}" muss f\u00FCr Elementtyp "{0}" deklariert werden.
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = Attribut "{0}" mit Wert "{1}" muss einen Wert aus der Liste "{2}" haben.
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = Der Wert "{1}" des Attributs "{0}" darf nicht von der Normalisierung (zu "{2}") in einem Standalone-Dokument ge\u00E4ndert werden.
++ MSG_CONTENT_INCOMPLETE = Content des Elementtyps "{0}" ist unvollst\u00E4ndig. Muss "{1}" entsprechen.
++ MSG_CONTENT_INVALID = Content des Elementtyps "{0}" muss "{1}" entsprechen.
++ MSG_CONTENT_INVALID_SPECIFIED = Content des Elementtyps "{0}" muss "{1}" entsprechen. Untergeordnete Elemente mit dem Typ "{2}" sind nicht zul\u00E4ssig.
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = Attribut "{1}" f\u00FCr Elementtyp "{0}" hat einen Standardwert und muss in einem Standalone-Dokument angegeben werden.
++ MSG_DUPLICATE_ATTDEF = Attribut "{1}" ist bereits deklariert f\u00FCr Elementtyp "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = Elementtyp "{0}" darf nicht mehrmals deklariert werden.
++ MSG_ELEMENT_NOT_DECLARED = Elementtyp "{0}" muss deklariert werden.
+ MSG_GRAMMAR_NOT_FOUND = Dokument ist ung\u00FCltig. Keine Grammatik gefunden.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Element mit \"{0}\" ist im Dokument erforderlich.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Referenz zur externen Entit\u00E4t \"{0}\" ist in einem Standalone-Dokument nicht zul\u00E4ssig.
+- MSG_FIXED_ATTVALUE_INVALID = Attribut \"{1}\" mit Wert \"{2}\" muss den Wert\"{3}\" haben.
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Elementtyp \"{0}\" hat bereits ein Attribut \"{1}\" mit dem Typ ID. Ein zweites Attribut \"{2}\" mit dem Typ ID ist nicht zul\u00E4ssig.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Elementtyp \"{0}\" hat bereits ein Attribut \"{1}\" mit dem Typ NOTATION. Ein zweites Attribut \"{2}\" mit dem Typ NOTATION ist nicht zul\u00E4ssig.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = Notation \"{1}\" muss deklariert werden, wenn sie in der Notationstypliste f\u00FCr Attribut \"{0}\" referenziert wird.
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = Notation \"{1}\" muss deklariert werden, wenn sie in der Deklaration der nicht geparsten Entit\u00E4t f\u00FCr \"{0}\" referenziert wird.
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Referenz zur Entit\u00E4t \"{0}\", die in einer externen geparsten Entit\u00E4t deklariert wird, ist in einem Standalone-Dokument nicht zul\u00E4ssig.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attribut \"{1}\" ist erforderlich und muss f\u00FCr Elementtyp \"{0}\" angegeben werden.
++ MSG_ELEMENT_WITH_ID_REQUIRED = Element mit "{0}" ist im Dokument erforderlich.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Referenz zur externen Entit\u00E4t "{0}" ist in einem Standalone-Dokument nicht zul\u00E4ssig.
++ MSG_FIXED_ATTVALUE_INVALID = Attribut "{1}" mit Wert "{2}" muss den Wert"{3}" haben.
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Elementtyp "{0}" hat bereits ein Attribut "{1}" mit dem Typ ID. Ein zweites Attribut "{2}" mit dem Typ ID ist nicht zul\u00E4ssig.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Elementtyp "{0}" hat bereits ein Attribut "{1}" mit dem Typ NOTATION. Ein zweites Attribut "{2}" mit dem Typ NOTATION ist nicht zul\u00E4ssig.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = Notation "{1}" muss deklariert werden, wenn sie in der Notationstypliste f\u00FCr Attribut "{0}" referenziert wird.
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = Notation "{1}" muss deklariert werden, wenn sie in der Deklaration der nicht geparsten Entit\u00E4t f\u00FCr "{0}" referenziert wird.
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Referenz zur Entit\u00E4t "{0}", die in einer externen geparsten Entit\u00E4t deklariert wird, ist in einem Standalone-Dokument nicht zul\u00E4ssig.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attribut "{1}" ist erforderlich und muss f\u00FCr Elementtyp "{0}" angegeben werden.
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Es d\u00FCrfen keine Leerstellen zwischen Elementen in einem Standalone-Dokument vorkommen, die in einer externen geparsten Entit\u00E4t mit Elementcontent deklariert sind.
+- NMTOKENInvalid = Attributwert \"{0}\" mit dem Typ NMTOKEN muss ein Namenstoken sein.
+- NMTOKENSInvalid = Attributwert \"{0}\" mit dem Typ NMTOKENS muss mindestens ein Namenstoken sein.
+- NoNotationOnEmptyElement = Elementtyp \"{0}\", der als EMPTY deklariert wurde, kann nicht das Attribut \"{1}\" mit dem Typ NOTATION deklarieren.
+- RootElementTypeMustMatchDoctypedecl = Dokument-Root-Element \"{1}\"muss mit DOCTYPE-Root \"{0}\" \u00FCbereinstimmen.
+- UndeclaredElementInContentSpec = Contentmodell des Elements \"{0}\" verweist auf das nicht deklarierte Element \"{1}\".
+- UniqueNotationName = Deklaration f\u00FCr die Notation \"{0}\" ist nicht eindeutig. Ein jeweiliger Name darf nicht in mehreren Notationsdeklarationen deklariert werden.
++ NMTOKENInvalid = Attributwert "{0}" mit dem Typ NMTOKEN muss ein Namenstoken sein.
++ NMTOKENSInvalid = Attributwert "{0}" mit dem Typ NMTOKENS muss mindestens ein Namenstoken sein.
++ NoNotationOnEmptyElement = Elementtyp "{0}", der als EMPTY deklariert wurde, kann nicht das Attribut "{1}" mit dem Typ NOTATION deklarieren.
++ RootElementTypeMustMatchDoctypedecl = Dokument-Root-Element "{1}"muss mit DOCTYPE-Root "{0}" \u00FCbereinstimmen.
++ UndeclaredElementInContentSpec = Contentmodell des Elements "{0}" verweist auf das nicht deklarierte Element "{1}".
++ UniqueNotationName = Deklaration f\u00FCr die Notation "{0}" ist nicht eindeutig. Ein jeweiliger Name darf nicht in mehreren Notationsdeklarationen deklariert werden.
+ ENTITYFailedInitializeGrammar = ENTITYDatatype-Validator: Nicht erfolgreich. Initialisierungsmethode muss mit einer g\u00FCltigen Grammatikreferenz aufgerufen werden. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\" ist geparst.
+- ENTITYNotValid = ENTITY \"{0}\" ist nicht g\u00FCltig.
++ ENTITYNotUnparsed = ENTITY "{0}" ist geparst.
++ ENTITYNotValid = ENTITY "{0}" ist nicht g\u00FCltig.
+ EmptyList = Werte der Typen ENTITIES, IDREFS und NMTOKENS d\u00FCrfen keine leeren Listen sein.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = Externe Entit\u00E4tsreferenz \"&{0};\" ist in einem Attributwert nicht zul\u00E4ssig.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = Externe Entit\u00E4tsreferenz "&{0};" ist in einem Attributwert nicht zul\u00E4ssig.
++ AccessExternalDTD = Externe DTD: Lesen von externer DTD "{0}" nicht erfolgreich, da "{1}"-Zugriff wegen der von der Eigenschaft "accessExternalDTD" festgelegten Einschr\u00E4nkung nicht zul\u00E4ssig ist.
++ AccessExternalEntity = Externe Entit\u00E4t: Lesen des externen Dokuments "{0}" nicht erfolgreich, da "{1}"-Zugriff wegen der von der Eigenschaft "accessExternalDTD" festgelegten Einschr\u00E4nkung nicht zul\u00E4ssig ist.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = Entit\u00E4t \"{0}\" wurde referenziert aber nicht deklariert.
+- ReferenceToUnparsedEntity = Nicht geparste Entit\u00E4tsreferenz \"&{0};\" ist nicht zul\u00E4ssig.
+- RecursiveReference = Rekursive Entit\u00E4tsreferenz \"{0}\". (Referenzpfad: {1}),
+- RecursiveGeneralReference = Rekursive allgemeine Entit\u00E4tsreferenz \"&{0};\". (Referenzpfad: {1}),
+- RecursivePEReference = Rekursive Parameterentit\u00E4tsreferenz \"%{0};\". (Referenzpfad: {1}),
++ EntityNotDeclared = Entit\u00E4t "{0}" wurde referenziert aber nicht deklariert.
++ ReferenceToUnparsedEntity = Nicht geparste Entit\u00E4tsreferenz "&{0};" ist nicht zul\u00E4ssig.
++ RecursiveReference = Rekursive Entit\u00E4tsreferenz "{0}". (Referenzpfad: {1}),
++ RecursiveGeneralReference = Rekursive allgemeine Entit\u00E4tsreferenz "&{0};". (Referenzpfad: {1}),
++ RecursivePEReference = Rekursive Parameterentit\u00E4tsreferenz "%{0};". (Referenzpfad: {1}),
+ # 4.3.3 Character Encoding in Entities
+ EncodingNotSupported = Codierung "{0}" wird nicht unterst\u00FCtzt.
+ EncodingRequired = Eine nicht in UTF-8 oder UTF-16 codierte geparste Entit\u00E4t muss eine Codierungsdeklaration enthalten.
+@@ -305,14 +303,14 @@
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = Element oder Attribut stimmt nicht mit QName-Production \u00FCberein: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = Element \"{0}\" darf nicht \"xmlns\" als Pr\u00E4fix enthalten.
+- ElementPrefixUnbound = Pr\u00E4fix \"{0}\" f\u00FCr Element \"{1}\" ist nicht gebunden.
+- AttributePrefixUnbound = Pr\u00E4fix \"{2}\" f\u00FCr Attribut \"{1}\", das mit Elementtyp \"{0}\" verkn\u00FCpft ist, ist nicht gebunden.
+- EmptyPrefixedAttName = Wert des Attributs \"{0}\" ist ung\u00FCltig. Namespace Bindings mit Pr\u00E4fix d\u00FCrfen nicht leer sein.
+- PrefixDeclared = Namespace-Pr\u00E4fix \"{0}\" wurde nicht deklariert.
++ ElementXMLNSPrefix = Element "{0}" darf nicht "xmlns" als Pr\u00E4fix enthalten.
++ ElementPrefixUnbound = Pr\u00E4fix "{0}" f\u00FCr Element "{1}" ist nicht gebunden.
++ AttributePrefixUnbound = Pr\u00E4fix "{2}" f\u00FCr Attribut "{1}", das mit Elementtyp "{0}" verkn\u00FCpft ist, ist nicht gebunden.
++ EmptyPrefixedAttName = Wert des Attributs "{0}" ist ung\u00FCltig. Namespace Bindings mit Pr\u00E4fix d\u00FCrfen nicht leer sein.
++ PrefixDeclared = Namespace-Pr\u00E4fix "{0}" wurde nicht deklariert.
+ CantBindXMLNS = Pr\u00E4fix "xmlns" kann nicht explizit an einen Namespace gebunden werden. Umgekehrt kann auch der Namespace f\u00FCr "xmlns" nicht explizit an ein Pr\u00E4fix gebunden werden.
+ CantBindXML = Pr\u00E4fix "xml" kann nicht an einen anderen Namespace als den gew\u00F6hnlichen gebunden werden. Umgekehrt kann auch der Namespace f\u00FCr "xml" nicht an ein anderes Pr\u00E4fix als "xml" gebunden werden.
+- MSG_ATT_DEFAULT_INVALID = defaultValue \"{1}\" von Attribut \"{0}\" ist aufgrund der lexikalischen Constraints dieses Attributtyps nicht g\u00FCltig.
++ MSG_ATT_DEFAULT_INVALID = defaultValue "{1}" von Attribut "{0}" ist aufgrund der lexikalischen Constraints dieses Attributtyps nicht g\u00FCltig.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=Parser hat mehr als \"{0}\" Entit\u00E4tserweiterungen in diesem Dokument gefunden. Dies ist der durch die Anwendung vorgeschriebene Grenzwert.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: Der Parser hat mehr als {0} Entit\u00E4tserweiterungen in diesem Dokument gefunden. Dies ist der von JDK vorgeschriebene Grenzwert.
++ ElementAttributeLimit=JAXP00010002: Element "{0}" hat mehr als {1} Attribute. "{1}" ist der von JDK vorgeschriebene Grenzwert.
++ MaxEntitySizeLimit=JAXP00010003: Die L\u00E4nge von Entit\u00E4t "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde.
++ TotalEntitySizeLimit=JAXP00010004: Die akkumulierte Gr\u00F6\u00DFe "{0}" der Entit\u00E4ten \u00FCberschreitet den Grenzwert "{1}", der von "{2}" festgelegt wurde.
++ MaxXMLNameLimit=JAXP00010005: Der Name "{0}" \u00FCberschreitet den Grenzwert "{1}", der von "{2}" festgelegt wurde.
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= Element \"{0}\" hat mehr als \"{1}\" Attribute. \"{1}\" ist der durch die Anwendung vorgeschriebene Grenzwert.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en el pr\u00F3logo del documento.
+ InvalidCharInXMLDecl = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en la declaraci\u00F3n XML.
+ # 2.4 Character Data and Markup
+- CDEndInContent = La secuencia de caracteres \"]]>\" no debe aparecer en el contenido, a menos que se utilice para marcar el final de una secci\u00F3n CDATA.
++ CDEndInContent = La secuencia de caracteres "]]>" no debe aparecer en el contenido, a menos que se utilice para marcar el final de una secci\u00F3n CDATA.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = La secci\u00F3n CDATA debe finalizar en \"]]>\".
++ CDSectUnterminated = La secci\u00F3n CDATA debe finalizar en "]]>".
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = La declaraci\u00F3n XML s\u00F3lo puede aparecer al principio del documento.
+- EqRequiredInXMLDecl = El car\u00E1cter '' = '' debe aparecer despu\u00E9s de \"{0}\" en la declaraci\u00F3n XML.
+- QuoteRequiredInXMLDecl = El valor despu\u00E9s de \"{0}\" en la declaraci\u00F3n XML debe ser una cadena con comillas.
+- XMLDeclUnterminated = La declaraci\u00F3n XML debe finalizar en \"?>\".
++ EqRequiredInXMLDecl = El car\u00E1cter '' = '' debe aparecer despu\u00E9s de "{0}" en la declaraci\u00F3n XML.
++ QuoteRequiredInXMLDecl = El valor despu\u00E9s de "{0}" en la declaraci\u00F3n XML debe ser una cadena con comillas.
++ XMLDeclUnterminated = La declaraci\u00F3n XML debe finalizar en "?>".
+ VersionInfoRequired = La versi\u00F3n es necesaria en la declaraci\u00F3n XML.
+ SpaceRequiredBeforeVersionInXMLDecl = Es necesario un espacio en blanco antes del pseudo atributo version en la declaraci\u00F3n XML.
+ SpaceRequiredBeforeEncodingInXMLDecl = Es necesario un espacio en blanco antes del pseudo atributo encoding en la declaraci\u00F3n XML.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=La referencia no est\u00E1 permitida en la secci\u00F3n final.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = El valor de declaraci\u00F3n del documento aut\u00F3nomo debe ser \"yes\" o \"no\", pero nunca \"{0}\".
++ SDDeclInvalid = El valor de declaraci\u00F3n del documento aut\u00F3nomo debe ser "yes" o "no", pero nunca "{0}".
++ SDDeclNameInvalid = Puede que el nombre aut\u00F3nomo de la declaraci\u00F3n XML est\u00E9 mal escrito.
+ # 2.12 Language Identification
+- XMLLangInvalid = El valor del atributo xml:lang \"{0}\" es un identificador de idioma no v\u00E1lido.
++ XMLLangInvalid = El valor del atributo xml:lang "{0}" es un identificador de idioma no v\u00E1lido.
+ # 3. Logical Structures
+- ETagRequired = El tipo de elemento \"{0}\" debe finalizar por la etiqueta final coincidente \"{0}>\".
++ ETagRequired = El tipo de elemento "{0}" debe finalizar por la etiqueta final coincidente "{0}>".
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = El tipo de elemento \"{0}\" debe ir seguido de una de estas especificaciones de atributo: \">\" o \"/>\".
+- EqRequiredInAttribute = El nombre de atributo \"{1}\" asociado a un tipo de elemento \"{0}\" debe ir seguido del car\u00E1cter '' = ''.
+- OpenQuoteExpected = Las comillas de apertura se deben utilizar para el atributo \"{1}\" asociado a un tipo de elemento \"{0}\".
+- CloseQuoteExpected = Las comillas de cierre se deben utilizar para el atributo \"{1}\" asociado a un tipo de elemento \"{0}\".
+- AttributeNotUnique = El atributo \"{1}\" ya se ha especificado para el elemento \"{0}\".
+- AttributeNSNotUnique = El atributo \"{1}\" enlazado al espacio de nombres \"{2}\" ya se ha especificado para el elemento \"{0}\".
+- ETagUnterminated = La etiqueta final para el tipo de elemento \"{0}\" debe finalizar en un delimitador ''>''.
++ ElementUnterminated = El tipo de elemento "{0}" debe ir seguido de una de estas especificaciones de atributo: ">" o "/>".
++ EqRequiredInAttribute = El nombre de atributo "{1}" asociado a un tipo de elemento "{0}" debe ir seguido del car\u00E1cter '' = ''.
++ OpenQuoteExpected = Las comillas de apertura se deben utilizar para el atributo "{1}" asociado a un tipo de elemento "{0}".
++ CloseQuoteExpected = Las comillas de cierre se deben utilizar para el atributo "{1}" asociado a un tipo de elemento "{0}".
++ AttributeNotUnique = El atributo "{1}" ya se ha especificado para el elemento "{0}".
++ AttributeNSNotUnique = El atributo "{1}" enlazado al espacio de nombres "{2}" ya se ha especificado para el elemento "{0}".
++ ETagUnterminated = La etiqueta final para el tipo de elemento "{0}" debe finalizar en un delimitador ''>''.
+ MarkupNotRecognizedInContent = El contenido de los elementos debe constar de marcadores o datos de car\u00E1cter con un formato correcto.
+ DoctypeIllegalInContent = No se permite un DOCTYPE en el contenido.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = La referencia debe finalizar con un delimitador ';'.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = La referencia debe incluirse totalmente en la misma entidad analizada.
+- ElementEntityMismatch = El elemento \"{0}\" debe empezar y finalizar en la misma entidad.
++ ElementEntityMismatch = El elemento "{0}" debe empezar y finalizar en la misma entidad.
+ MarkupEntityMismatch=Las estructuras del documento XML deben empezar y finalizar en la misma entidad.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{2}) no v\u00E1lido en el valor del atributo \"{1}\" y el elemento es \"{0}\".
++ InvalidCharInAttValue = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{2}) no v\u00E1lido en el valor del atributo "{1}" y el elemento es "{0}".
+ InvalidCharInComment = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en el comentario.
+ InvalidCharInPI = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en la instrucci\u00F3n de procesamiento.
+ InvalidCharInInternalSubset = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en el subconjunto interno del DTD.
+ InvalidCharInTextDecl = Se ha encontrado un car\u00E1cter XML (Unicode: 0x{0}) no v\u00E1lido en la declaraci\u00F3n de texto.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = El valor del atributo \"{1}\" debe empezar por un car\u00E1cter de comillas dobles o simples.
+- LessthanInAttValue = El valor del atributo \"{1}\" asociado a un tipo de elemento \"{0}\" no debe contener el car\u00E1cter ''<''.
+- AttributeValueUnterminated = El valor para el atributo \"{1}\" debe finalizar en un car\u00E1cter de comillas coincidentes.
++ QuoteRequiredInAttValue = El valor del atributo "{1}" debe empezar por un car\u00E1cter de comillas dobles o simples.
++ LessthanInAttValue = El valor del atributo "{1}" asociado a un tipo de elemento "{0}" no debe contener el car\u00E1cter ''<''.
++ AttributeValueUnterminated = El valor para el atributo "{1}" debe finalizar en un car\u00E1cter de comillas coincidentes.
+ # 2.5 Comments
+- InvalidCommentStart = El comentario debe empezar por \"\".
++ InvalidCommentStart = El comentario debe empezar por "".
+ COMMENT_NOT_IN_ONE_ENTITY = El comentario no est\u00E1 incluido en la misma entidad.
+ # 2.6 Processing Instructions
+ PITargetRequired = La instrucci\u00F3n de procesamiento debe empezar por el nombre del destino.
+ SpaceRequiredInPI = Es necesario un espacio en blanco entre el destino de la instrucci\u00F3n de procesamiento y los datos.
+- PIUnterminated = La instrucci\u00F3n de procesamiento debe finalizar en \"?>\".
+- ReservedPITarget = El destino de la instrucci\u00F3n de procesamiento que coincide con \"[xX][mM][lL]\" no est\u00E1 permitido.
++ PIUnterminated = La instrucci\u00F3n de procesamiento debe finalizar en "?>".
++ ReservedPITarget = El destino de la instrucci\u00F3n de procesamiento que coincide con "[xX][mM][lL]" no est\u00E1 permitido.
+ PI_NOT_IN_ONE_ENTITY = La instrucci\u00F3n de procesamiento no est\u00E1 incluida en la misma entidad.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Versi\u00F3n no v\u00E1lida \"{0}\".
+- VersionNotSupported = La versi\u00F3n XML \"{0}\" no est\u00E1 soportada, s\u00F3lo la versi\u00F3n XML 1.0 est\u00E1 soportada.
+- VersionNotSupported11 = La versi\u00F3n XML \"{0}\" no est\u00E1 soportada, s\u00F3lo las versiones XML 1.0 y XML 1.1 est\u00E1n soportadas.
++ VersionInfoInvalid = Versi\u00F3n no v\u00E1lida "{0}".
++ VersionNotSupported = La versi\u00F3n XML "{0}" no est\u00E1 soportada, s\u00F3lo la versi\u00F3n XML 1.0 est\u00E1 soportada.
++ VersionNotSupported11 = La versi\u00F3n XML "{0}" no est\u00E1 soportada, s\u00F3lo las versiones XML 1.0 y XML 1.1 est\u00E1n soportadas.
+ VersionMismatch= Una entidad no puede incluir otra entidad de una versi\u00F3n posterior.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Una representaci\u00F3n decimal debe aparecer inmediatamente despu\u00E9s de \"\" en una referencia de caracteres.
+- HexdigitRequiredInCharRef = Una representaci\u00F3n hexadecimal debe aparecer inmediatamente despu\u00E9s de \"\" en una referencia de caracteres.
++ DigitRequiredInCharRef = Una representaci\u00F3n decimal debe aparecer inmediatamente despu\u00E9s de "" en una referencia de caracteres.
++ HexdigitRequiredInCharRef = Una representaci\u00F3n hexadecimal debe aparecer inmediatamente despu\u00E9s de "" en una referencia de caracteres.
+ SemicolonRequiredInCharRef = La referencia de caracteres debe finalizar en el delimitador ';'.
+- InvalidCharRef = La referencia de caracteres \"{0}\" es un car\u00E1cter XML no v\u00E1lido.
++ InvalidCharRef = La referencia de caracteres "{0}" es un car\u00E1cter XML no v\u00E1lido.
+ NameRequiredInReference = El nombre de la entidad debe aparecer inmediatamente despu\u00E9s de '&' en la referencia de entidades.
+- SemicolonRequiredInReference = La referencia a la entidad \"{0}\" debe finalizar en el delimitador '';''.
++ SemicolonRequiredInReference = La referencia a la entidad "{0}" debe finalizar en el delimitador '';''.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = La declaraci\u00F3n de texto s\u00F3lo puede aparecer al principio de la entidad analizada externa.
+- EqRequiredInTextDecl = El car\u00E1cter '' = '' debe aparecer despu\u00E9s de \"{0}\" en la declaraci\u00F3n de texto.
+- QuoteRequiredInTextDecl = El valor despu\u00E9s de \"{0}\" en la declaraci\u00F3n de texto debe ser una cadena con comillas.
+- CloseQuoteMissingInTextDecl = Faltan las comillas de cierre en el valor despu\u00E9s de \"{0}\" en la declaraci\u00F3n de texto.
++ EqRequiredInTextDecl = El car\u00E1cter '' = '' debe aparecer despu\u00E9s de "{0}" en la declaraci\u00F3n de texto.
++ QuoteRequiredInTextDecl = El valor despu\u00E9s de "{0}" en la declaraci\u00F3n de texto debe ser una cadena con comillas.
++ CloseQuoteMissingInTextDecl = Faltan las comillas de cierre en el valor despu\u00E9s de "{0}" en la declaraci\u00F3n de texto.
+ SpaceRequiredBeforeVersionInTextDecl = Es necesario un espacio en blanco antes del pseudo atributo version en la declaraci\u00F3n de texto.
+ SpaceRequiredBeforeEncodingInTextDecl = Es necesario un espacio en blanco antes del pseudo atributo encoding en la declaraci\u00F3n de texto.
+- TextDeclUnterminated = La declaraci\u00F3n de texto debe finalizar en \"?>\".
++ TextDeclUnterminated = La declaraci\u00F3n de texto debe finalizar en "?>".
+ EncodingDeclRequired = La declaraci\u00F3n de codificaci\u00F3n es necesaria en la declaraci\u00F3n de texto.
+ NoMorePseudoAttributes = No se permiten m\u00E1s pseudo atributos.
+ MorePseudoAttributes = Se esperan m\u00E1s pseudo atributos.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = El comentario debe incluirse totalmente en la misma entidad analizada.
+ PINotInOneEntity = La instrucci\u00F3n de procesamiento debe incluirse totalmente en la misma entidad analizada.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Nombre de codificaci\u00F3n no v\u00E1lido \"{0}\".
+- EncodingByteOrderUnsupported = El orden de bytes proporcionado para la codificaci\u00F3n \"{0}\" no est\u00E1 soportado.
++ EncodingDeclInvalid = Nombre de codificaci\u00F3n no v\u00E1lido "{0}".
++ EncodingByteOrderUnsupported = El orden de bytes proporcionado para la codificaci\u00F3n "{0}" no est\u00E1 soportado.
+ InvalidByte = Byte no v\u00E1lido {0} de la secuencia UTF-8 de {1} bytes
+ ExpectedByte = Byte esperado {0} de la secuencia UTF-8 de {1} bytes.
+ InvalidHighSurrogate = Los bits de sustituci\u00F3n superior en la secuencia UTF-8 no deben exceder 0x10 pero se han encontrado 0x{0}.
+- OperationNotSupported = La operaci\u00F3n \"{0}\" no est\u00E1 soportada por el lector {1}.
+- InvalidASCII = El byte \"{0}\"no es un miembro del juego de caracteres ASCII (7 bits).
++ OperationNotSupported = La operaci\u00F3n "{0}" no est\u00E1 soportada por el lector {1}.
++ InvalidASCII = El byte "{0}"no es un miembro del juego de caracteres ASCII (7 bits).
+ CharConversionFailure = Una entidad con una codificaci\u00F3n determinada no debe contener secuencias no permitidas en dicha codificaci\u00F3n.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = El car\u00E1cter (Unicode: 0x{0}) no est\u00E1 permitido en el identificador p\u00FAblico.
+ SpaceRequiredBetweenPublicAndSystem = Son necesarios espacios en blanco entre publicId y systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Es necesario un espacio en blanco despu\u00E9s de \"''.
+- PEReferenceWithinMarkup = La referencia de entidad del par\u00E1metro \"%{0};\" no puede producirse en el marcador en el subconjunto interno del DTD.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Es necesario un espacio en blanco despu\u00E9s de "''.
++ PEReferenceWithinMarkup = La referencia de entidad del par\u00E1metro "%{0};" no puede producirse en el marcador en el subconjunto interno del DTD.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = Las declaraciones de marcador que se incluyen o a las que apunta la declaraci\u00F3n de tipo de documento deben tener el formato correcto.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = La declaraci\u00F3n de atributo para \"xml:space\" debe ofrecerse como un tipo enumerado cuyos \u00FAnicos valores posibles son \"default\" y \"preserve\".
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = La declaraci\u00F3n de atributo para "xml:space" debe ofrecerse como un tipo enumerado cuyos \u00FAnicos valores posibles son "default" y "preserve".
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Es necesario un espacio en blanco despu\u00E9s de \"''.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Es necesario un espacio en blanco despu\u00E9s del tipo de elemento "{0}" en la declaraci\u00F3n de tipo de elemento.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = Es necesaria la restricci\u00F3n despu\u00E9s del tipo de elemento "{0}" en la declaraci\u00F3n de tipo de elemento.
++ ElementDeclUnterminated = La declaraci\u00F3n para el tipo de elemento "{0}" debe finalizar en ''>''.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un car\u00E1cter ''('' o un tipo de elemento es necesario en la declaraci\u00F3n de tipo de elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un car\u00E1cter '')'' es necesario en la declaraci\u00F3n de tipo de elemento \"{0}\".
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un car\u00E1cter ''('' o un tipo de elemento es necesario en la declaraci\u00F3n de tipo de elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un car\u00E1cter '')'' es necesario en la declaraci\u00F3n de tipo de elemento "{0}".
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un tipo de elemento es necesario en la declaraci\u00F3n de tipo de elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un car\u00E1cter '')'' es necesario en la declaraci\u00F3n de tipo de elemento \"{0}\".
+- MixedContentUnterminated = El modelo de contenido mixto \"{0}\" debe finalizar en \")*\" cuando los tipos de elementos secundarios est\u00E1n restringidos.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un tipo de elemento es necesario en la declaraci\u00F3n de tipo de elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un car\u00E1cter '')'' es necesario en la declaraci\u00F3n de tipo de elemento "{0}".
++ MixedContentUnterminated = El modelo de contenido mixto "{0}" debe finalizar en ")*" cuando los tipos de elementos secundarios est\u00E1n restringidos.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Es necesario un espacio en blanco despu\u00E9s de \"\".
+- IgnoreSectUnterminated = La secci\u00F3n condicional excluida debe finalizar en \"]]>\".
++ IncludeSectUnterminated = La secci\u00F3n condicional incluida debe finalizar en "]]>".
++ IgnoreSectUnterminated = La secci\u00F3n condicional excluida debe finalizar en "]]>".
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = El nombre de la entidad debe aparecer inmediatamente despu\u00E9s de '%' en la referencia de entidad de par\u00E1metro.
+- SemicolonRequiredInPEReference = La referencia de entidad de par\u00E1metro \"%{0};\" debe finalizar en el delimitador '';''.
++ SemicolonRequiredInPEReference = La referencia de entidad de par\u00E1metro "%{0};" debe finalizar en el delimitador '';''.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Es necesario un espacio en blanco despu\u00E9s de \"''.
+- MSG_DUPLICATE_ENTITY_DEFINITION = La entidad \"{0}\" se ha declarado m\u00E1s de una vez.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Es necesario un espacio en blanco entre el nombre de entidad "{0}" y la definici\u00F3n en la declaraci\u00F3n de entidad.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Es necesario un espacio en blanco entre "NDATA" y el nombre de notaci\u00F3n en la declaraci\u00F3n para la entidad "{0}".
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Es necesario un espacio en blanco antes de "NDATA" en la declaraci\u00F3n para la entidad "{0}".
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = El nombre de notaci\u00F3n es necesario despu\u00E9s de "NDATA" en la declaraci\u00F3n para la entidad "{0}".
++ EntityDeclUnterminated = La declaraci\u00F3n para la entidad "{0}" debe finalizar en ''>''.
++ MSG_DUPLICATE_ENTITY_DEFINITION = La entidad "{0}" se ha declarado m\u00E1s de una vez.
+ # 4.2.2 External Entities
+- ExternalIDRequired = La declaraci\u00F3n de entidad externa debe empezar por \"SYSTEM\" o \"PUBLIC\".
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Es necesario un espacio en blanco entre \"PUBLIC\" y el identificador p\u00FAblico.
++ ExternalIDRequired = La declaraci\u00F3n de entidad externa debe empezar por "SYSTEM" o "PUBLIC".
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Es necesario un espacio en blanco entre "PUBLIC" y el identificador p\u00FAblico.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Es necesario un espacio en blanco entre el identificador p\u00FAblico y el identificador del sistema.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Es necesario un espacio en blanco entre \"SYSTEM\" y el identificador del sistema.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = No se debe especificar el identificador del fragmento como parte del identificador del sistema \"{0}\".
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Es necesario un espacio en blanco entre "SYSTEM" y el identificador del sistema.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = No se debe especificar el identificador del fragmento como parte del identificador del sistema "{0}".
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Es necesario un espacio en blanco despu\u00E9s de \"''.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Es necesario un espacio en blanco despu\u00E9s del nombre de la notaci\u00F3n "{0}" en la declaraci\u00F3n de notaci\u00F3n.
++ ExternalIDorPublicIDRequired = La declaraci\u00F3n para la notaci\u00F3n "{0}" debe incluir un identificador p\u00FAblico o del sistema.
++ NotationDeclUnterminated = La declaraci\u00F3n para la notaci\u00F3n "{0}" debe finalizar en ''>''.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = El tipo de elemento \"{1}\" ya se especific\u00F3 en el modelo de contenido de la declaraci\u00F3n de elementos \"{0}\".
+- ENTITIESInvalid = El valor de atributo \"{1}\" del tipo ENTITIES debe ser el nombre de una o m\u00E1s entidades no analizadas.
+- ENTITYInvalid = El valor de atributo \"{1}\" del tipo ENTITY debe ser el nombre de una entidad no analizada.
+- IDDefaultTypeInvalid = El atributo de identificador \"{0}\" debe tener un valor por defecto declarado de \"#IMPLIED\" o \"#REQUIRED\".
+- IDInvalid = El valor de atributo \"{0}\" del tipo ID debe ser un nombre.
+- IDInvalidWithNamespaces = El valor de atributo \"{0}\" del tipo ID debe ser un NCName cuando los espacios de nombres est\u00E9n activados.
+- IDNotUnique = El valor de atributo \"{0}\" del tipo ID debe ser \u00FAnico en el documento.
+- IDREFInvalid = El valor de atributo \"{0}\" del tipo IDREF debe ser un nombre.
+- IDREFInvalidWithNamespaces = El valor de atributo \"{0}\" del tipo IDREF debe ser un NCName cuando los espacios de nombres est\u00E9n activados.
+- IDREFSInvalid = El valor de atributo \"{0}\" del tipo IDREFS debe ser uno o m\u00E1s nombres.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = El texto de sustituci\u00F3n de la entidad del par\u00E1metro \"{0}\" debe incluir declaraciones correctamente anidadas cuando la referencia de entidad se utiliza como una declaraci\u00F3n completa.
+- ImproperDeclarationNesting = El texto de sustituci\u00F3n de la entidad del par\u00E1metro \"{0}\" debe incluir declaraciones correctamente anidadas.
+- ImproperGroupNesting = El texto de sustituci\u00F3n de la entidad del par\u00E1metro \"{0}\" debe incluir pares de par\u00E9ntesis correctamente anidados.
+- INVALID_PE_IN_CONDITIONAL = El texto de sustituci\u00F3n de la entidad del par\u00E1metro \"{0}\" debe incluir la secci\u00F3n condicional completa o s\u00F3lo INCLUDE o IGNORE.
+- MSG_ATTRIBUTE_NOT_DECLARED = El atributo \"{1}\" se debe haber declarado para el tipo de elemento \"{0}\".
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = El atributo \"{0}\" con el valor \"{1}\" debe tener un valor de la lista \"{2}\".
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = El valor \"{1}\" del atributo \"{0}\" no se debe cambiar mediante la normalizaci\u00F3n (a \"{2}\") en un documento aut\u00F3nomo.
+- MSG_CONTENT_INCOMPLETE = El contenido del tipo de elemento \"{0}\" es incompleto, debe coincidir con \"{1}\".
+- MSG_CONTENT_INVALID = El contenido del tipo de elemento \"{0}\" debe coincidir con \"{1}\".
+- MSG_CONTENT_INVALID_SPECIFIED = El contenido del tipo de elemento \"{0}\" debe coincidir con \"{1}\". Los secundarios del tipo \"{2}\" no est\u00E1n permitidos.
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = El atributo \"{1}\" para el tipo de elemento \"{0}\" tiene un valor por defecto y debe especificarse en un documento aut\u00F3nomo.
+- MSG_DUPLICATE_ATTDEF = El atributo \"{1}\" ya se ha declarado para el tipo de elemento \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = El tipo de elemento \"{0}\" no debe declararse m\u00E1s de una vez.
+- MSG_ELEMENT_NOT_DECLARED = El tipo de elemento \"{0}\" debe declararse.
++ DuplicateTypeInMixedContent = El tipo de elemento "{1}" ya se especific\u00F3 en el modelo de contenido de la declaraci\u00F3n de elementos "{0}".
++ ENTITIESInvalid = El valor de atributo "{1}" del tipo ENTITIES debe ser el nombre de una o m\u00E1s entidades no analizadas.
++ ENTITYInvalid = El valor de atributo "{1}" del tipo ENTITY debe ser el nombre de una entidad no analizada.
++ IDDefaultTypeInvalid = El atributo de identificador "{0}" debe tener un valor por defecto declarado de "#IMPLIED" o "#REQUIRED".
++ IDInvalid = El valor de atributo "{0}" del tipo ID debe ser un nombre.
++ IDInvalidWithNamespaces = El valor de atributo "{0}" del tipo ID debe ser un NCName cuando los espacios de nombres est\u00E9n activados.
++ IDNotUnique = El valor de atributo "{0}" del tipo ID debe ser \u00FAnico en el documento.
++ IDREFInvalid = El valor de atributo "{0}" del tipo IDREF debe ser un nombre.
++ IDREFInvalidWithNamespaces = El valor de atributo "{0}" del tipo IDREF debe ser un NCName cuando los espacios de nombres est\u00E9n activados.
++ IDREFSInvalid = El valor de atributo "{0}" del tipo IDREFS debe ser uno o m\u00E1s nombres.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = El texto de sustituci\u00F3n de la entidad del par\u00E1metro "{0}" debe incluir declaraciones correctamente anidadas cuando la referencia de entidad se utiliza como una declaraci\u00F3n completa.
++ ImproperDeclarationNesting = El texto de sustituci\u00F3n de la entidad del par\u00E1metro "{0}" debe incluir declaraciones correctamente anidadas.
++ ImproperGroupNesting = El texto de sustituci\u00F3n de la entidad del par\u00E1metro "{0}" debe incluir pares de par\u00E9ntesis correctamente anidados.
++ INVALID_PE_IN_CONDITIONAL = El texto de sustituci\u00F3n de la entidad del par\u00E1metro "{0}" debe incluir la secci\u00F3n condicional completa o s\u00F3lo INCLUDE o IGNORE.
++ MSG_ATTRIBUTE_NOT_DECLARED = El atributo "{1}" se debe haber declarado para el tipo de elemento "{0}".
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = El atributo "{0}" con el valor "{1}" debe tener un valor de la lista "{2}".
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = El valor "{1}" del atributo "{0}" no se debe cambiar mediante la normalizaci\u00F3n (a "{2}") en un documento aut\u00F3nomo.
++ MSG_CONTENT_INCOMPLETE = El contenido del tipo de elemento "{0}" es incompleto, debe coincidir con "{1}".
++ MSG_CONTENT_INVALID = El contenido del tipo de elemento "{0}" debe coincidir con "{1}".
++ MSG_CONTENT_INVALID_SPECIFIED = El contenido del tipo de elemento "{0}" debe coincidir con "{1}". Los secundarios del tipo "{2}" no est\u00E1n permitidos.
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = El atributo "{1}" para el tipo de elemento "{0}" tiene un valor por defecto y debe especificarse en un documento aut\u00F3nomo.
++ MSG_DUPLICATE_ATTDEF = El atributo "{1}" ya se ha declarado para el tipo de elemento "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = El tipo de elemento "{0}" no debe declararse m\u00E1s de una vez.
++ MSG_ELEMENT_NOT_DECLARED = El tipo de elemento "{0}" debe declararse.
+ MSG_GRAMMAR_NOT_FOUND = El documento no es v\u00E1lido: no se ha encontrado la gram\u00E1tica.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Un elemento con el identificador \"{0}\" debe aparecer en el documento.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = La referencia a la entidad externa \"{0}\" no est\u00E1 permitida en un documento aut\u00F3nomo.
+- MSG_FIXED_ATTVALUE_INVALID = El atributo \"{1}\" con el valor \"{2}\" debe tener un valor de \"{3}\".
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = El tipo de elemento \"{0}\" ya tiene un atributo \"{1}\" del tipo ID, un segundo atributo \"{2}\" del tipo ID no est\u00E1 permitido.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = El tipo de elemento \"{0}\" ya tiene un atributo \"{1}\" del tipo NOTATION, un segundo atributo \"{2}\" del tipo NOTATION no est\u00E1 permitido.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notaci\u00F3n \"{1}\" debe declararse cuando se hace referencia a la misma en la lista de tipos de notaci\u00F3n para el atributo \"{0}\".
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notaci\u00F3n \"{1}\" debe declararse cuando se hace referencia a la misma en la declaraci\u00F3n de entidad no analizada para \"{0}\".
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = La referencia a la entidad \"{0}\" declarada en una entidad analizada externa no est\u00E1 permitida en un documento aut\u00F3nomo.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = El atributo \"{1}\" es necesario y debe especificarse para el tipo de elemento \"{0}\".
++ MSG_ELEMENT_WITH_ID_REQUIRED = Un elemento con el identificador "{0}" debe aparecer en el documento.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = La referencia a la entidad externa "{0}" no est\u00E1 permitida en un documento aut\u00F3nomo.
++ MSG_FIXED_ATTVALUE_INVALID = El atributo "{1}" con el valor "{2}" debe tener un valor de "{3}".
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = El tipo de elemento "{0}" ya tiene un atributo "{1}" del tipo ID, un segundo atributo "{2}" del tipo ID no est\u00E1 permitido.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = El tipo de elemento "{0}" ya tiene un atributo "{1}" del tipo NOTATION, un segundo atributo "{2}" del tipo NOTATION no est\u00E1 permitido.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notaci\u00F3n "{1}" debe declararse cuando se hace referencia a la misma en la lista de tipos de notaci\u00F3n para el atributo "{0}".
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notaci\u00F3n "{1}" debe declararse cuando se hace referencia a la misma en la declaraci\u00F3n de entidad no analizada para "{0}".
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = La referencia a la entidad "{0}" declarada en una entidad analizada externa no est\u00E1 permitida en un documento aut\u00F3nomo.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = El atributo "{1}" es necesario y debe especificarse para el tipo de elemento "{0}".
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = No debe incluirse un espacio en blanco entre los elementos declarados en una entidad analizada externa con el contenido del elemento en un documento aut\u00F3nomo.
+- NMTOKENInvalid = El valor de atributo \"{0}\" del tipo NMTOKEN debe ser un elemento de nombre.
+- NMTOKENSInvalid = El valor de atributo \"{0}\" del tipo NMTOKENS debe ser uno o m\u00E1s elementos de nombre.
+- NoNotationOnEmptyElement = El tipo de elemento \"{0}\" que se declar\u00F3 como EMPTY no puede declarar el atributo \"{1}\" del tipo NOTATION.
+- RootElementTypeMustMatchDoctypedecl = El elemento ra\u00EDz del documento \"{1}\", debe coincidir con la ra\u00EDz DOCTYPE \"{0}\".
+- UndeclaredElementInContentSpec = El modelo de contenido del elemento \"{0}\" hace referencia al elemento no declarado \"{1}\".
+- UniqueNotationName = La declaraci\u00F3n de la notaci\u00F3n \"{0}\" no es \u00FAnica. Un nombre determinado no debe declararse en m\u00E1s de una declaraci\u00F3n de notaci\u00F3n.
++ NMTOKENInvalid = El valor de atributo "{0}" del tipo NMTOKEN debe ser un token de nombre.
++ NMTOKENSInvalid = El valor de atributo "{0}" del tipo NMTOKENS debe ser uno o m\u00E1s tokens de nombre.
++ NoNotationOnEmptyElement = El tipo de elemento "{0}" que se declar\u00F3 como EMPTY no puede declarar el atributo "{1}" del tipo NOTATION.
++ RootElementTypeMustMatchDoctypedecl = El elemento ra\u00EDz del documento "{1}", debe coincidir con la ra\u00EDz DOCTYPE "{0}".
++ UndeclaredElementInContentSpec = El modelo de contenido del elemento "{0}" hace referencia al elemento no declarado "{1}".
++ UniqueNotationName = La declaraci\u00F3n de la notaci\u00F3n "{0}" no es \u00FAnica. Un nombre determinado no debe declararse en m\u00E1s de una declaraci\u00F3n de notaci\u00F3n.
+ ENTITYFailedInitializeGrammar = Fallo del validador ENTITYDatatype. Es necesario llamar al m\u00E9todo de inicializaci\u00F3n con una referencia de gram\u00E1tica v\u00E1lida. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\"no est\u00E1 sin analizar.
+- ENTITYNotValid = ENTITY \"{0}\" no es v\u00E1lida.
++ ENTITYNotUnparsed = ENTITY "{0}"no est\u00E1 sin analizar.
++ ENTITYNotValid = ENTITY "{0}" no es v\u00E1lida.
+ EmptyList = El valor de tipo ENTITIES, IDREFS y NMTOKENS no puede ser una lista vac\u00EDa.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = La referencia de entidad externa \"&{0};\" no est\u00E1 permitida en un valor de atributo.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = La referencia de entidad externa "&{0};" no est\u00E1 permitida en un valor de atributo.
++ AccessExternalDTD = DTD externa: fallo al leer DTD externa ''{0}'' porque el acceso a ''{1}'' no est\u00E1 permitido debido a una restricci\u00F3n que ha definido la propiedad accessExternalDTD.
++ AccessExternalEntity = Entidad externa: fallo al leer el documento externo ''{0}'' porque el acceso a ''{1}'' no est\u00E1 permitido debido a una restricci\u00F3n que ha definido la propiedad accessExternalDTD.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = Se hizo referencia a la entidad \"{0}\", pero no se declar\u00F3.
+- ReferenceToUnparsedEntity = La referencia de entidad no analizada \"&{0};\" no est\u00E1 permitida.
+- RecursiveReference = Referencia de entidad recursiva \"{0}\". (Ruta de acceso de referencia: {1}),
+- RecursiveGeneralReference = Referencia de entidad general recursiva \"&{0};\". (Ruta de acceso de referencia: {1}),
+- RecursivePEReference = Referencia de entidad de par\u00E1metro recursiva \"%{0};\". (Ruta de acceso de referencia: {1}),
++ EntityNotDeclared = Se hizo referencia a la entidad "{0}", pero no se declar\u00F3.
++ ReferenceToUnparsedEntity = La referencia de entidad no analizada "&{0};" no est\u00E1 permitida.
++ RecursiveReference = Referencia de entidad recursiva "{0}". (Ruta de acceso de referencia: {1}),
++ RecursiveGeneralReference = Referencia de entidad general recursiva "&{0};". (Ruta de acceso de referencia: {1}),
++ RecursivePEReference = Referencia de entidad de par\u00E1metro recursiva "%{0};". (Ruta de acceso de referencia: {1}),
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = La codificaci\u00F3n \"{0}\" no est\u00E1 soportada.
++ EncodingNotSupported = La codificaci\u00F3n "{0}" no est\u00E1 soportada.
+ EncodingRequired = Una entidad analizada no codificada en UTF-8 o UTF-16 debe contener una declaraci\u00F3n de codificaci\u00F3n.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = El elemento o el atributo no coinciden con la producci\u00F3n del QName: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = El elemento \"{0}\" no puede tener \"xmlns\" como prefijo.
+- ElementPrefixUnbound = El prefijo \"{0}\" para el elemento \"{1}\" no est\u00E1 enlazado.
+- AttributePrefixUnbound = El prefijo \"{2}\" para el atributo \"{1}\" asociado a un tipo de elemento \"{0}\" no est\u00E1 enlazado.
+- EmptyPrefixedAttName = El valor del atributo \"{0}\" no es v\u00E1lido. Los enlaces de espacio de nombres utilizados de prefijo no pueden estar vac\u00EDos.
+- PrefixDeclared = El prefijo de espacio de nombres \"{0}\" no se ha declarado.
++ ElementXMLNSPrefix = El elemento "{0}" no puede tener "xmlns" como prefijo.
++ ElementPrefixUnbound = El prefijo "{0}" para el elemento "{1}" no est\u00E1 enlazado.
++ AttributePrefixUnbound = El prefijo "{2}" para el atributo "{1}" asociado a un tipo de elemento "{0}" no est\u00E1 enlazado.
++ EmptyPrefixedAttName = El valor del atributo "{0}" no es v\u00E1lido. Los enlaces de espacio de nombres utilizados de prefijo no pueden estar vac\u00EDos.
++ PrefixDeclared = El prefijo de espacio de nombres "{0}" no se ha declarado.
+ CantBindXMLNS = El prefijo "xmlns" no puede enlazarse a ning\u00FAn espacio de nombres expl\u00EDcitamente; tampoco puede enlazarse el espacio de nombres para "xmlns" a cualquier prefijo expl\u00EDcitamente.
+ CantBindXML = El prefijo "xml" no puede enlazarse a ning\u00FAn espacio de nombres que no sea el habitual; tampoco puede enlazarse el espacio de nombres para "xml" a cualquier prefijo que no sea "xml".
+- MSG_ATT_DEFAULT_INVALID = El valor por defecto \"{1}\" del atributo \"{0}\" no es legal para las restricciones l\u00E9xicas de este tipo de atributo.
++ MSG_ATT_DEFAULT_INVALID = El valor por defecto "{1}" del atributo "{0}" no es legal para las restricciones l\u00E9xicas de este tipo de atributo.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=El analizador ha encontrado m\u00E1s de \"{0}\"ampliaciones de entidad en este documento; \u00E9ste es el l\u00EDmite impuesto por la aplicaci\u00F3n.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: el analizador ha encontrado m\u00E1s de "{0}"ampliaciones de entidad en este documento; \u00E9ste es el l\u00EDmite impuesto por el JDK.
++ ElementAttributeLimit=JAXP00010002: el elemento "{0}" tiene m\u00E1s de "{1}" atributos, "{1}" es el l\u00EDmite impuesto por el JDK.
++ MaxEntitySizeLimit=JAXP00010003: la longitud de la entidad "{0}" es "{1}", que excede el l\u00EDmite de "{2}" que ha definido "{3}".
++ TotalEntitySizeLimit=JAXP00010004: el tama\u00F1o acumulado "{0}" de las entidades ha excedido el l\u00EDmite de "{1}" que ha definido "{2}".
++ MaxXMLNameLimit=JAXP00010005: el nombre "{0}" ha excedido el l\u00EDmite de "{1}" que ha definido "{2}".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= El elemento \"{0}\" tiene m\u00E1s de \"{1}\" atributos, \"{1}\" es el l\u00EDmite impuesto por la aplicaci\u00F3n.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans le prologue du document.
+ InvalidCharInXMLDecl = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans la d\u00E9claration XML.
+ # 2.4 Character Data and Markup
+- CDEndInContent = La s\u00E9quence de caract\u00E8res \"]]>\" ne doit pas figurer dans le contenu sauf si elle est utilis\u00E9e pour baliser la fin d'une section CDATA.
++ CDEndInContent = La s\u00E9quence de caract\u00E8res "]]>" ne doit pas figurer dans le contenu sauf si elle est utilis\u00E9e pour baliser la fin d'une section CDATA.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = La section CDATA doit se terminer par \"]]>\".
++ CDSectUnterminated = La section CDATA doit se terminer par "]]>".
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = La d\u00E9claration XML ne peut figurer qu'au d\u00E9but du document.
+- EqRequiredInXMLDecl = Le caract\u00E8re ''='' doit suivre \"{0}\" dans la d\u00E9claration XML.
+- QuoteRequiredInXMLDecl = La valeur suivant \"{0}\" dans la d\u00E9claration XML doit \u00EAtre une cha\u00EEne entre guillemets.
+- XMLDeclUnterminated = La d\u00E9claration XML doit se terminer par \"?>\".
++ EqRequiredInXMLDecl = Le caract\u00E8re ''='' doit suivre "{0}" dans la d\u00E9claration XML.
++ QuoteRequiredInXMLDecl = La valeur suivant "{0}" dans la d\u00E9claration XML doit \u00EAtre une cha\u00EEne entre guillemets.
++ XMLDeclUnterminated = La d\u00E9claration XML doit se terminer par "?>".
+ VersionInfoRequired = La version est obligatoire dans la d\u00E9claration XML.
+ SpaceRequiredBeforeVersionInXMLDecl = Un espace est obligatoire devant le pseudo-attribut version dans la d\u00E9claration XML.
+ SpaceRequiredBeforeEncodingInXMLDecl = Un espace est obligatoire devant le pseudo-attribut encoding dans la d\u00E9claration XML.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=R\u00E9f\u00E9rence non autoris\u00E9e dans la section de fin.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = La valeur de d\u00E9claration de document autonome doit \u00EAtre \"oui\" ou \"non\", mais pas \"{0}\".
++ SDDeclInvalid = La valeur de d\u00E9claration de document autonome doit \u00EAtre "oui" ou "non", mais pas "{0}".
++ SDDeclNameInvalid = Le nom de document autonome contenu dans la d\u00E9claration XML est peut-\u00EAtre mal orthographi\u00E9.
+ # 2.12 Language Identification
+- XMLLangInvalid = La valeur d''attribut xml:lang \"{0}\" est un identificateur de langue non valide.
++ XMLLangInvalid = La valeur d''attribut xml:lang "{0}" est un identificateur de langue non valide.
+ # 3. Logical Structures
+- ETagRequired = Le type d''\u00E9l\u00E9ment \"{0}\" doit se terminer par la balise de fin correspondante \"{0}>\".
++ ETagRequired = Le type d''\u00E9l\u00E9ment "{0}" doit se terminer par la balise de fin correspondante "{0}>".
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = Le type d''\u00E9l\u00E9ment \"{0}\" doit \u00EAtre suivi des sp\u00E9cifications d''attribut, \">\" ou \"/>\".
+- EqRequiredInAttribute = Le nom d''attribut \"{1}\" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment \"{0}\" doit \u00EAtre suivi du caract\u00E8re ''=''.
+- OpenQuoteExpected = Des guillemets ouvrants sont attendus pour l''attribut \"{1}\" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment \"{0}\".
+- CloseQuoteExpected = Des guillemets fermants sont attendus pour l''attribut \"{1}\" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment \"{0}\".
+- AttributeNotUnique = L''attribut \"{1}\" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 pour l''\u00E9l\u00E9ment \"{0}\".
+- AttributeNSNotUnique = L''attribut \"{1}\" li\u00E9 \u00E0 l''espace de noms \"{2}\" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 pour l''\u00E9l\u00E9ment \"{0}\".
+- ETagUnterminated = La balise de fin pour le type d''\u00E9l\u00E9ment \"{0}\" doit se terminer par un d\u00E9limiteur ''>''.
++ ElementUnterminated = Le type d''\u00E9l\u00E9ment "{0}" doit \u00EAtre suivi des sp\u00E9cifications d''attribut, ">" ou "/>".
++ EqRequiredInAttribute = Le nom d''attribut "{1}" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment "{0}" doit \u00EAtre suivi du caract\u00E8re ''=''.
++ OpenQuoteExpected = Des guillemets ouvrants sont attendus pour l''attribut "{1}" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment "{0}".
++ CloseQuoteExpected = Des guillemets fermants sont attendus pour l''attribut "{1}" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment "{0}".
++ AttributeNotUnique = L''attribut "{1}" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 pour l''\u00E9l\u00E9ment "{0}".
++ AttributeNSNotUnique = L''attribut "{1}" li\u00E9 \u00E0 l''espace de noms "{2}" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 pour l''\u00E9l\u00E9ment "{0}".
++ ETagUnterminated = La balise de fin pour le type d''\u00E9l\u00E9ment "{0}" doit se terminer par un d\u00E9limiteur ''>''.
+ MarkupNotRecognizedInContent = Le contenu des \u00E9l\u00E9ments doit inclure un balisage ou des caract\u00E8res au format correct.
+ DoctypeIllegalInContent = Un DOCTYPE n'est pas autoris\u00E9 dans le contenu.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = La r\u00E9f\u00E9rence doit se terminer par un d\u00E9limiteur ';'.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = La r\u00E9f\u00E9rence doit \u00EAtre enti\u00E8rement incluse dans la m\u00EAme entit\u00E9 analys\u00E9e.
+- ElementEntityMismatch = L''\u00E9l\u00E9ment \"{0}\" doit commencer et se terminer dans la m\u00EAme entit\u00E9.
++ ElementEntityMismatch = L''\u00E9l\u00E9ment "{0}" doit commencer et se terminer dans la m\u00EAme entit\u00E9.
+ MarkupEntityMismatch=Les structures de document XML doivent commencer et se terminer dans la m\u00EAme entit\u00E9.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = Un caract\u00E8re XML non valide (Unicode : 0x{2}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans la valeur de l''attribut \"{1}\" et l''\u00E9l\u00E9ment est \"{0}\".
++ InvalidCharInAttValue = Un caract\u00E8re XML non valide (Unicode : 0x{2}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans la valeur de l''attribut "{1}" et l''\u00E9l\u00E9ment est "{0}".
+ InvalidCharInComment = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans le commentaire.
+ InvalidCharInPI = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans l''instruction de traitement.
+ InvalidCharInInternalSubset = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans le sous-ensemble interne de la DTD.
+ InvalidCharInTextDecl = Un caract\u00E8re XML non valide (Unicode : 0x{0}) a \u00E9t\u00E9 d\u00E9tect\u00E9 dans la d\u00E9claration textuelle.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = La valeur de l''attribut \"{1}\" doit commencer par une apostrophe ou des guillemets.
+- LessthanInAttValue = La valeur de l''attribut \"{1}\" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment \"{0}\" ne doit pas contenir le caract\u00E8re ''<''.
+- AttributeValueUnterminated = La valeur de l''attribut \"{1}\" doit se terminer par les guillemets correspondants.
++ QuoteRequiredInAttValue = La valeur de l''attribut "{1}" doit commencer par une apostrophe ou des guillemets.
++ LessthanInAttValue = La valeur de l''attribut "{1}" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment "{0}" ne doit pas contenir le caract\u00E8re ''<''.
++ AttributeValueUnterminated = La valeur de l''attribut "{1}" doit se terminer par les guillemets correspondants.
+ # 2.5 Comments
+- InvalidCommentStart = Le commentaire doit commencer par \"\".
++ InvalidCommentStart = Le commentaire doit commencer par "".
+ COMMENT_NOT_IN_ONE_ENTITY = Le commentaire n'est pas compris dans la m\u00EAme entit\u00E9.
+ # 2.6 Processing Instructions
+ PITargetRequired = L'instruction de traitement doit commencer par le nom de la cible.
+ SpaceRequiredInPI = Un espace est obligatoire entre les donn\u00E9es et la cible de l'instruction de traitement.
+- PIUnterminated = L'instruction de traitement doit se terminer par \"?>\".
+- ReservedPITarget = La cible de l'instruction de traitement correspondant \u00E0 \"[xX][mM][lL]\" n'est pas autoris\u00E9e.
++ PIUnterminated = L'instruction de traitement doit se terminer par "?>".
++ ReservedPITarget = La cible de l'instruction de traitement correspondant \u00E0 "[xX][mM][lL]" n'est pas autoris\u00E9e.
+ PI_NOT_IN_ONE_ENTITY = L'instruction de traitement n'est pas comprise dans la m\u00EAme entit\u00E9.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Version \"{0}\" non valide.
+- VersionNotSupported = La version XML \"{0}\" n''est pas prise en charge. Seule la version XML 1.0 est prise en charge.
+- VersionNotSupported11 = La version XML \"{0}\" n''est pas prise en charge. Seules les versions XML 1.0 et XML 1.1 sont prises en charge.
++ VersionInfoInvalid = Version "{0}" non valide.
++ VersionNotSupported = La version XML "{0}" n''est pas prise en charge. Seule la version XML 1.0 est prise en charge.
++ VersionNotSupported11 = La version XML "{0}" n''est pas prise en charge. Seules les versions XML 1.0 et XML 1.1 sont prises en charge.
+ VersionMismatch= Une entit\u00E9 ne peut pas inclure une autre entit\u00E9 d'une version ult\u00E9rieure.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Une repr\u00E9sentation d\u00E9cimale doit imm\u00E9diatement suivre la cha\u00EEne \"\" dans une r\u00E9f\u00E9rence de caract\u00E8re.
+- HexdigitRequiredInCharRef = Une repr\u00E9sentation hexad\u00E9cimale doit imm\u00E9diatement suivre la cha\u00EEne \"\" dans une r\u00E9f\u00E9rence de caract\u00E8re.
++ DigitRequiredInCharRef = Une repr\u00E9sentation d\u00E9cimale doit imm\u00E9diatement suivre la cha\u00EEne "" dans une r\u00E9f\u00E9rence de caract\u00E8re.
++ HexdigitRequiredInCharRef = Une repr\u00E9sentation hexad\u00E9cimale doit imm\u00E9diatement suivre la cha\u00EEne "" dans une r\u00E9f\u00E9rence de caract\u00E8re.
+ SemicolonRequiredInCharRef = La r\u00E9f\u00E9rence de caract\u00E8re doit se terminer par le d\u00E9limiteur ';'.
+- InvalidCharRef = La r\u00E9f\u00E9rence de caract\u00E8re \"{0}\" est un caract\u00E8re XML non valide.
++ InvalidCharRef = La r\u00E9f\u00E9rence de caract\u00E8re "{0}" est un caract\u00E8re XML non valide.
+ NameRequiredInReference = Le nom de l'identit\u00E9 doit imm\u00E9diatement suivre le caract\u00E8re "&" dans la r\u00E9f\u00E9rence d'entit\u00E9.
+- SemicolonRequiredInReference = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 \"{0}\" doit se terminer par le d\u00E9limiteur '';''.
++ SemicolonRequiredInReference = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 "{0}" doit se terminer par le d\u00E9limiteur '';''.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = La d\u00E9claration textuelle ne doit figurer qu'au d\u00E9but de l'entit\u00E9 analys\u00E9e externe.
+- EqRequiredInTextDecl = Le caract\u00E8re ''='' doit suivre \"{0}\" dans la d\u00E9claration textuelle.
+- QuoteRequiredInTextDecl = La valeur suivant \"{0}\" dans la d\u00E9claration textuelle doit \u00EAtre une cha\u00EEne entre guillemets.
+- CloseQuoteMissingInTextDecl = Dans la valeur suivant \"{0}\" dans la d\u00E9claration textuelle, il manque les guillemets fermants.
++ EqRequiredInTextDecl = Le caract\u00E8re ''='' doit suivre "{0}" dans la d\u00E9claration textuelle.
++ QuoteRequiredInTextDecl = La valeur suivant "{0}" dans la d\u00E9claration textuelle doit \u00EAtre une cha\u00EEne entre guillemets.
++ CloseQuoteMissingInTextDecl = Dans la valeur suivant "{0}" dans la d\u00E9claration textuelle, il manque les guillemets fermants.
+ SpaceRequiredBeforeVersionInTextDecl = Un espace est obligatoire devant le pseudo-attribut version dans la d\u00E9claration textuelle.
+ SpaceRequiredBeforeEncodingInTextDecl = Un espace est obligatoire devant le pseudo-attribut encoding dans la d\u00E9claration textuelle.
+- TextDeclUnterminated = La d\u00E9claration textuelle doit se terminer par \"?>\".
++ TextDeclUnterminated = La d\u00E9claration textuelle doit se terminer par "?>".
+ EncodingDeclRequired = La d\u00E9claration d'encodage est obligatoire dans la d\u00E9claration textuelle.
+ NoMorePseudoAttributes = Aucun autre pseudo-attribut n'est autoris\u00E9.
+ MorePseudoAttributes = D'autres pseudo-attributs sont attendus.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = Le commentaire doit \u00EAtre enti\u00E8rement inclus dans la m\u00EAme entit\u00E9 analys\u00E9e.
+ PINotInOneEntity = L'instruction de traitement doit \u00EAtre enti\u00E8rement incluse dans la m\u00EAme entit\u00E9 analys\u00E9e.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Nom d''encodage \"{0}\" non valide.
+- EncodingByteOrderUnsupported = L''ordre des octets donn\u00E9 pour encoder \"{0}\" n''est pas pris en charge.
++ EncodingDeclInvalid = Nom d''encodage "{0}" non valide.
++ EncodingByteOrderUnsupported = L''ordre des octets donn\u00E9 pour encoder "{0}" n''est pas pris en charge.
+ InvalidByte = Octet {0} de la s\u00E9quence UTF-8 \u00E0 {1} octets non valide.
+ ExpectedByte = Octet {0} de la s\u00E9quence UTF-8 \u00E0 {1} octets attendu.
+ InvalidHighSurrogate = Les bits de substitution sup\u00E9rieurs (High surrogate) dans la s\u00E9quence UTF-8 ne doivent pas d\u00E9passer 0x10 mais des bits 0x{0} ont \u00E9t\u00E9 d\u00E9tect\u00E9s.
+- OperationNotSupported = Op\u00E9ration \"{0}\" non prise en charge par le lecteur {1}.
+- InvalidASCII = L''octet \"{0}\" n''appartient pas au jeu de caract\u00E8res ASCII (7 bits).
++ OperationNotSupported = Op\u00E9ration "{0}" non prise en charge par le lecteur {1}.
++ InvalidASCII = L''octet "{0}" n''appartient pas au jeu de caract\u00E8res ASCII (7 bits).
+ CharConversionFailure = Une entit\u00E9 respectant un certain encodage ne doit pas contenir de s\u00E9quences non admises dans cet encodage.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = Ce caract\u00E8re (Unicode : 0x{0}) n''est pas autoris\u00E9 dans l''identificateur public.
+ SpaceRequiredBetweenPublicAndSystem = Des espaces sont obligatoires entre les ID publicId et systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Un espace est obligatoire apr\u00E8s \"''.
+- PEReferenceWithinMarkup = La r\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre \"%{0};\" ne peut pas survenir dans le balisage du sous-ensemble interne de la DTD.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Un espace est obligatoire apr\u00E8s "''.
++ PEReferenceWithinMarkup = La r\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre "%{0};" ne peut pas survenir dans le balisage du sous-ensemble interne de la DTD.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = Les d\u00E9clarations de balisage contenues dans la d\u00E9claration de type de document ou sur lesquelles pointe cette derni\u00E8re doivent avoir un format correct.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = La d\u00E9claration d'attribut pour \"xml:space\" doit \u00EAtre pr\u00E9sent\u00E9e comme type \u00E9num\u00E9r\u00E9 dont les seules valeurs possibles sont \"default\" et \"preserve\".
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = La d\u00E9claration d'attribut pour "xml:space" doit \u00EAtre pr\u00E9sent\u00E9e comme type \u00E9num\u00E9r\u00E9 dont les seules valeurs possibles sont "default" et "preserve".
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Un espace est obligatoire apr\u00E8s \"''.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Un espace est obligatoire apr\u00E8s le type d''\u00E9l\u00E9ment "{0}" dans la d\u00E9claration de type d''\u00E9l\u00E9ment.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = La contrainte est obligatoire apr\u00E8s le type d''\u00E9l\u00E9ment "{0}" dans la d\u00E9claration de type d''\u00E9l\u00E9ment.
++ ElementDeclUnterminated = La d\u00E9claration du type d''\u00E9l\u00E9ment "{0}" doit se terminer par ''>''.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un caract\u00E8re ''('' ou un type d''\u00E9l\u00E9ment est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un caract\u00E8re '')'' est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment \"{0}\".
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un caract\u00E8re ''('' ou un type d''\u00E9l\u00E9ment est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un caract\u00E8re '')'' est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment "{0}".
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un type d''\u00E9l\u00E9ment est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un caract\u00E8re '')'' est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment \"{0}\".
+- MixedContentUnterminated = Le mod\u00E8le de contenu mixte \"{0}\" doit se terminer par \")*\" lorsque les types d''\u00E9l\u00E9ment enfant sont contraints.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un type d''\u00E9l\u00E9ment est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un caract\u00E8re '')'' est obligatoire dans la d\u00E9claration du type d''\u00E9l\u00E9ment "{0}".
++ MixedContentUnterminated = Le mod\u00E8le de contenu mixte "{0}" doit se terminer par ")*" lorsque les types d''\u00E9l\u00E9ment enfant sont contraints.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Un espace est obligatoire apr\u00E8s \"\".
+- IgnoreSectUnterminated = La section conditionnelle exclue doit se terminer par \"]]>\".
++ IncludeSectUnterminated = La section conditionnelle incluse doit se terminer par "]]>".
++ IgnoreSectUnterminated = La section conditionnelle exclue doit se terminer par "]]>".
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = Le nom de l'entit\u00E9 doit imm\u00E9diatement suivre le caract\u00E8re "%" dans la r\u00E9f\u00E9rence d'entit\u00E9 de param\u00E8tre.
+- SemicolonRequiredInPEReference = La r\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre \"%{0};\" doit se terminer par le d\u00E9limiteur '';''.
++ SemicolonRequiredInPEReference = La r\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre "%{0};" doit se terminer par le d\u00E9limiteur '';''.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Un espace est obligatoire apr\u00E8s \"''.
+- MSG_DUPLICATE_ENTITY_DEFINITION = L''entit\u00E9 \"{0}\" est d\u00E9clar\u00E9e plusieurs fois.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Un espace est obligatoire entre le nom de l''entit\u00E9 "{0}" et la d\u00E9finition dans la d\u00E9claration d''entit\u00E9.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Un espace est obligatoire entre "NDATA" et le nom de notation dans la d\u00E9claration de l''entit\u00E9 "{0}".
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Un espace est obligatoire avant "NDATA" dans la d\u00E9claration de l''entit\u00E9 "{0}".
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = Le nom de notation est obligatoire apr\u00E8s "NDATA" dans la d\u00E9claration de l''entit\u00E9 "{0}".
++ EntityDeclUnterminated = La d\u00E9claration de l''entit\u00E9 "{0}" doit se terminer par ''>''.
++ MSG_DUPLICATE_ENTITY_DEFINITION = L''entit\u00E9 "{0}" est d\u00E9clar\u00E9e plusieurs fois.
+ # 4.2.2 External Entities
+- ExternalIDRequired = La d\u00E9claration d'entit\u00E9 externe doit commencer par \"SYSTEM\" ou \"PUBLIC\".
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Un espace est obligatoire entre \"PUBLIC\" et l'identificateur public.
++ ExternalIDRequired = La d\u00E9claration d'entit\u00E9 externe doit commencer par "SYSTEM" ou "PUBLIC".
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Un espace est obligatoire entre "PUBLIC" et l'identificateur public.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Un espace est obligatoire entre l'identificateur public et l'identificateur syst\u00E8me.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Un espace est obligatoire entre \"SYSTEM\" et l'identificateur syst\u00E8me.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = L''identificateur du fragment ne doit pas \u00EAtre sp\u00E9cifi\u00E9 comme faisant partie de l''identificateur syst\u00E8me \"{0}\".
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Un espace est obligatoire entre "SYSTEM" et l'identificateur syst\u00E8me.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = L''identificateur du fragment ne doit pas \u00EAtre sp\u00E9cifi\u00E9 comme faisant partie de l''identificateur syst\u00E8me "{0}".
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Un espace est obligatoire apr\u00E8s \"''.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Un espace est obligatoire apr\u00E8s le nom de notation "{0}" dans la d\u00E9claration de notation.
++ ExternalIDorPublicIDRequired = La d\u00E9claration de la notation "{0}" doit inclure un identificateur syst\u00E8me ou public.
++ NotationDeclUnterminated = La d\u00E9claration de la notation "{0}" doit se terminer par ''>''.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = Le type d''\u00E9l\u00E9ment \"{1}\" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 dans le mod\u00E8le de contenu de la d\u00E9claration d''\u00E9l\u00E9ment \"{0}\".
+- ENTITIESInvalid = La valeur d''attribut \"{1}\" de type ENTITIES doit correspondre au nom d''au moins une entit\u00E9 non analys\u00E9e.
+- ENTITYInvalid = La valeur d''attribut \"{1}\" de type ENTITY doit correspondre au nom d''une entit\u00E9 non analys\u00E9e.
+- IDDefaultTypeInvalid = L''attribut d''ID \"{0}\" doit avoir une valeur par d\u00E9faut d\u00E9clar\u00E9e de \"#IMPLIED\" ou \"#REQUIRED\".
+- IDInvalid = La valeur d''attribut \"{0}\" de type ID doit \u00EAtre un nom.
+- IDInvalidWithNamespaces = La valeur d''attribut \"{0}\" de type ID doit \u00EAtre un NCName lorsque les espaces de noms sont activ\u00E9s.
+- IDNotUnique = La valeur d''attribut \"{0}\" de type ID doit \u00EAtre unique dans le document.
+- IDREFInvalid = La valeur d''attribut \"{0}\" de type IDREF doit \u00EAtre un nom.
+- IDREFInvalidWithNamespaces = La valeur d''attribut \"{0}\" de type IDREF doit \u00EAtre un NCName lorsque les espaces de noms sont activ\u00E9s.
+- IDREFSInvalid = Une valeur d''attribut \"{0}\" de type IDREFS doit correspondre \u00E0 au moins un nom.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre \"{0}\" doit inclure des d\u00E9clarations correctement imbriqu\u00E9es lorsque la r\u00E9f\u00E9rence d''entit\u00E9 est utilis\u00E9e comme d\u00E9claration compl\u00E8te.
+- ImproperDeclarationNesting = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre \"{0}\" doit inclure des d\u00E9clarations correctement imbriqu\u00E9es.
+- ImproperGroupNesting = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre \"{0}\" doit inclure des paires de parenth\u00E8ses correctement imbriqu\u00E9es.
+- INVALID_PE_IN_CONDITIONAL = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre \"{0}\" doit inclure la section conditionnelle compl\u00E8te ou seulement INCLUDE ou IGNORE.
+- MSG_ATTRIBUTE_NOT_DECLARED = L''attribut \"{1}\" doit \u00EAtre d\u00E9clar\u00E9 pour le type d''\u00E9l\u00E9ment \"{0}\".
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = L''attribut \"{0}\" de valeur \"{1}\" doit avoir une valeur issue de la liste \"{2}\".
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = La valeur \"{1}\" de l''attribut \"{0}\" ne doit pas \u00EAtre modifi\u00E9e par normalisation (et devenir \"{2}\") dans un document autonome.
+- MSG_CONTENT_INCOMPLETE = Le contenu du type d''\u00E9l\u00E9ment \"{0}\" est incomplet. Il doit correspondre \u00E0 \"{1}\".
+- MSG_CONTENT_INVALID = Le contenu du type d''\u00E9l\u00E9ment \"{0}\" doit correspondre \u00E0 \"{1}\".
+- MSG_CONTENT_INVALID_SPECIFIED = Le contenu du type d''\u00E9l\u00E9ment \"{0}\" doit correspondre \u00E0 \"{1}\". Les enfants de type \"{2}\" ne sont pas autoris\u00E9s.
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = L''attribut \"{1}\" du type d''\u00E9l\u00E9ment \"{0}\" a une valeur par d\u00E9faut et doit \u00EAtre sp\u00E9cifi\u00E9 dans un document autonome.
+- MSG_DUPLICATE_ATTDEF = L''attribut \"{1}\" est d\u00E9j\u00E0 d\u00E9clar\u00E9 pour le type d''\u00E9l\u00E9ment \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = Le type d''\u00E9l\u00E9ment \"{0}\" ne doit pas \u00EAtre d\u00E9clar\u00E9 plusieurs fois.
+- MSG_ELEMENT_NOT_DECLARED = Le type d''\u00E9l\u00E9ment \"{0}\" doit \u00EAtre d\u00E9clar\u00E9.
++ DuplicateTypeInMixedContent = Le type d''\u00E9l\u00E9ment "{1}" a d\u00E9j\u00E0 \u00E9t\u00E9 sp\u00E9cifi\u00E9 dans le mod\u00E8le de contenu de la d\u00E9claration d''\u00E9l\u00E9ment "{0}".
++ ENTITIESInvalid = La valeur d''attribut "{1}" de type ENTITIES doit correspondre au nom d''au moins une entit\u00E9 non analys\u00E9e.
++ ENTITYInvalid = La valeur d''attribut "{1}" de type ENTITY doit correspondre au nom d''une entit\u00E9 non analys\u00E9e.
++ IDDefaultTypeInvalid = L''attribut d''ID "{0}" doit avoir une valeur par d\u00E9faut d\u00E9clar\u00E9e de "#IMPLIED" ou "#REQUIRED".
++ IDInvalid = La valeur d''attribut "{0}" de type ID doit \u00EAtre un nom.
++ IDInvalidWithNamespaces = La valeur d''attribut "{0}" de type ID doit \u00EAtre un NCName lorsque les espaces de noms sont activ\u00E9s.
++ IDNotUnique = La valeur d''attribut "{0}" de type ID doit \u00EAtre unique dans le document.
++ IDREFInvalid = La valeur d''attribut "{0}" de type IDREF doit \u00EAtre un nom.
++ IDREFInvalidWithNamespaces = La valeur d''attribut "{0}" de type IDREF doit \u00EAtre un NCName lorsque les espaces de noms sont activ\u00E9s.
++ IDREFSInvalid = Une valeur d''attribut "{0}" de type IDREFS doit correspondre \u00E0 au moins un nom.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre "{0}" doit inclure des d\u00E9clarations correctement imbriqu\u00E9es lorsque la r\u00E9f\u00E9rence d''entit\u00E9 est utilis\u00E9e comme d\u00E9claration compl\u00E8te.
++ ImproperDeclarationNesting = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre "{0}" doit inclure des d\u00E9clarations correctement imbriqu\u00E9es.
++ ImproperGroupNesting = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre "{0}" doit inclure des paires de parenth\u00E8ses correctement imbriqu\u00E9es.
++ INVALID_PE_IN_CONDITIONAL = Le texte de remplacement de l''entit\u00E9 de param\u00E8tre "{0}" doit inclure la section conditionnelle compl\u00E8te ou seulement INCLUDE ou IGNORE.
++ MSG_ATTRIBUTE_NOT_DECLARED = L''attribut "{1}" doit \u00EAtre d\u00E9clar\u00E9 pour le type d''\u00E9l\u00E9ment "{0}".
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = L''attribut "{0}" de valeur "{1}" doit avoir une valeur issue de la liste "{2}".
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = La valeur "{1}" de l''attribut "{0}" ne doit pas \u00EAtre modifi\u00E9e par normalisation (et devenir "{2}") dans un document autonome.
++ MSG_CONTENT_INCOMPLETE = Le contenu du type d''\u00E9l\u00E9ment "{0}" est incomplet. Il doit correspondre \u00E0 "{1}".
++ MSG_CONTENT_INVALID = Le contenu du type d''\u00E9l\u00E9ment "{0}" doit correspondre \u00E0 "{1}".
++ MSG_CONTENT_INVALID_SPECIFIED = Le contenu du type d''\u00E9l\u00E9ment "{0}" doit correspondre \u00E0 "{1}". Les enfants de type "{2}" ne sont pas autoris\u00E9s.
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = L''attribut "{1}" du type d''\u00E9l\u00E9ment "{0}" a une valeur par d\u00E9faut et doit \u00EAtre sp\u00E9cifi\u00E9 dans un document autonome.
++ MSG_DUPLICATE_ATTDEF = L''attribut "{1}" est d\u00E9j\u00E0 d\u00E9clar\u00E9 pour le type d''\u00E9l\u00E9ment "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = Le type d''\u00E9l\u00E9ment "{0}" ne doit pas \u00EAtre d\u00E9clar\u00E9 plusieurs fois.
++ MSG_ELEMENT_NOT_DECLARED = Le type d''\u00E9l\u00E9ment "{0}" doit \u00EAtre d\u00E9clar\u00E9.
+ MSG_GRAMMAR_NOT_FOUND = Le document n'est pas valide : aucune grammaire d\u00E9tect\u00E9e.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Un \u00E9l\u00E9ment avec l''identificateur \"{0}\" doit figurer dans le document.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 externe \"{0}\" n''est pas autoris\u00E9e dans le document autonome.
+- MSG_FIXED_ATTVALUE_INVALID = L''attribut \"{1}\" de valeur \"{2}\" doit avoir une valeur de \"{3}\".
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Le type d''\u00E9l\u00E9ment \"{0}\" a d\u00E9j\u00E0 l''attribut \"{1}\" de type ID. Un deuxi\u00E8me attribut \"{2}\" de type ID n''est pas autoris\u00E9.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Le type d''\u00E9l\u00E9ment \"{0}\" a d\u00E9j\u00E0 l''attribut \"{1}\" de type NOTATION. Un deuxi\u00E8me attribut \"{2}\" de type NOTATION n''est pas autoris\u00E9.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notation \"{1}\" doit \u00EAtre d\u00E9clar\u00E9e lorsqu''elle est r\u00E9f\u00E9renc\u00E9e dans la liste des types de notation de l''attribut \"{0}\".
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notation \"{1}\" doit \u00EAtre d\u00E9clar\u00E9e lorsqu''elle est r\u00E9f\u00E9renc\u00E9e dans la d\u00E9claration d''entit\u00E9 non analys\u00E9e pour \"{0}\".
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 \"{0}\" d\u00E9clar\u00E9e dans une entit\u00E9 analys\u00E9e externe n''est pas autoris\u00E9e dans un document autonome.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = L''attribut \"{1}\" est obligatoire et doit \u00EAtre sp\u00E9cifi\u00E9 pour le type d''\u00E9l\u00E9ment \"{0}\".
++ MSG_ELEMENT_WITH_ID_REQUIRED = Un \u00E9l\u00E9ment avec l''identificateur "{0}" doit figurer dans le document.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 externe "{0}" n''est pas autoris\u00E9e dans le document autonome.
++ MSG_FIXED_ATTVALUE_INVALID = L''attribut "{1}" de valeur "{2}" doit avoir une valeur de "{3}".
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Le type d''\u00E9l\u00E9ment "{0}" a d\u00E9j\u00E0 l''attribut "{1}" de type ID. Un deuxi\u00E8me attribut "{2}" de type ID n''est pas autoris\u00E9.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Le type d''\u00E9l\u00E9ment "{0}" a d\u00E9j\u00E0 l''attribut "{1}" de type NOTATION. Un deuxi\u00E8me attribut "{2}" de type NOTATION n''est pas autoris\u00E9.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notation "{1}" doit \u00EAtre d\u00E9clar\u00E9e lorsqu''elle est r\u00E9f\u00E9renc\u00E9e dans la liste des types de notation de l''attribut "{0}".
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notation "{1}" doit \u00EAtre d\u00E9clar\u00E9e lorsqu''elle est r\u00E9f\u00E9renc\u00E9e dans la d\u00E9claration d''entit\u00E9 non analys\u00E9e pour "{0}".
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = La r\u00E9f\u00E9rence \u00E0 l''entit\u00E9 "{0}" d\u00E9clar\u00E9e dans une entit\u00E9 analys\u00E9e externe n''est pas autoris\u00E9e dans un document autonome.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = L''attribut "{1}" est obligatoire et doit \u00EAtre sp\u00E9cifi\u00E9 pour le type d''\u00E9l\u00E9ment "{0}".
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Aucun espace ne doit figurer entre les \u00E9l\u00E9ments d\u00E9clar\u00E9s dans une entit\u00E9 analys\u00E9e externe avec le contenu des \u00E9l\u00E9ments dans un document autonome.
+- NMTOKENInvalid = La valeur d''attribut \"{0}\" de type NMTOKEN doit correspondre \u00E0 un jeton de nom.
+- NMTOKENSInvalid = La valeur d''attribut \"{0}\" de type NMTOKENS doit correspondre \u00E0 au moins un jeton de nom.
+- NoNotationOnEmptyElement = Le type d''\u00E9l\u00E9ment \"{0}\" d\u00E9clar\u00E9 EMPTY ne peut pas d\u00E9clarer un attribut \"{1}\" de type NOTATION.
+- RootElementTypeMustMatchDoctypedecl = L''\u00E9l\u00E9ment racine de document \"{1}\" doit correspondre \u00E0 la racine DOCTYPE \"{0}\".
+- UndeclaredElementInContentSpec = Le mod\u00E8le de contenu de l''\u00E9l\u00E9ment \"{0}\" fait r\u00E9f\u00E9rence \u00E0 l''\u00E9l\u00E9ment non d\u00E9clar\u00E9 \"{1}\".
+- UniqueNotationName = La d\u00E9claration de la notation \"{0}\" n''est pas unique. Une valeur Name donn\u00E9e ne doit pas \u00EAtre d\u00E9clar\u00E9e dans plusieurs d\u00E9clarations de notation.
+- ENTITYFailedInitializeGrammar = Contr\u00F4le de validation ENTITYDatatype : \u00E9chec. Besoin d'appeler une m\u00E9thode d'initialisation avec une r\u00E9f\u00E9rence de grammaire valide. \t
+- ENTITYNotUnparsed = La valeur ENTITY \"{0}\" est analys\u00E9e.
+- ENTITYNotValid = La valeur ENTITY \"{0}\" n''est pas valide.
++ NMTOKENInvalid = La valeur d''attribut "{0}" de type NMTOKEN doit correspondre \u00E0 un jeton de nom.
++ NMTOKENSInvalid = La valeur d''attribut "{0}" de type NMTOKENS doit correspondre \u00E0 au moins un jeton de nom.
++ NoNotationOnEmptyElement = Le type d''\u00E9l\u00E9ment "{0}" d\u00E9clar\u00E9 EMPTY ne peut pas d\u00E9clarer un attribut "{1}" de type NOTATION.
++ RootElementTypeMustMatchDoctypedecl = L''\u00E9l\u00E9ment racine de document "{1}" doit correspondre \u00E0 la racine DOCTYPE "{0}".
++ UndeclaredElementInContentSpec = Le mod\u00E8le de contenu de l''\u00E9l\u00E9ment "{0}" fait r\u00E9f\u00E9rence \u00E0 l''\u00E9l\u00E9ment non d\u00E9clar\u00E9 "{1}".
++ UniqueNotationName = La d\u00E9claration de la notation "{0}" n''est pas unique. Une valeur Name donn\u00E9e ne doit pas \u00EAtre d\u00E9clar\u00E9e dans plusieurs d\u00E9clarations de notation.
++ ENTITYFailedInitializeGrammar = Valideur ENTITYDatatype : \u00E9chec. Besoin d'appeler une m\u00E9thode d'initialisation avec une r\u00E9f\u00E9rence de grammaire valide. \t
++ ENTITYNotUnparsed = La valeur ENTITY "{0}" est analys\u00E9e.
++ ENTITYNotValid = La valeur ENTITY "{0}" n''est pas valide.
+ EmptyList = Une valeur de type ENTITIES, IDREFS et NMTOKENS ne peut pas correspondre \u00E0 une liste vide.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = La r\u00E9f\u00E9rence d''entit\u00E9 externe \"&{0};\" n''est pas autoris\u00E9e dans une valeur d''attribut.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = La r\u00E9f\u00E9rence d''entit\u00E9 externe "&{0};" n''est pas autoris\u00E9e dans une valeur d''attribut.
++ AccessExternalDTD = DTD externe : \u00E9chec de la lecture de la DTD externe ''{0}'', car l''acc\u00E8s ''{1}'' n''est pas autoris\u00E9 en raison d''une restriction d\u00E9finie par la propri\u00E9t\u00E9 accessExternalDTD.
++ AccessExternalEntity = Entit\u00E9 externe : \u00E9chec de la lecture du document externe ''{0}'', car l''acc\u00E8s ''{1}'' n''est pas autoris\u00E9 en raison d''une restriction d\u00E9finie par la propri\u00E9t\u00E9 accessExternalDTD.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = L''entit\u00E9 \"{0}\" \u00E9tait r\u00E9f\u00E9renc\u00E9e, mais pas d\u00E9clar\u00E9e.
+- ReferenceToUnparsedEntity = La r\u00E9f\u00E9rence d''entit\u00E9 non analys\u00E9e \"&{0};\" n''est pas autoris\u00E9e.
+- RecursiveReference = R\u00E9f\u00E9rence d''entit\u00E9 r\u00E9cursive \"{0}\". (Chemin de r\u00E9f\u00E9rence : {1}),
+- RecursiveGeneralReference = R\u00E9f\u00E9rence d''entit\u00E9 g\u00E9n\u00E9rale r\u00E9cursive \"&{0};\". (Chemin de r\u00E9f\u00E9rence : {1}),
+- RecursivePEReference = R\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre r\u00E9cursive \"%{0};\". (Chemin de r\u00E9f\u00E9rence : {1}),
++ EntityNotDeclared = L''entit\u00E9 "{0}" \u00E9tait r\u00E9f\u00E9renc\u00E9e, mais pas d\u00E9clar\u00E9e.
++ ReferenceToUnparsedEntity = La r\u00E9f\u00E9rence d''entit\u00E9 non analys\u00E9e "&{0};" n''est pas autoris\u00E9e.
++ RecursiveReference = R\u00E9f\u00E9rence d''entit\u00E9 r\u00E9cursive "{0}". (Chemin de r\u00E9f\u00E9rence : {1}),
++ RecursiveGeneralReference = R\u00E9f\u00E9rence d''entit\u00E9 g\u00E9n\u00E9rale r\u00E9cursive "&{0};". (Chemin de r\u00E9f\u00E9rence : {1}),
++ RecursivePEReference = R\u00E9f\u00E9rence d''entit\u00E9 de param\u00E8tre r\u00E9cursive "%{0};". (Chemin de r\u00E9f\u00E9rence : {1}),
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = L''encodage \"{0}\" n''est pas pris en charge.
++ EncodingNotSupported = L''encodage "{0}" n''est pas pris en charge.
+ EncodingRequired = Une entit\u00E9 analys\u00E9e sans encodage UTF-8 ou UTF-16 doit contenir une d\u00E9claration d'encodage.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = L'\u00E9l\u00E9ment ou l'attribut ne correspond pas \u00E0 la production QName : QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = L''\u00E9l\u00E9ment \"{0}\" ne peut pas avoir \"xmlns\" comme pr\u00E9fixe.
+- ElementPrefixUnbound = Le pr\u00E9fixe \"{0}\" de l''\u00E9l\u00E9ment \"{1}\" n''est pas li\u00E9.
+- AttributePrefixUnbound = Le pr\u00E9fixe \"{2}\" de l''attribut \"{1}\" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment \"{0}\" n''est pas li\u00E9.
+- EmptyPrefixedAttName = La valeur de l''attribut \"{0}\" n''est pas valide. Les liaisons d''espaces de noms pr\u00E9fix\u00E9s ne peuvent pas \u00EAtre vides.
+- PrefixDeclared = Le pr\u00E9fixe d''espace de noms \"{0}\" n''\u00E9tait pas d\u00E9clar\u00E9.
++ ElementXMLNSPrefix = L''\u00E9l\u00E9ment "{0}" ne peut pas avoir "xmlns" comme pr\u00E9fixe.
++ ElementPrefixUnbound = Le pr\u00E9fixe "{0}" de l''\u00E9l\u00E9ment "{1}" n''est pas li\u00E9.
++ AttributePrefixUnbound = Le pr\u00E9fixe "{2}" de l''attribut "{1}" associ\u00E9 \u00E0 un type d''\u00E9l\u00E9ment "{0}" n''est pas li\u00E9.
++ EmptyPrefixedAttName = La valeur de l''attribut "{0}" n''est pas valide. Les liaisons d''espaces de noms pr\u00E9fix\u00E9s ne peuvent pas \u00EAtre vides.
++ PrefixDeclared = Le pr\u00E9fixe d''espace de noms "{0}" n''\u00E9tait pas d\u00E9clar\u00E9.
+ CantBindXMLNS = Le pr\u00E9fixe "xmlns" ne peut pas \u00EAtre li\u00E9 \u00E0 un espace de noms de fa\u00E7on explicite, pas plus que l'espace de noms de "xmlns" \u00E0 un pr\u00E9fixe quelconque.
+ CantBindXML = Le pr\u00E9fixe "xml" ne peut pas \u00EAtre li\u00E9 \u00E0 un autre espace de noms que son espace de noms habituel. L'espace de noms de "xml" ne peut pas non plus \u00EAtre li\u00E9 \u00E0 un autre pr\u00E9fixe que "xml".
+- MSG_ATT_DEFAULT_INVALID = La valeur par d\u00E9faut \"{1}\" de l''attribut \"{0}\" n''est pas admise conform\u00E9ment aux contraintes lexicales de ce type d''attribut.
++ MSG_ATT_DEFAULT_INVALID = La valeur par d\u00E9faut "{1}" de l''attribut "{0}" n''est pas admise conform\u00E9ment aux contraintes lexicales de ce type d''attribut.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=L''analyseur a rencontr\u00E9 plus de \"{0}\" d\u00E9veloppements d''entit\u00E9 dans ce document. Il s''agit de la limite impos\u00E9e par l''application.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001 : L''analyseur a rencontr\u00E9 plus de "{0}" d\u00E9veloppements d''entit\u00E9 dans ce document. Il s''agit de la limite impos\u00E9e par le JDK.
++ ElementAttributeLimit=JAXP00010002 : L''\u00E9l\u00E9ment "{0}" a plus de "{1}" attributs. "{1}" est la limite impos\u00E9e par le JDK.
++ MaxEntitySizeLimit=JAXP00010003 : La longueur de l''entit\u00E9 "{0}" est de "{1}". Cette valeur d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}".
++ TotalEntitySizeLimit=JAXP00010004 : La taille cumul\u00E9e des entit\u00E9s ("{0}") d\u00E9passe la limite de "{1}" d\u00E9finie par "{2}".
++ MaxXMLNameLimit=JAXP00010005 : le nom "{0}" d\u00E9passe la limite de "{1}" d\u00E9finie par "{2}".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= L''\u00E9l\u00E9ment \"{0}\" a plus de \"{1}\" attributs. \"{1}\" est la limite impos\u00E9e par l''application.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nel prologo del documento.
+ InvalidCharInXMLDecl = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nella dichiarazione XML.
+ # 2.4 Character Data and Markup
+- CDEndInContent = La sequenza di caratteri \"]]>\" non deve essere presente nel contenuto a meno che non sia utilizzata per contrassegnare la fine di una sezione CDATA.
++ CDEndInContent = La sequenza di caratteri "]]>" non deve essere presente nel contenuto a meno che non sia utilizzata per contrassegnare la fine di una sezione CDATA.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = La sezione CDATA deve terminare con \"]]>\".
++ CDSectUnterminated = La sezione CDATA deve terminare con "]]>".
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = La dichiarazione XML pu\u00F2 comparire solo all'inizio del documento.
+- EqRequiredInXMLDecl = Il carattere '' = '' deve seguire \"{0}\" nella dichiarazione XML.
+- QuoteRequiredInXMLDecl = Il valore che segue \"{0}\" nella dichiarazione XML deve essere una stringa compresa tra apici.
+- XMLDeclUnterminated = La dichiarazione XML deve terminare con \"?>\".
++ EqRequiredInXMLDecl = Il carattere '' = '' deve seguire "{0}" nella dichiarazione XML.
++ QuoteRequiredInXMLDecl = Il valore che segue "{0}" nella dichiarazione XML deve essere una stringa compresa tra apici.
++ XMLDeclUnterminated = La dichiarazione XML deve terminare con "?>".
+ VersionInfoRequired = La versione \u00E8 obbligatoria nella dichiarazione XML.
+ SpaceRequiredBeforeVersionInXMLDecl = \u00C8 richiesto uno spazio prima dell'attributo pseudo della versione nella dichiarazione XML.
+ SpaceRequiredBeforeEncodingInXMLDecl = \u00C8 richiesto uno spazio prima dell'attributo pseudo di codifica nella dichiarazione XML.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=Il riferimento non \u00E8 consentito nella sezione finale.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = Il valore della dichiarazione del documento standalone deve essere \"yes\" o \"no\", non \"{0}\".
++ SDDeclInvalid = Il valore della dichiarazione del documento standalone deve essere "yes" o "no", non "{0}".
++ SDDeclNameInvalid = Il nome standalone nella dichiarazione XML potrebbe essere stato digitato in modo errato.
+ # 2.12 Language Identification
+- XMLLangInvalid = Il valore dell''attributo xml:lang \"{0}\" \u00E8 un identificativo di lingua non valido.
++ XMLLangInvalid = Il valore dell''attributo xml:lang "{0}" \u00E8 un identificativo di lingua non valido.
+ # 3. Logical Structures
+- ETagRequired = Il tipo di elemento \"{0}\" deve terminare con la corrispondente tag finale \"{0}>\".
++ ETagRequired = Il tipo di elemento "{0}" deve terminare con la corrispondente tag finale "{0}>".
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = Il tipo di elemento \"{0}\" deve essere seguito dalle specifiche di attributo \">\" o \"/>\".
+- EqRequiredInAttribute = Il nome attributo \"{1}\" associato a un tipo di elemento \"{0}\" deve essere seguito dal carattere '' = ''.
+- OpenQuoteExpected = \u00C8 previsto un apice di apertura per l''attributo \"{1}\" associato a un tipo di elemento \"{0}\".
+- CloseQuoteExpected = \u00C8 previsto un apice di chiusura per l''attributo \"{1}\" associato a un tipo di elemento \"{0}\".
+- AttributeNotUnique = L''attributo \"{1}\" \u00E8 gi\u00E0 stato specificato per l''elemento \"{0}\".
+- AttributeNSNotUnique = L''attributo \"{1}\" associato allo spazio di nomi \"{2}\" \u00E8 gi\u00E0 stato specificato per l''elemento \"{0}\".
+- ETagUnterminated = La tag finale per il tipo di elemento \"{0}\" deve terminare con un delimitatore ''>''.
++ ElementUnterminated = Il tipo di elemento "{0}" deve essere seguito dalle specifiche di attributo ">" o "/>".
++ EqRequiredInAttribute = Il nome attributo "{1}" associato a un tipo di elemento "{0}" deve essere seguito dal carattere '' = ''.
++ OpenQuoteExpected = \u00C8 previsto un apice di apertura per l''attributo "{1}" associato a un tipo di elemento "{0}".
++ CloseQuoteExpected = \u00C8 previsto un apice di chiusura per l''attributo "{1}" associato a un tipo di elemento "{0}".
++ AttributeNotUnique = L''attributo "{1}" \u00E8 gi\u00E0 stato specificato per l''elemento "{0}".
++ AttributeNSNotUnique = L''attributo "{1}" associato allo spazio di nomi "{2}" \u00E8 gi\u00E0 stato specificato per l''elemento "{0}".
++ ETagUnterminated = La tag finale per il tipo di elemento "{0}" deve terminare con un delimitatore ''>''.
+ MarkupNotRecognizedInContent = Il contenuto degli elementi deve essere composto da dati o markup di caratteri con formato corretto.
+ DoctypeIllegalInContent = DOCTYPE non \u00E8 consentito nel contenuto.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = Il riferimento deve terminare con un delimitatore ';'.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = Il riferimento deve essere compreso completamente all'interno della stessa entit\u00E0 analizzata.
+- ElementEntityMismatch = L''elemento \"{0}\" deve iniziare e finire con la stessa entit\u00E0.
++ ElementEntityMismatch = L''elemento "{0}" deve iniziare e finire con la stessa entit\u00E0.
+ MarkupEntityMismatch=Le strutture di documenti XML devono iniziare e finire con la stessa entit\u00E0.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{2}) nel valore dell''attributo \"{1}\". L''elemento \u00E8 \"{0}\".
++ InvalidCharInAttValue = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{2}) nel valore dell''attributo "{1}". L''elemento \u00E8 "{0}".
+ InvalidCharInComment = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nel commento.
+ InvalidCharInPI = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nell''istruzione di elaborazione.
+ InvalidCharInInternalSubset = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nel set secondario interno del DTD.
+ InvalidCharInTextDecl = \u00C8 stato trovato un carattere XML non valido (Unicode: 0x{0}) nella dichiarazione testuale.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = Il valore dell''attributo \"{1}\" deve iniziare con un apice o una virgoletta.
+- LessthanInAttValue = Il valore dell''attributo \"{1}\" associato a un tipo di elemento \"{0}\" non deve essere contenere il carattere ''<''.
+- AttributeValueUnterminated = Il valore dell''attributo \"{1}\" deve terminare con un apice corrispondente.
++ QuoteRequiredInAttValue = Il valore dell''attributo "{1}" deve iniziare con un apice o una virgoletta.
++ LessthanInAttValue = Il valore dell''attributo "{1}" associato a un tipo di elemento "{0}" non deve essere contenere il carattere ''<''.
++ AttributeValueUnterminated = Il valore dell''attributo "{1}" deve terminare con un apice corrispondente.
+ # 2.5 Comments
+- InvalidCommentStart = Il commento deve iniziare con \"\".
++ InvalidCommentStart = Il commento deve iniziare con "".
+ COMMENT_NOT_IN_ONE_ENTITY = Il commento non \u00E8 compreso all'interno della stessa entit\u00E0.
+ # 2.6 Processing Instructions
+ PITargetRequired = L'istruzione di elaborazione deve iniziare con il nome della destinazione.
+ SpaceRequiredInPI = \u00C8 richiesto uno spazio tra la destinazione delle istruzioni di elaborazione e i dati.
+- PIUnterminated = L'istruzione di elaborazione deve terminare con \"?>\".
+- ReservedPITarget = Non \u00E8 consentita una destinazione di istruzione di elaborazione corrispondente a \"[xX][mM][lL]\".
++ PIUnterminated = L'istruzione di elaborazione deve terminare con "?>".
++ ReservedPITarget = Non \u00E8 consentita una destinazione di istruzione di elaborazione corrispondente a "[xX][mM][lL]".
+ PI_NOT_IN_ONE_ENTITY = L'istruzione di elaborazione non \u00E8 compresa all'interno della stessa entit\u00E0.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Versione \"{0}\" non valida.
+- VersionNotSupported = La versione XML \"{0}\" non \u00E8 supportata. Solo la versione XML 1.0 \u00E8 supportata.
+- VersionNotSupported11 = La versione XML \"{0}\" non \u00E8 supportata. Solo le versioni XML 1.0 e XML 1.1 sono supportate.
++ VersionInfoInvalid = Versione "{0}" non valida.
++ VersionNotSupported = La versione XML "{0}" non \u00E8 supportata. Solo la versione XML 1.0 \u00E8 supportata.
++ VersionNotSupported11 = La versione XML "{0}" non \u00E8 supportata. Solo le versioni XML 1.0 e XML 1.1 sono supportate.
+ VersionMismatch= Un'entit\u00E0 non pu\u00F2 includerne un'altra con una versione successiva.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Una rappresentazione decimale deve seguire immediatamente \"\" in un riferimento di carattere.
+- HexdigitRequiredInCharRef = Una rappresentazione esadecimale deve seguire immediatamente \"\" in un riferimento di carattere.
++ DigitRequiredInCharRef = Una rappresentazione decimale deve seguire immediatamente "" in un riferimento di carattere.
++ HexdigitRequiredInCharRef = Una rappresentazione esadecimale deve seguire immediatamente "" in un riferimento di carattere.
+ SemicolonRequiredInCharRef = Il riferimento di carattere deve terminare con il delimitatore ';'.
+- InvalidCharRef = Il riferimento di carattere \"{0}\" \u00E8 un carattere XML non valido.
++ InvalidCharRef = Il riferimento di carattere "{0}" \u00E8 un carattere XML non valido.
+ NameRequiredInReference = Il nome entit\u00E0 deve seguire immediatamente '&' nel riferimento di entit\u00E0.
+- SemicolonRequiredInReference = Il riferimento di entit\u00E0 \"{0}\" deve terminare con il delimitatore '';''.
++ SemicolonRequiredInReference = Il riferimento di entit\u00E0 "{0}" deve terminare con il delimitatore '';''.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = La dichiarazione di testo pu\u00F2 comparire solo all'inizio dell'entit\u00E0 esterna analizzata.
+- EqRequiredInTextDecl = Il carattere '' = '' deve seguire \"{0}\" nella dichiarazione di testo.
+- QuoteRequiredInTextDecl = Il valore che segue \"{0}\" nella dichiarazione di testo deve essere una stringa compresa tra apici.
+- CloseQuoteMissingInTextDecl = manca l''apice di chiusura nel valore che segue \"{0}\" nella dichiarazione di testo.
++ EqRequiredInTextDecl = Il carattere '' = '' deve seguire "{0}" nella dichiarazione di testo.
++ QuoteRequiredInTextDecl = Il valore che segue "{0}" nella dichiarazione di testo deve essere una stringa compresa tra apici.
++ CloseQuoteMissingInTextDecl = manca l''apice di chiusura nel valore che segue "{0}" nella dichiarazione di testo.
+ SpaceRequiredBeforeVersionInTextDecl = \u00C8 richiesto uno spazio prima dell'attributo pseudo della versione nella dichiarazione del testo.
+ SpaceRequiredBeforeEncodingInTextDecl = \u00C8 richiesto uno spazio prima dell'attributo pseudo di codifica nella dichiarazione del testo.
+- TextDeclUnterminated = La dichiarazione di testo deve terminare con \"?>\".
++ TextDeclUnterminated = La dichiarazione di testo deve terminare con "?>".
+ EncodingDeclRequired = La dichiarazione di codifica \u00E8 obbligatoria nella dichiarazione di testo.
+ NoMorePseudoAttributes = Non sono consentiti altri attributi pseudo.
+ MorePseudoAttributes = Sono previsti altri attributi pseudo.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = Il commento deve essere compreso completamente all'interno della stessa entit\u00E0 analizzata.
+ PINotInOneEntity = L'istruzione di elaborazione deve essere compresa completamente all'interno della stessa entit\u00E0 analizzata.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Nome codifica \"{0}\" non valido.
+- EncodingByteOrderUnsupported = L''ordine di byte specificato per la codifica \"{0}\" non \u00E8 supportato.
++ EncodingDeclInvalid = Nome codifica "{0}" non valido.
++ EncodingByteOrderUnsupported = L''ordine di byte specificato per la codifica "{0}" non \u00E8 supportato.
+ InvalidByte = Byte non valido {0} della sequenza UTF-8 a {1} byte.
+ ExpectedByte = \u00C8 previsto il byte {0} della sequenza UTF-8 a {1} byte.
+ InvalidHighSurrogate = I bit per surrogato alto nella sequenza UTF-8 non devono superare 0x10, ma \u00E8 stato trovato 0x{0}.
+- OperationNotSupported = Operazione \"{0}\" non supportata dal processo di lettura {1}.
+- InvalidASCII = Il byte \"{0}\" non fa parte del set di caratteri ASCII (a 7 bit).
++ OperationNotSupported = Operazione "{0}" non supportata dal processo di lettura {1}.
++ InvalidASCII = Il byte "{0}" non fa parte del set di caratteri ASCII (a 7 bit).
+ CharConversionFailure = Un'entit\u00E0 che deve trovarsi in una determinata codifica non pu\u00F2 contenere sequenze non valide in quella codifica.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = Il carattere (Unicode: 0x{0}) non \u00E8 consentito nell''identificativo pubblico.
+ SpaceRequiredBetweenPublicAndSystem = Sono richiesti spazi tra publicId e systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u00C8 richiesto uno spazio dopo \"''.
+- PEReferenceWithinMarkup = Il riferimento di entit\u00E0 di parametro \"%{0};\" non pu\u00F2 essere presente nel markup del set secondario interno del DTD.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u00C8 richiesto uno spazio dopo "''.
++ PEReferenceWithinMarkup = Il riferimento di entit\u00E0 di parametro "%{0};" non pu\u00F2 essere presente nel markup del set secondario interno del DTD.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = Le dichiarazioni di markup contenute o indicate dalla dichiarazione del tipo di documento devono avere un formato corretto.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = La dichiarazione di attributo \"xml:space\" deve essere specificata come tipo enumerato, i cui unici possibili valori sono \"default\" e \"preserve\".
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = La dichiarazione di attributo "xml:space" deve essere specificata come tipo enumerato, i cui unici possibili valori sono "default" e "preserve".
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = \u00C8 richiesto uno spazio dopo \"''.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = \u00C8 richiesto uno spazio dopo il tipo di elemento "{0}" nella dichiarazione del tipo di elemento.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = \u00C8 richiesto uno vincolo dopo il tipo di elemento "{0}" nella dichiarazione del tipo di elemento.
++ ElementDeclUnterminated = La dichiarazione per il tipo di elemento "{0}" deve terminare con ''>''.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un carattere ''('' o un tipo di elemento \u00E8 obbligatorio nella dichiarazione del tipo di elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un carattere '')'' \u00E8 obbligatorio nella dichiarazione del tipo di elemento \"{0}\".
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Un carattere ''('' o un tipo di elemento \u00E8 obbligatorio nella dichiarazione del tipo di elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Un carattere '')'' \u00E8 obbligatorio nella dichiarazione del tipo di elemento "{0}".
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un tipo di elemento \u00E8 obbligatorio nella dichiarazione del tipo di elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un carattere '')'' \u00E8 obbligatorio nella dichiarazione del tipo di elemento \"{0}\".
+- MixedContentUnterminated = Il modello di contenuto misto \"{0}\" deve terminare con \")*\" se i tipi di elementi figlio hanno vincoli.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = Un tipo di elemento \u00E8 obbligatorio nella dichiarazione del tipo di elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Un carattere '')'' \u00E8 obbligatorio nella dichiarazione del tipo di elemento "{0}".
++ MixedContentUnterminated = Il modello di contenuto misto "{0}" deve terminare con ")*" se i tipi di elementi figlio hanno vincoli.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = \u00C8 richiesto uno spazio dopo \"\".
+- IgnoreSectUnterminated = La sezione condizionale esclusa deve terminare con \"]]>\".
++ IncludeSectUnterminated = La sezione condizionale inclusa deve terminare con "]]>".
++ IgnoreSectUnterminated = La sezione condizionale esclusa deve terminare con "]]>".
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = Il nome entit\u00E0 deve seguire immediatamente '%' nel riferimento di entit\u00E0 di parametro.
+- SemicolonRequiredInPEReference = Il riferimento di entit\u00E0 di parametro \"%{0};\" deve terminare con il delimitatore '';''.
++ SemicolonRequiredInPEReference = Il riferimento di entit\u00E0 di parametro "%{0};" deve terminare con il delimitatore '';''.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \u00C8 richiesto uno spazio dopo \"''.
+- MSG_DUPLICATE_ENTITY_DEFINITION = L''entit\u00E0 \"{0}\" \u00E8 stata dichiarata pi\u00F9 volte.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = \u00C8 richiesto uno spazio tra il nome entit\u00E0 "{0}" e la definizione nella dichiarazione dell''entit\u00E0:
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = \u00C8 richiesto uno spazio tra "NDATA" e il nome notazione nella dichiarazione dell''entit\u00E0 "{0}".
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = \u00C8 richiesto uno spazio prima di "NDATA" nella dichiarazione dell''entit\u00E0 "{0}".
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = Il nome notazione \u00E8 obbligatorio dopo "NDATA" nella dichiarazione dell''entit\u00E0 "{0}".
++ EntityDeclUnterminated = La dichiarazione per l''entit\u00E0 "{0}" deve terminare con ''>''.
++ MSG_DUPLICATE_ENTITY_DEFINITION = L''entit\u00E0 "{0}" \u00E8 stata dichiarata pi\u00F9 volte.
+ # 4.2.2 External Entities
+- ExternalIDRequired = La dichiarazione di entit\u00E0 esterna deve iniziare con \"SYSTEM\" o \"PUBLIC\".
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \u00C8 richiesto uno spazio tra \"PUBLIC\" e l'identificativo pubblico.
++ ExternalIDRequired = La dichiarazione di entit\u00E0 esterna deve iniziare con "SYSTEM" o "PUBLIC".
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \u00C8 richiesto uno spazio tra "PUBLIC" e l'identificativo pubblico.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = \u00C8 richiesto uno spazio tra l'identificativo pubblico e quello di sistema.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \u00C8 richiesto uno spazio tra \"SYSTEM\" e l'identificativo di sistema.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = L''identificativo di frammento non deve essere specificato nell''identificativo di sistema \"{0}\".
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \u00C8 richiesto uno spazio tra "SYSTEM" e l'identificativo di sistema.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = L''identificativo di frammento non deve essere specificato nell''identificativo di sistema "{0}".
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = \u00C8 richiesto uno spazio dopo \"''.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = \u00C8 richiesto uno spazio dopo il nome notazione "{0}" nella dichiarazione della notazione.
++ ExternalIDorPublicIDRequired = La dichiarazione per la notazione "{0}" deve includere un identificativo di sistema o pubblico.
++ NotationDeclUnterminated = La dichiarazione per la notazione "{0}" deve terminare con ''>''.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = Il tipo di elemento \"{1}\" \u00E8 gi\u00E0 stato specificato nel modello di contenuto della dichiarazione di elemento \"{0}\".
+- ENTITIESInvalid = Il valore di attributo \"{1}\" di tipo ENTITIES deve corrispondere ai nomi di una o pi\u00F9 entit\u00E0 non analizzate.
+- ENTITYInvalid = Il valore di attributo \"{1}\" di tipo ENTITY deve corrispondere al nome di un''entit\u00E0 non analizzata.
+- IDDefaultTypeInvalid = Nell''attributo ID \"{0}\" deve essere dichiarato un valore predefinito \"#IMPLIED\" o \"#REQUIRED\".
+- IDInvalid = Il valore di attributo \"{0}\" di tipo ID deve essere un nome.
+- IDInvalidWithNamespaces = Il valore di attributo \"{0}\" di tipo ID deve essere un NCName se sono abilitati gli spazi di nomi.
+- IDNotUnique = Il valore di attributo \"{0}\" di tipo ID deve essere univoco all''interno del documento.
+- IDREFInvalid = Il valore di attributo \"{0}\" di tipo IDREF deve essere un nome.
+- IDREFInvalidWithNamespaces = Il valore di attributo \"{0}\" di tipo IDREF deve essere un NCName se sono abilitati gli spazi di nomi.
+- IDREFSInvalid = Il valore di attributo \"{0}\" di tipo IDREFS deve corrispondere a uno o pi\u00F9 nomi.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Il testo di sostituzione dell''entit\u00E0 di parametro \"{0}\" deve includere dichiarazioni nidificate correttamente se il riferimento dell''entit\u00E0 \u00E8 utilizzato come dichiarazione completa.
+- ImproperDeclarationNesting = Il testo di sostituzione dell''entit\u00E0 di parametro \"{0}\" deve includere dichiarazioni nidificate correttamente.
+- ImproperGroupNesting = Il testo di sostituzione dell''entit\u00E0 di parametro \"{0}\" deve includere coppie di parentesi nidificate correttamente.
+- INVALID_PE_IN_CONDITIONAL = Il testo di sostituzione dell''entit\u00E0 di parametro \"{0}\" deve includere tutta la sezione condizionale oppure solo INCLUDE o IGNORE.
+- MSG_ATTRIBUTE_NOT_DECLARED = Dichiarare l''attributo \"{1}\" per il tipo di elemento \"{0}\".
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = L''attributo \"{0}\" con valore \"{1}\" deve avere un valore della lista \"{2}\".
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = Il valore \"{1}\" dell''attributo \"{0}\" non deve essere modificato dalla normalizzazione (in \"{2}\") in un documento standalone.
+- MSG_CONTENT_INCOMPLETE = Il contenuto del tipo di elemento \"{0}\" \u00E8 incompleto. Deve corrispondere a \"{1}\".
+- MSG_CONTENT_INVALID = Il contenuto del tipo di elemento \"{0}\" deve corrispondere a \"{1}\".
+- MSG_CONTENT_INVALID_SPECIFIED = Il contenuto del tipo di elemento \"{0}\" deve corrispondere a \"{1}\". Non sono consentiti elementi figlio di tipo \"{2}\".
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = L''attributo \"{1}\" per il tipo di elemento \"{0}\" ha un valore predefinito e deve essere specificato in un documento standalone.
+- MSG_DUPLICATE_ATTDEF = L''attributo \"{1}\" \u00E8 gi\u00E0 stato dichiarato per il tipo di elemento \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = Il tipo di elemento \"{0}\" non deve essere dichiarato pi\u00F9 volte.
+- MSG_ELEMENT_NOT_DECLARED = Il tipo di elemento \"{0}\" deve essere dichiarato.
++ DuplicateTypeInMixedContent = Il tipo di elemento "{1}" \u00E8 gi\u00E0 stato specificato nel modello di contenuto della dichiarazione di elemento "{0}".
++ ENTITIESInvalid = Il valore di attributo "{1}" di tipo ENTITIES deve corrispondere ai nomi di una o pi\u00F9 entit\u00E0 non analizzate.
++ ENTITYInvalid = Il valore di attributo "{1}" di tipo ENTITY deve corrispondere al nome di un''entit\u00E0 non analizzata.
++ IDDefaultTypeInvalid = Nell''attributo ID "{0}" deve essere dichiarato un valore predefinito "#IMPLIED" o "#REQUIRED".
++ IDInvalid = Il valore di attributo "{0}" di tipo ID deve essere un nome.
++ IDInvalidWithNamespaces = Il valore di attributo "{0}" di tipo ID deve essere un NCName se sono abilitati gli spazi di nomi.
++ IDNotUnique = Il valore di attributo "{0}" di tipo ID deve essere univoco all''interno del documento.
++ IDREFInvalid = Il valore di attributo "{0}" di tipo IDREF deve essere un nome.
++ IDREFInvalidWithNamespaces = Il valore di attributo "{0}" di tipo IDREF deve essere un NCName se sono abilitati gli spazi di nomi.
++ IDREFSInvalid = Il valore di attributo "{0}" di tipo IDREFS deve corrispondere a uno o pi\u00F9 nomi.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Il testo di sostituzione dell''entit\u00E0 di parametro "{0}" deve includere dichiarazioni nidificate correttamente se il riferimento dell''entit\u00E0 \u00E8 utilizzato come dichiarazione completa.
++ ImproperDeclarationNesting = Il testo di sostituzione dell''entit\u00E0 di parametro "{0}" deve includere dichiarazioni nidificate correttamente.
++ ImproperGroupNesting = Il testo di sostituzione dell''entit\u00E0 di parametro "{0}" deve includere coppie di parentesi nidificate correttamente.
++ INVALID_PE_IN_CONDITIONAL = Il testo di sostituzione dell''entit\u00E0 di parametro "{0}" deve includere tutta la sezione condizionale oppure solo INCLUDE o IGNORE.
++ MSG_ATTRIBUTE_NOT_DECLARED = Dichiarare l''attributo "{1}" per il tipo di elemento "{0}".
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = L''attributo "{0}" con valore "{1}" deve avere un valore della lista "{2}".
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = Il valore "{1}" dell''attributo "{0}" non deve essere modificato dalla normalizzazione (in "{2}") in un documento standalone.
++ MSG_CONTENT_INCOMPLETE = Il contenuto del tipo di elemento "{0}" \u00E8 incompleto. Deve corrispondere a "{1}".
++ MSG_CONTENT_INVALID = Il contenuto del tipo di elemento "{0}" deve corrispondere a "{1}".
++ MSG_CONTENT_INVALID_SPECIFIED = Il contenuto del tipo di elemento "{0}" deve corrispondere a "{1}". Non sono consentiti elementi figlio di tipo "{2}".
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = L''attributo "{1}" per il tipo di elemento "{0}" ha un valore predefinito e deve essere specificato in un documento standalone.
++ MSG_DUPLICATE_ATTDEF = L''attributo "{1}" \u00E8 gi\u00E0 stato dichiarato per il tipo di elemento "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = Il tipo di elemento "{0}" non deve essere dichiarato pi\u00F9 volte.
++ MSG_ELEMENT_NOT_DECLARED = Il tipo di elemento "{0}" deve essere dichiarato.
+ MSG_GRAMMAR_NOT_FOUND = Documento non valido: nessuna grammatica trovata.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Un elemento con identificativo \"{0}\" deve esistere nel documento.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Il riferimento all''entit\u00E0 esterna \"{0}\" non \u00E8 consentito in un documento standalone.
+- MSG_FIXED_ATTVALUE_INVALID = L''attributo \"{1}\" con valore \"{2}\" deve avere un valore \"{3}\".
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Il tipo di elemento \"{0}\" ha gi\u00E0 un attributo \"{1}\" di tipo ID. Non \u00E8 consentito un secondo attributo \"{2}\" di tipo ID.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Il tipo di elemento \"{0}\" ha gi\u00E0 un attributo \"{1}\" di tipo NOTATION. Non \u00E8 consentito un secondo attributo \"{2}\" di tipo NOTATION.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notazione \"{1}\" deve essere dichiarata se vi viene fatto riferimento nella lista dei tipi di notazione per l''attributo \"{0}\".
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notazione \"{1}\" deve essere dichiarata se vi viene fatto riferimento dichiarazione di entit\u00E0 non analizzata per \"{0}\".
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Il riferimento all''entit\u00E0 \"{0}\" dichiarata in un''entit\u00E0 esterna analizzata non \u00E8 consentito in un documento standalone.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = L''attributo \"{1}\" \u00E8 obbligatorio e deve essere specificato per il tipo di elemento \"{0}\".
++ MSG_ELEMENT_WITH_ID_REQUIRED = Un elemento con identificativo "{0}" deve esistere nel documento.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Il riferimento all''entit\u00E0 esterna "{0}" non \u00E8 consentito in un documento standalone.
++ MSG_FIXED_ATTVALUE_INVALID = L''attributo "{1}" con valore "{2}" deve avere un valore "{3}".
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Il tipo di elemento "{0}" ha gi\u00E0 un attributo "{1}" di tipo ID. Non \u00E8 consentito un secondo attributo "{2}" di tipo ID.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Il tipo di elemento "{0}" ha gi\u00E0 un attributo "{1}" di tipo NOTATION. Non \u00E8 consentito un secondo attributo "{2}" di tipo NOTATION.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = La notazione "{1}" deve essere dichiarata se vi viene fatto riferimento nella lista dei tipi di notazione per l''attributo "{0}".
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = La notazione "{1}" deve essere dichiarata se vi viene fatto riferimento dichiarazione di entit\u00E0 non analizzata per "{0}".
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Il riferimento all''entit\u00E0 "{0}" dichiarata in un''entit\u00E0 esterna analizzata non \u00E8 consentito in un documento standalone.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = L''attributo "{1}" \u00E8 obbligatorio e deve essere specificato per il tipo di elemento "{0}".
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Non deve esistere nessuno spazio tra gli elementi dichiarati in un'entit\u00E0 esterna analizzata con il contenuto dell'elemento in un documento standalone.
+- NMTOKENInvalid = Il valore di attributo \"{0}\" di tipo NMTOKEN deve essere un token di nome.
+- NMTOKENSInvalid = Il valore di attributo \"{0}\" di tipo NMTOKENS deve corrispondere a uno o pi\u00F9 token di nomi.
+- NoNotationOnEmptyElement = Il tipo di elemento \"{0}\" dichiarato come EMPTY non pu\u00F2 dichiarare l''attributo \"{1}\" di tipo NOTATION.
+- RootElementTypeMustMatchDoctypedecl = L''elemento radice \"{1}\" del documento deve corrispondere alla radice DOCTYPE \"{0}\".
+- UndeclaredElementInContentSpec = Il modello di contenuto dell''elemento \"{0}\" fa riferimento a un elemento \"{1}\" non dichiarato.
+- UniqueNotationName = La dichiarazione per la notazione \"{0}\" non \u00E8 univoca. Un nome non deve essere dichiarato pi\u00F9 volte nella dichiarazione di una notazione.
++ NMTOKENInvalid = Il valore di attributo "{0}" di tipo NMTOKEN deve essere un token di nome.
++ NMTOKENSInvalid = Il valore di attributo "{0}" di tipo NMTOKENS deve corrispondere a uno o pi\u00F9 token di nomi.
++ NoNotationOnEmptyElement = Il tipo di elemento "{0}" dichiarato come EMPTY non pu\u00F2 dichiarare l''attributo "{1}" di tipo NOTATION.
++ RootElementTypeMustMatchDoctypedecl = L''elemento radice "{1}" del documento deve corrispondere alla radice DOCTYPE "{0}".
++ UndeclaredElementInContentSpec = Il modello di contenuto dell''elemento "{0}" fa riferimento a un elemento "{1}" non dichiarato.
++ UniqueNotationName = La dichiarazione per la notazione "{0}" non \u00E8 univoca. Un nome non deve essere dichiarato pi\u00F9 volte nella dichiarazione di una notazione.
+ ENTITYFailedInitializeGrammar = ENTITYDatatype Validator: errore. \u00C8 necessario richiamare il metodo di inizializzazione con un riferimento di grammatica valido. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\" non analizzata.
+- ENTITYNotValid = ENTITY \"{0}\" non valida.
++ ENTITYNotUnparsed = ENTITY "{0}" non analizzata.
++ ENTITYNotValid = ENTITY "{0}" non valida.
+ EmptyList = I valori di tipo ENTITIES, IDREFS e NMTOKENS non possono essere una lista vuota.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = Il riferimento di entit\u00E0 esterna \"&{0};\" non \u00E8 consentito in un valore di attributo.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = Il riferimento di entit\u00E0 esterna "&{0};" non \u00E8 consentito in un valore di attributo.
++ AccessExternalDTD = DTD esterna: lettura della DTD esterna ''{0}'' non riuscita. Accesso ''{1}'' non consentito a causa della limitazione definita dalla propriet\u00E0 accessExternalDTD.
++ AccessExternalEntity = Entit\u00E0 esterna: lettura del documento esterno ''{0}'' non riuscita. Accesso ''{1}'' non consentito a causa della limitazione definita dalla propriet\u00E0 accessExternalDTD.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = L''entit\u00E0 \"{0}\" \u00E8 indicata da un riferimento, ma non \u00E8 dichiarata.
+- ReferenceToUnparsedEntity = Il riferimento di entit\u00E0 non analizzata \"&{0};\" non \u00E8 consentito.
+- RecursiveReference = Riferimento di entit\u00E0 ricorsivo \"{0}\" (percorso riferimento: {1}).
+- RecursiveGeneralReference = Riferimento di entit\u00E0 generale ricorsivo \"&{0};\" (percorso riferimento: {1}).
+- RecursivePEReference = Riferimento di entit\u00E0 parametro ricorsivo \"%{0};\" (percorso riferimento: {1}).
++ EntityNotDeclared = L''entit\u00E0 "{0}" \u00E8 indicata da un riferimento, ma non \u00E8 dichiarata.
++ ReferenceToUnparsedEntity = Il riferimento di entit\u00E0 non analizzata "&{0};" non \u00E8 consentito.
++ RecursiveReference = Riferimento di entit\u00E0 ricorsivo "{0}" (percorso riferimento: {1}).
++ RecursiveGeneralReference = Riferimento di entit\u00E0 generale ricorsivo "&{0};" (percorso riferimento: {1}).
++ RecursivePEReference = Riferimento di entit\u00E0 parametro ricorsivo "%{0};" (percorso riferimento: {1}).
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = La codifica \"{0}\" non \u00E8 supportata.
++ EncodingNotSupported = La codifica "{0}" non \u00E8 supportata.
+ EncodingRequired = Un'entit\u00E0 analizzata non codificata in UTF-8 o UTF-16 deve contenere una dichiarazione di codifica.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = L'elemento o l'attributo non corrisponde alla produzione del QName: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = L''elemento \"{0}\" non pu\u00F2 avere \"xmlns\" come prefisso.
+- ElementPrefixUnbound = Il prefisso \"{0}\" per l''elemento \"{1}\" non \u00E8 associato.
+- AttributePrefixUnbound = Il prefisso \"{2}\" per l''attributo \"{1}\" associato a un tipo di elemento \"{0}\" non \u00E8 associato.
+- EmptyPrefixedAttName = Il valore dell''attributo \"{0}\" non \u00E8 valido. Le associazioni di spazi di nomi con prefisso non possono essere vuote.
+- PrefixDeclared = Il prefisso spazio di nomi \"{0}\" non \u00E8 stato dichiarato.
++ ElementXMLNSPrefix = L''elemento "{0}" non pu\u00F2 avere "xmlns" come prefisso.
++ ElementPrefixUnbound = Il prefisso "{0}" per l''elemento "{1}" non \u00E8 associato.
++ AttributePrefixUnbound = Il prefisso "{2}" per l''attributo "{1}" associato a un tipo di elemento "{0}" non \u00E8 associato.
++ EmptyPrefixedAttName = Il valore dell''attributo "{0}" non \u00E8 valido. Le associazioni di spazi di nomi con prefisso non possono essere vuote.
++ PrefixDeclared = Il prefisso spazio di nomi "{0}" non \u00E8 stato dichiarato.
+ CantBindXMLNS = Il prefisso "xmlns" non pu\u00F2 essere associato esplicitamente a uno spazio di nomi, n\u00E9 lo spazio di nomi per "xmlns" pu\u00F2 essere associato esplicitamente a un prefisso.
+ CantBindXML = Il prefisso "xml" non pu\u00F2 essere associato a uno spazio di nomi diverso da quello al quale appartiene, n\u00E9 lo spazio di nomi per "xml" pu\u00F2 essere associato a un prefisso diverso da "xml".
+- MSG_ATT_DEFAULT_INVALID = defaultValue \"{1}\" dell''attributo \"{0}\" non valido per i vincoli lessicali di questo tipo di attributo.
++ MSG_ATT_DEFAULT_INVALID = defaultValue "{1}" dell''attributo "{0}" non valido per i vincoli lessicali di questo tipo di attributo.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=Il parser ha rilevato pi\u00F9 \"{0}\" espansioni di entit\u00E0 nel documento. Questo \u00E8 il limite imposto dall''applicazione.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: il parser ha rilevato pi\u00F9 "{0}" espansioni di entit\u00E0 nel documento. Questo \u00E8 il limite imposto dal kit JDK.
++ ElementAttributeLimit=JAXP00010002: l''elemento "{0}" contiene pi\u00F9 di "{1}" attributi. "{1}" \u00E8 il limite imposto dal kit JDK.
++ MaxEntitySizeLimit=JAXP00010003: la lunghezza dell''entit\u00E0 "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}".
++ TotalEntitySizeLimit=JAXP00010004: le dimensioni accumulate "{0}" delle entit\u00E0 supera il limite "{1}" definito da "{2}".
++ MaxXMLNameLimit=JAXP00010005: il nome "{0}" supera il limite "{1}" definito da "{2}".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= L''elemento \"{0}\" contiene pi\u00F9 di \"{1}\" attributi. \"{1}\" \u00E8 il limite imposto dall''applicazione.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,26 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +44,14 @@
+ InvalidCharInProlog = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D7\u30ED\u30ED\u30FC\u30B0\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ InvalidCharInXMLDecl = XML\u5BA3\u8A00\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ # 2.4 Character Data and Markup
+- CDEndInContent = \u6587\u5B57\u30B7\u30FC\u30B1\u30F3\u30B9\"]]>\"\u306F\u3001CDATA\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u7D42\u308F\u308A\u3092\u793A\u3059\u76EE\u7684\u4EE5\u5916\u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
++ CDEndInContent = \u6587\u5B57\u30B7\u30FC\u30B1\u30F3\u30B9"]]>"\u306F\u3001CDATA\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u7D42\u308F\u308A\u3092\u793A\u3059\u76EE\u7684\u4EE5\u5916\u3067\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4F7F\u7528\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA\u30BB\u30AF\u30B7\u30E7\u30F3\u306F\"]]>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ CDSectUnterminated = CDATA\u30BB\u30AF\u30B7\u30E7\u30F3\u306F"]]>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML\u5BA3\u8A00\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u5148\u982D\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002
+- EqRequiredInXMLDecl = XML\u5BA3\u8A00\u3067\u306F\u3001\"{0}\"\u306E\u5F8C\u306B'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
+- QuoteRequiredInXMLDecl = XML\u5BA3\u8A00\u306E\"{0}\"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306F\u3001\u5F15\u7528\u7B26\u3067\u56F2\u3093\u3060\u6587\u5B57\u5217\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- XMLDeclUnterminated = XML\u5BA3\u8A00\u306F\"?>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ EqRequiredInXMLDecl = XML\u5BA3\u8A00\u3067\u306F\u3001"{0}"\u306E\u5F8C\u306B'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
++ QuoteRequiredInXMLDecl = XML\u5BA3\u8A00\u306E"{0}"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306F\u3001\u5F15\u7528\u7B26\u3067\u56F2\u3093\u3060\u6587\u5B57\u5217\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ XMLDeclUnterminated = XML\u5BA3\u8A00\u306F"?>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ VersionInfoRequired = XML\u5BA3\u8A00\u306B\u306F\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u5FC5\u8981\u3067\u3059\u3002
+ SpaceRequiredBeforeVersionInXMLDecl = XML\u5BA3\u8A00\u3067\u306F\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u7591\u4F3C\u5C5E\u6027\u306E\u524D\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+ SpaceRequiredBeforeEncodingInXMLDecl = XML\u5BA3\u8A00\u3067\u306F\u3001\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u7591\u4F3C\u5C5E\u6027\u306E\u524D\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+@@ -71,70 +67,71 @@
+ ReferenceIllegalInTrailingMisc=\u5F8C\u7D9A\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u306F\u53C2\u7167\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = \u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5BA3\u8A00\u306E\u5024\u306F\u3001\"{0}\"\u3067\u306F\u306A\u304F\u3001\"yes\"\u307E\u305F\u306F\"no\"\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ SDDeclInvalid = \u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5BA3\u8A00\u306E\u5024\u306F\u3001"{0}"\u3067\u306F\u306A\u304F\u3001"yes"\u307E\u305F\u306F"no"\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ SDDeclNameInvalid = XML\u5BA3\u8A00\u306E\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u540D\u304C\u9593\u9055\u3063\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
+ # 2.12 Language Identification
+- XMLLangInvalid = xml:lang\u5C5E\u6027\u306E\u5024\"{0}\"\u306F\u7121\u52B9\u306A\u8A00\u8A9E\u8B58\u5225\u5B50\u3067\u3059\u3002
++ XMLLangInvalid = xml:lang\u5C5E\u6027\u306E\u5024"{0}"\u306F\u7121\u52B9\u306A\u8A00\u8A9E\u8B58\u5225\u5B50\u3067\u3059\u3002
+ # 3. Logical Structures
+- ETagRequired = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u7D42\u4E86\u30BF\u30B0\"{0}>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ETagRequired = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u7D42\u4E86\u30BF\u30B0"{0}>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5F8C\u306B\u306F\u3001\u5C5E\u6027\u6307\u5B9A\">\"\u307E\u305F\u306F\"/>\"\u304C\u5FC5\u8981\u3067\u3059\u3002
+- EqRequiredInAttribute = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\u540D\"{1}\"\u306E\u5F8C\u306B\u306F\u3001'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
+- OpenQuoteExpected = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\"{1}\"\u306B\u306F\u3001\u958B\u59CB\u5F15\u7528\u7B26\u304C\u5FC5\u8981\u3067\u3059\u3002
+- CloseQuoteExpected = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\"{1}\"\u306B\u306F\u3001\u7D42\u4E86\u5F15\u7528\u7B26\u304C\u5FC5\u8981\u3067\u3059\u3002
+- AttributeNotUnique = \u5C5E\u6027\"{1}\"\u306F\u8981\u7D20\"{0}\"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+- AttributeNSNotUnique = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\"{2}\"\u306B\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u305F\u5C5E\u6027\"{1}\"\u306F\u8981\u7D20\"{0}\"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+- ETagUnterminated = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u7D42\u4E86\u30BF\u30B0\u306F''>''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ElementUnterminated = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5F8C\u306B\u306F\u3001\u5C5E\u6027\u6307\u5B9A">"\u307E\u305F\u306F"/>"\u304C\u5FC5\u8981\u3067\u3059\u3002
++ EqRequiredInAttribute = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\u540D"{1}"\u306E\u5F8C\u306B\u306F\u3001'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
++ OpenQuoteExpected = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027"{1}"\u306B\u306F\u3001\u958B\u59CB\u5F15\u7528\u7B26\u304C\u5FC5\u8981\u3067\u3059\u3002
++ CloseQuoteExpected = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027"{1}"\u306B\u306F\u3001\u7D42\u4E86\u5F15\u7528\u7B26\u304C\u5FC5\u8981\u3067\u3059\u3002
++ AttributeNotUnique = \u5C5E\u6027"{1}"\u306F\u8981\u7D20"{0}"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ AttributeNSNotUnique = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9"{2}"\u306B\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u305F\u5C5E\u6027"{1}"\u306F\u8981\u7D20"{0}"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ ETagUnterminated = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u7D42\u4E86\u30BF\u30B0\u306F''>''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ MarkupNotRecognizedInContent = \u8981\u7D20\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u3001\u6574\u5F62\u5F0F\u306E\u6587\u5B57\u30C7\u30FC\u30BF\u307E\u305F\u306F\u30DE\u30FC\u30AF\u30A2\u30C3\u30D7\u3067\u69CB\u6210\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ DoctypeIllegalInContent = \u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u306FDOCTYPE\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = \u53C2\u7167\u306F';'\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = \u53C2\u7167\u306F\u3001\u540C\u3058\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u306B\u5B8C\u5168\u306B\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ElementEntityMismatch = \u8981\u7D20\"{0}\"\u306F\u3001\u540C\u3058\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u3067\u958B\u59CB\u304A\u3088\u3073\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ElementEntityMismatch = \u8981\u7D20"{0}"\u306F\u3001\u540C\u3058\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u3067\u958B\u59CB\u304A\u3088\u3073\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ MarkupEntityMismatch=XML\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u69CB\u9020\u306F\u3001\u540C\u3058\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u3067\u958B\u59CB\u304A\u3088\u3073\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = \u5C5E\u6027\"{1}\"\u306E\u5024\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{2})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002\u8981\u7D20\u306F\"{0}\"\u3067\u3059\u3002
++ InvalidCharInAttValue = \u5C5E\u6027"{1}"\u306E\u5024\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{2})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002\u8981\u7D20\u306F"{0}"\u3067\u3059\u3002
+ InvalidCharInComment = \u30B3\u30E1\u30F3\u30C8\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ InvalidCharInPI = \u51E6\u7406\u547D\u4EE4\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ InvalidCharInInternalSubset = DTD\u306E\u5185\u90E8\u30B5\u30D6\u30BB\u30C3\u30C8\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ InvalidCharInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306B\u7121\u52B9\u306AXML\u6587\u5B57(Unicode: 0x{0})\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = \u5C5E\u6027\"{1}\"\u306E\u5024\u306E\u5148\u982D\u306B\u306F\u3001\u4E00\u91CD\u5F15\u7528\u7B26\u6587\u5B57\u307E\u305F\u306F\u4E8C\u91CD\u5F15\u7528\u7B26\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
+- LessthanInAttValue = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\"{1}\"\u306E\u5024\u306B\u306F\u3001''<''\u6587\u5B57\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+- AttributeValueUnterminated = \u5C5E\u6027\"{1}\"\u306E\u5024\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u5F15\u7528\u7B26\u6587\u5B57\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ QuoteRequiredInAttValue = \u5C5E\u6027"{1}"\u306E\u5024\u306E\u5148\u982D\u306B\u306F\u3001\u4E00\u91CD\u5F15\u7528\u7B26\u6587\u5B57\u307E\u305F\u306F\u4E8C\u91CD\u5F15\u7528\u7B26\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
++ LessthanInAttValue = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027"{1}"\u306E\u5024\u306B\u306F\u3001''<''\u6587\u5B57\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
++ AttributeValueUnterminated = \u5C5E\u6027"{1}"\u306E\u5024\u306F\u3001\u5BFE\u5FDC\u3059\u308B\u5F15\u7528\u7B26\u6587\u5B57\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 2.5 Comments
+- InvalidCommentStart = \u30B3\u30E1\u30F3\u30C8\u306E\u5148\u982D\u306B\u306F\"\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ InvalidCommentStart = \u30B3\u30E1\u30F3\u30C8\u306E\u5148\u982D\u306B\u306F""\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ COMMENT_NOT_IN_ONE_ENTITY = \u30B3\u30E1\u30F3\u30C8\u304C\u540C\u3058\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3067\u56F2\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ # 2.6 Processing Instructions
+ PITargetRequired = \u51E6\u7406\u547D\u4EE4\u306E\u5148\u982D\u306B\u306F\u30BF\u30FC\u30B2\u30C3\u30C8\u306E\u540D\u524D\u304C\u5FC5\u8981\u3067\u3059\u3002
+ SpaceRequiredInPI = \u51E6\u7406\u547D\u4EE4\u30BF\u30FC\u30B2\u30C3\u30C8\u3068\u30C7\u30FC\u30BF\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+- PIUnterminated = \u51E6\u7406\u547D\u4EE4\u306F\"?>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ReservedPITarget = \"[xX][mM][lL]\"\u3068\u4E00\u81F4\u3059\u308B\u51E6\u7406\u547D\u4EE4\u30BF\u30FC\u30B2\u30C3\u30C8\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ PIUnterminated = \u51E6\u7406\u547D\u4EE4\u306F"?>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ReservedPITarget = "[xX][mM][lL]"\u3068\u4E00\u81F4\u3059\u308B\u51E6\u7406\u547D\u4EE4\u30BF\u30FC\u30B2\u30C3\u30C8\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ PI_NOT_IN_ONE_ENTITY = \u51E6\u7406\u547D\u4EE4\u304C\u540C\u3058\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3067\u56F2\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = \u30D0\u30FC\u30B8\u30E7\u30F3\"{0}\"\u306F\u7121\u52B9\u3067\u3059\u3002
+- VersionNotSupported = XML\u30D0\u30FC\u30B8\u30E7\u30F3\"{0}\"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u306E\u306FXML 1.0\u306E\u307F\u3067\u3059\u3002
+- VersionNotSupported11 = XML\u30D0\u30FC\u30B8\u30E7\u30F3\"{0}\"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u306E\u306FXML 1.0\u304A\u3088\u3073XML 1.1\u306E\u307F\u3067\u3059\u3002
++ VersionInfoInvalid = \u30D0\u30FC\u30B8\u30E7\u30F3"{0}"\u306F\u7121\u52B9\u3067\u3059\u3002
++ VersionNotSupported = XML\u30D0\u30FC\u30B8\u30E7\u30F3"{0}"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u306E\u306FXML 1.0\u306E\u307F\u3067\u3059\u3002
++ VersionNotSupported11 = XML\u30D0\u30FC\u30B8\u30E7\u30F3"{0}"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u306E\u306FXML 1.0\u304A\u3088\u3073XML 1.1\u306E\u307F\u3067\u3059\u3002
+ VersionMismatch= \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306B\u306F\u3001\u5F8C\u7D9A\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u5225\u306E\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = \u6587\u5B57\u53C2\u7167\u3067\u306F\u300110\u9032\u8868\u73FE\u306F\"\"\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- HexdigitRequiredInCharRef = \u6587\u5B57\u53C2\u7167\u3067\u306F\u300116\u9032\u8868\u73FE\u306F\"\"\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ DigitRequiredInCharRef = \u6587\u5B57\u53C2\u7167\u3067\u306F\u300110\u9032\u8868\u73FE\u306F""\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ HexdigitRequiredInCharRef = \u6587\u5B57\u53C2\u7167\u3067\u306F\u300116\u9032\u8868\u73FE\u306F""\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ SemicolonRequiredInCharRef = \u6587\u5B57\u53C2\u7167\u306F';'\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- InvalidCharRef = \u6587\u5B57\u53C2\u7167\"{0}\"\u306F\u7121\u52B9\u306AXML\u6587\u5B57\u3067\u3059\u3002
++ InvalidCharRef = \u6587\u5B57\u53C2\u7167"{0}"\u306F\u7121\u52B9\u306AXML\u6587\u5B57\u3067\u3059\u3002
+ NameRequiredInReference = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u3067\u306F\u3001\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u540D\u306F'&'\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- SemicolonRequiredInReference = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u3078\u306E\u53C2\u7167\u306F'';''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ SemicolonRequiredInReference = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u3078\u306E\u53C2\u7167\u306F'';''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306F\u3001\u5916\u90E8\u306E\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u5148\u982D\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002
+- EqRequiredInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u3067\u306F\u3001\"{0}\"\u306E\u5F8C\u306B'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
+- QuoteRequiredInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306E\"{0}\"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306F\u3001\u5F15\u7528\u7B26\u3067\u56F2\u3093\u3060\u6587\u5B57\u5217\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- CloseQuoteMissingInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306E\"{0}\"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306B\u7D42\u4E86\u5F15\u7528\u7B26\u304C\u3042\u308A\u307E\u305B\u3093\u3002
++ EqRequiredInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u3067\u306F\u3001"{0}"\u306E\u5F8C\u306B'' = ''\u6587\u5B57\u304C\u5FC5\u8981\u3067\u3059\u3002
++ QuoteRequiredInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306E"{0}"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306F\u3001\u5F15\u7528\u7B26\u3067\u56F2\u3093\u3060\u6587\u5B57\u5217\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ CloseQuoteMissingInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306E"{0}"\u306E\u5F8C\u306B\u7D9A\u304F\u5024\u306B\u7D42\u4E86\u5F15\u7528\u7B26\u304C\u3042\u308A\u307E\u305B\u3093\u3002
+ SpaceRequiredBeforeVersionInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u3067\u306F\u3001\u30D0\u30FC\u30B8\u30E7\u30F3\u7591\u4F3C\u5C5E\u6027\u306E\u524D\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+ SpaceRequiredBeforeEncodingInTextDecl = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u3067\u306F\u3001\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u7591\u4F3C\u5C5E\u6027\u306E\u524D\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+- TextDeclUnterminated = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306F\"?>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ TextDeclUnterminated = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306F"?>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ EncodingDeclRequired = \u30C6\u30AD\u30B9\u30C8\u5BA3\u8A00\u306B\u306F\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059\u3002
+ NoMorePseudoAttributes = \u3053\u308C\u4EE5\u4E0A\u306E\u7591\u4F3C\u5C5E\u6027\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
+ MorePseudoAttributes = \u7591\u4F3C\u5C5E\u6027\u304C\u3055\u3089\u306B\u5FC5\u8981\u3067\u3059\u3002
+@@ -143,13 +140,13 @@
+ CommentNotInOneEntity = \u30B3\u30E1\u30F3\u30C8\u306F\u3001\u540C\u3058\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u306B\u5B8C\u5168\u306B\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ PINotInOneEntity = \u51E6\u7406\u547D\u4EE4\u306F\u3001\u540C\u3058\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5185\u306B\u5B8C\u5168\u306B\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D\"{0}\"\u304C\u7121\u52B9\u3067\u3059\u3002
+- EncodingByteOrderUnsupported = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\"{0}\"\u306B\u6307\u5B9A\u3055\u308C\u305F\u30D0\u30A4\u30C8\u9806\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ EncodingDeclInvalid = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D"{0}"\u304C\u7121\u52B9\u3067\u3059\u3002
++ EncodingByteOrderUnsupported = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0"{0}"\u306B\u6307\u5B9A\u3055\u308C\u305F\u30D0\u30A4\u30C8\u9806\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ InvalidByte = {1}\u30D0\u30A4\u30C8\u306EUTF-8\u30B7\u30FC\u30B1\u30F3\u30B9\u306E\u30D0\u30A4\u30C8{0}\u304C\u7121\u52B9\u3067\u3059\u3002
+ ExpectedByte = {1}\u30D0\u30A4\u30C8\u306EUTF-8\u30B7\u30FC\u30B1\u30F3\u30B9\u306E\u30D0\u30A4\u30C8{0}\u304C\u5FC5\u8981\u3067\u3059\u3002
+ InvalidHighSurrogate = UTF-8\u30B7\u30FC\u30B1\u30F3\u30B9\u306E\u4E0A\u4F4D\u30B5\u30ED\u30B2\u30FC\u30C8\u30FB\u30D3\u30C3\u30C8\u306E\u4E0A\u9650\u306F0x10\u3067\u3059\u304C\u30010x{0}\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002
+- OperationNotSupported = \u64CD\u4F5C\"{0}\"\u306F{1}\u30EA\u30FC\u30C0\u30FC\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- InvalidASCII = \u30D0\u30A4\u30C8\"{0}\"\u306F\u3001(7\u30D3\u30C3\u30C8) ASCII\u30AD\u30E3\u30E9\u30AF\u30BF\u30FB\u30BB\u30C3\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
++ OperationNotSupported = \u64CD\u4F5C"{0}"\u306F{1}\u30EA\u30FC\u30C0\u30FC\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ InvalidASCII = \u30D0\u30A4\u30C8"{0}"\u306F\u3001(7\u30D3\u30C3\u30C8) ASCII\u30AD\u30E3\u30E9\u30AF\u30BF\u30FB\u30BB\u30C3\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+ CharConversionFailure = \u7279\u5B9A\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u3042\u308B\u3068\u78BA\u5B9A\u3055\u308C\u305F\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306B\u306F\u3001\u305D\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u4E0D\u6B63\u306A\u30B7\u30FC\u30B1\u30F3\u30B9\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+
+ # DTD Messages
+@@ -169,150 +166,150 @@
+ PubidCharIllegal = \u516C\u958B\u8B58\u5225\u5B50\u3067\u306F\u3001\u6587\u5B57(Unicode: 0x{0})\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
+ SpaceRequiredBetweenPublicAndSystem = \u516C\u958B\u8B58\u5225\u5B50\u3068\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30BF\u30A4\u30D7\u5BA3\u8A00\u3067\u306F\u3001\"''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- PEReferenceWithinMarkup = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"%{0};\"\u306F\u3001DTD\u306E\u5185\u90E8\u30B5\u30D6\u30BB\u30C3\u30C8\u306E\u30DE\u30FC\u30AF\u30A2\u30C3\u30D7\u5185\u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30BF\u30A4\u30D7\u5BA3\u8A00\u3067\u306F\u3001"''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ PEReferenceWithinMarkup = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"%{0};"\u306F\u3001DTD\u306E\u5185\u90E8\u30B5\u30D6\u30BB\u30C3\u30C8\u306E\u30DE\u30FC\u30AF\u30A2\u30C3\u30D7\u5185\u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30BF\u30A4\u30D7\u5BA3\u8A00\u306B\u542B\u307E\u308C\u308B\u304B\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30BF\u30A4\u30D7\u5BA3\u8A00\u304C\u6307\u3057\u3066\u3044\u308B\u30DE\u30FC\u30AF\u30A2\u30C3\u30D7\u5BA3\u8A00\u306F\u6574\u5F62\u5F0F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = \"xml:space\"\u306E\u5C5E\u6027\u5BA3\u8A00\u306F\u3001\"default\"\u304A\u3088\u3073\"preserve\"\u306E\u307F\u3092\u4F7F\u7528\u3067\u304D\u308B\u5217\u6319\u30BF\u30A4\u30D7\u3068\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = "xml:space"\u306E\u5C5E\u6027\u5BA3\u8A00\u306F\u3001"default"\u304A\u3088\u3073"preserve"\u306E\u307F\u3092\u4F7F\u7528\u3067\u304D\u308B\u5217\u6319\u30BF\u30A4\u30D7\u3068\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = \u8981\u7D20\u30BF\u30A4\u30D7\u5BA3\u8A00\u3067\u306F\u3001\"''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = \u8981\u7D20\u30BF\u30A4\u30D7\u5BA3\u8A00\u3067\u306F\u3001\u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5F8C\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = \u8981\u7D20\u30BF\u30A4\u30D7\u5BA3\u8A00\u3067\u306F\u3001\u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5F8C\u306B\u5236\u7D04\u304C\u5FC5\u8981\u3067\u3059\u3002
++ ElementDeclUnterminated = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5BA3\u8A00\u306F''>''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5BA3\u8A00\u306B\u306F''(''\u6587\u5B57\u307E\u305F\u306F\u8981\u7D20\u30BF\u30A4\u30D7\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5BA3\u8A00\u306B\u306F'')''\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5BA3\u8A00\u306B\u306F''(''\u6587\u5B57\u307E\u305F\u306F\u8981\u7D20\u30BF\u30A4\u30D7\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5BA3\u8A00\u306B\u306F'')''\u304C\u5FC5\u8981\u3067\u3059\u3002
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5BA3\u8A00\u306B\u306F\u8981\u7D20\u30BF\u30A4\u30D7\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5BA3\u8A00\u306B\u306F'')''\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MixedContentUnterminated = \u5B50\u8981\u7D20\u306E\u30BF\u30A4\u30D7\u304C\u5236\u7D04\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u6DF7\u5408\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB\"{0}\"\u306F\")*\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5BA3\u8A00\u306B\u306F\u8981\u7D20\u30BF\u30A4\u30D7\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5BA3\u8A00\u306B\u306F'')''\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MixedContentUnterminated = \u5B50\u8981\u7D20\u306E\u30BF\u30A4\u30D7\u304C\u5236\u7D04\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u6DF7\u5408\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB"{0}"\u306F")*"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = \u5C5E\u6027\u30EA\u30B9\u30C8\u5BA3\u8A00\u3067\u306F\u3001\"\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IgnoreSectUnterminated = \u9664\u5916\u6761\u4EF6\u4ED8\u304D\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u6700\u5F8C\u306F\"]]>\"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IncludeSectUnterminated = \u5305\u542B\u6761\u4EF6\u4ED8\u304D\u30BB\u30AF\u30B7\u30E7\u30F3\u306F"]]>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IgnoreSectUnterminated = \u9664\u5916\u6761\u4EF6\u4ED8\u304D\u30BB\u30AF\u30B7\u30E7\u30F3\u306E\u6700\u5F8C\u306F"]]>"\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u3067\u306F\u3001\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u540D\u306F'%'\u306E\u76F4\u5F8C\u306B\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- SemicolonRequiredInPEReference = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"%{0};\"\u306F'';''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ SemicolonRequiredInPEReference = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"%{0};"\u306F'';''\u30C7\u30EA\u30DF\u30BF\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u3067\u306F\u3001\"''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_DUPLICATE_ENTITY_DEFINITION = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u304C\u8907\u6570\u56DE\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u3067\u306F\u3001\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u540D"{0}"\u3068\u5B9A\u7FA9\u306E\u9593\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u5BA3\u8A00\u3067\u306F\u3001"NDATA"\u3068\u8868\u8A18\u540D\u306E\u9593\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u5BA3\u8A00\u3067\u306F\u3001"NDATA"\u306E\u524D\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u5BA3\u8A00\u3067\u306F\u3001"NDATA"\u306E\u5F8C\u306B\u8868\u8A18\u540D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ EntityDeclUnterminated = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u5BA3\u8A00\u306F''>''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_DUPLICATE_ENTITY_DEFINITION = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u304C\u8907\u6570\u56DE\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+ # 4.2.2 External Entities
+- ExternalIDRequired = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u306E\u5148\u982D\u306B\u306F\"SYSTEM\"\u307E\u305F\u306F\"PUBLIC\"\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \"PUBLIC\"\u3068\u516C\u958B\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ ExternalIDRequired = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u306E\u5148\u982D\u306B\u306F"SYSTEM"\u307E\u305F\u306F"PUBLIC"\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = "PUBLIC"\u3068\u516C\u958B\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = \u516C\u958B\u8B58\u5225\u5B50\u3068\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \"SYSTEM\"\u3068\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_URI_FRAGMENT_IN_SYSTEMID = \u30D5\u30E9\u30B0\u30E1\u30F3\u30C8\u8B58\u5225\u5B50\u306F\u3001\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\"{0}\"\u306E\u4E00\u90E8\u3068\u3057\u3066\u6307\u5B9A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = "SYSTEM"\u3068\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\u306E\u9593\u306B\u306F\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_URI_FRAGMENT_IN_SYSTEMID = \u30D5\u30E9\u30B0\u30E1\u30F3\u30C8\u8B58\u5225\u5B50\u306F\u3001\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50"{0}"\u306E\u4E00\u90E8\u3068\u3057\u3066\u6307\u5B9A\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = \u8868\u8A18\u6CD5\u5BA3\u8A00\u3067\u306F\u3001\"''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = \u8868\u8A18\u6CD5\u5BA3\u8A00\u3067\u306F\u3001\u8868\u8A18\u540D"{0}"\u306E\u5F8C\u306B\u7A7A\u767D\u304C\u5FC5\u8981\u3067\u3059\u3002
++ ExternalIDorPublicIDRequired = \u8868\u8A18\u6CD5"{0}"\u306E\u5BA3\u8A00\u306B\u306F\u3001\u30B7\u30B9\u30C6\u30E0\u8B58\u5225\u5B50\u307E\u305F\u306F\u516C\u958B\u8B58\u5225\u5B50\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ NotationDeclUnterminated = \u8868\u8A18\u6CD5"{0}"\u306E\u5BA3\u8A00\u306F''>''\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+
+ # Validation messages
+- DuplicateTypeInMixedContent = \u8981\u7D20\u30BF\u30A4\u30D7\"{1}\"\u306F\u3001\u8981\u7D20\u5BA3\u8A00\"{0}\"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB\u3067\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+- ENTITIESInvalid = \u30BF\u30A4\u30D7ENTITIES\u306E\u5C5E\u6027\u5024\"{1}\"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ENTITYInvalid = \u30BF\u30A4\u30D7ENTITY\u306E\u5C5E\u6027\u5024\"{1}\"\u306F\u3001\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDDefaultTypeInvalid = ID\u5C5E\u6027\"{0}\"\u306B\u306F\u3001\"#IMPLIED\"\u307E\u305F\u306F\"#REQUIRED\"\u306E\u5BA3\u8A00\u6E08\u30C7\u30D5\u30A9\u30EB\u30C8\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDInvalid = \u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u3001\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDInvalidWithNamespaces = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5834\u5408\u3001\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024\"{0}\"\u306FNCName\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDNotUnique = \u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDREFInvalid = \u30BF\u30A4\u30D7IDREF\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u3001\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDREFInvalidWithNamespaces = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5834\u5408\u3001\u30BF\u30A4\u30D7IDREF\u306E\u5C5E\u6027\u5024\"{0}\"\u306FNCName\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- IDREFSInvalid = \u30BF\u30A4\u30D7IDREFS\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u304C\u5B8C\u5168\u306A\u5BA3\u8A00\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u5BA3\u8A00\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ImproperDeclarationNesting = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u5BA3\u8A00\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- ImproperGroupNesting = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u4E38\u30AB\u30C3\u30B3\u306E\u30DA\u30A2\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- INVALID_PE_IN_CONDITIONAL = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u6761\u4EF6\u4ED8\u304D\u30BB\u30AF\u30B7\u30E7\u30F3\u5168\u4F53\u304B\u3001INCLUDE\u307E\u305F\u306FIGNORE\u306E\u307F\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_ATTRIBUTE_NOT_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u5BFE\u3057\u3066\u5C5E\u6027\"{1}\"\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u5024\"{1}\"\u3092\u6301\u3064\u5C5E\u6027\"{0}\"\u306B\u306F\u3001\u30EA\u30B9\u30C8\"{2}\"\u304B\u3089\u306E\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5C5E\u6027\"{0}\"\u306E\u5024\"{1}\"\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u6B63\u898F\u5316\u306B\u3088\u3063\u3066(\"{2}\"\u306B)\u5909\u66F4\u3055\u308C\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_CONTENT_INCOMPLETE = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u4E0D\u5B8C\u5168\u3067\u3059\u3002\"{1}\"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_CONTENT_INVALID = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\"{1}\"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_CONTENT_INVALID_SPECIFIED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\"{1}\"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7\"{2}\"\u306E\u5B50\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306E\u5C5E\u6027\"{1}\"\u306F\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u6301\u3061\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_DUPLICATE_ATTDEF = \u5C5E\u6027\"{1}\"\u306F\u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+- MSG_ELEMENT_ALREADY_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306F\u8907\u6570\u56DE\u5BA3\u8A00\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
+- MSG_ELEMENT_NOT_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ DuplicateTypeInMixedContent = \u8981\u7D20\u30BF\u30A4\u30D7"{1}"\u306F\u3001\u8981\u7D20\u5BA3\u8A00"{0}"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB\u3067\u3059\u3067\u306B\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ ENTITIESInvalid = \u30BF\u30A4\u30D7ENTITIES\u306E\u5C5E\u6027\u5024"{1}"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ENTITYInvalid = \u30BF\u30A4\u30D7ENTITY\u306E\u5C5E\u6027\u5024"{1}"\u306F\u3001\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDDefaultTypeInvalid = ID\u5C5E\u6027"{0}"\u306B\u306F\u3001"#IMPLIED"\u307E\u305F\u306F"#REQUIRED"\u306E\u5BA3\u8A00\u6E08\u30C7\u30D5\u30A9\u30EB\u30C8\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDInvalid = \u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024"{0}"\u306F\u3001\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDInvalidWithNamespaces = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5834\u5408\u3001\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024"{0}"\u306FNCName\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDNotUnique = \u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\u5024"{0}"\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDREFInvalid = \u30BF\u30A4\u30D7IDREF\u306E\u5C5E\u6027\u5024"{0}"\u306F\u3001\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDREFInvalidWithNamespaces = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u304C\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u308B\u5834\u5408\u3001\u30BF\u30A4\u30D7IDREF\u306E\u5C5E\u6027\u5024"{0}"\u306FNCName\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ IDREFSInvalid = \u30BF\u30A4\u30D7IDREFS\u306E\u5C5E\u6027\u5024"{0}"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u304C\u5B8C\u5168\u306A\u5BA3\u8A00\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u5BA3\u8A00\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ImproperDeclarationNesting = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u5BA3\u8A00\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ ImproperGroupNesting = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u9069\u5207\u306B\u30CD\u30B9\u30C8\u3055\u308C\u305F\u4E38\u30AB\u30C3\u30B3\u306E\u30DA\u30A2\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ INVALID_PE_IN_CONDITIONAL = \u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u7F6E\u63DB\u30C6\u30AD\u30B9\u30C8\u306B\u306F\u3001\u6761\u4EF6\u4ED8\u304D\u30BB\u30AF\u30B7\u30E7\u30F3\u5168\u4F53\u304B\u3001INCLUDE\u307E\u305F\u306FIGNORE\u306E\u307F\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_ATTRIBUTE_NOT_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u5BFE\u3057\u3066\u5C5E\u6027"{1}"\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u5024"{1}"\u3092\u6301\u3064\u5C5E\u6027"{0}"\u306B\u306F\u3001\u30EA\u30B9\u30C8"{2}"\u304B\u3089\u306E\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5C5E\u6027"{0}"\u306E\u5024"{1}"\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u6B63\u898F\u5316\u306B\u3088\u3063\u3066("{2}"\u306B)\u5909\u66F4\u3055\u308C\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_CONTENT_INCOMPLETE = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u304C\u4E0D\u5B8C\u5168\u3067\u3059\u3002"{1}"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_CONTENT_INVALID = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F"{1}"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_CONTENT_INVALID_SPECIFIED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u306F"{1}"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7"{2}"\u306E\u5B50\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306E\u5C5E\u6027"{1}"\u306F\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u6301\u3061\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_DUPLICATE_ATTDEF = \u5C5E\u6027"{1}"\u306F\u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u5BFE\u3057\u3066\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ MSG_ELEMENT_ALREADY_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306F\u8907\u6570\u56DE\u5BA3\u8A00\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
++ MSG_ELEMENT_NOT_DECLARED = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ MSG_GRAMMAR_NOT_FOUND = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u7121\u52B9\u3067\u3059\u3002\u69CB\u6587\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+- MSG_ELEMENT_WITH_ID_REQUIRED = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u8B58\u5225\u5B50\"{0}\"\u3092\u6301\u3064\u8981\u7D20\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u3078\u306E\u53C2\u7167\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- MSG_FIXED_ATTVALUE_INVALID = \u5024\"{2}\"\u3092\u6301\u3064\u5C5E\u6027\"{1}\"\u306B\u306F\u3001\"{3}\"\u306E\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u306F\u3001\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\"{1}\"\u304C\u3059\u3067\u306B\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027\"{2}\"\u3092\u3082\u30461\u3064\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u306F\u3001\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027\"{1}\"\u304C\u3059\u3067\u306B\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027\"{2}\"\u3092\u3082\u30461\u3064\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u5C5E\u6027\"{0}\"\u306E\u8868\u8A18\u6CD5\u30BF\u30A4\u30D7\u30FB\u30EA\u30B9\u30C8\u3067\u53C2\u7167\u3055\u308C\u308B\u5834\u5408\u3001\u8868\u8A18\u6CD5\"{1}\"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \"{0}\"\u306E\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u3067\u53C2\u7167\u3055\u308C\u308B\u5834\u5408\u3001\u8868\u8A18\u6CD5\"{1}\"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5916\u90E8\u306E\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3067\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u3078\u306E\u53C2\u7167\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u5C5E\u6027\"{1}\"\u304C\u5FC5\u8981\u3067\u3059\u3002\u3053\u306E\u5C5E\u6027\u306F\u3001\u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u5BFE\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_ELEMENT_WITH_ID_REQUIRED = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u8B58\u5225\u5B50"{0}"\u3092\u6301\u3064\u8981\u7D20\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u3078\u306E\u53C2\u7167\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ MSG_FIXED_ATTVALUE_INVALID = \u5024"{2}"\u3092\u6301\u3064\u5C5E\u6027"{1}"\u306B\u306F\u3001"{3}"\u306E\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u306F\u3001\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027"{1}"\u304C\u3059\u3067\u306B\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7ID\u306E\u5C5E\u6027"{2}"\u3092\u3082\u30461\u3064\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u306F\u3001\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027"{1}"\u304C\u3059\u3067\u306B\u3042\u308A\u307E\u3059\u3002\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027"{2}"\u3092\u3082\u30461\u3064\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u5C5E\u6027"{0}"\u306E\u8868\u8A18\u6CD5\u30BF\u30A4\u30D7\u30FB\u30EA\u30B9\u30C8\u3067\u53C2\u7167\u3055\u308C\u308B\u5834\u5408\u3001\u8868\u8A18\u6CD5"{1}"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = "{0}"\u306E\u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u5BA3\u8A00\u3067\u53C2\u7167\u3055\u308C\u308B\u5834\u5408\u3001\u8868\u8A18\u6CD5"{1}"\u3092\u5BA3\u8A00\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5916\u90E8\u306E\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3067\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u3078\u306E\u53C2\u7167\u306F\u3001\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u5C5E\u6027"{1}"\u304C\u5FC5\u8981\u3067\u3059\u3002\u3053\u306E\u5C5E\u6027\u306F\u3001\u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u5BFE\u3057\u3066\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3067\u306F\u3001\u8981\u7D20\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u6301\u3064\u5916\u90E8\u306E\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u3067\u5BA3\u8A00\u3055\u308C\u308B\u8981\u7D20\u9593\u306B\u7A7A\u767D\u306F\u4E0D\u8981\u3067\u3059\u3002
+- NMTOKENInvalid = \u30BF\u30A4\u30D7NMTOKEN\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u3001\u540D\u524D\u30C8\u30FC\u30AF\u30F3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- NMTOKENSInvalid = \u30BF\u30A4\u30D7NMTOKENS\u306E\u5C5E\u6027\u5024\"{0}\"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u30C8\u30FC\u30AF\u30F3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- NoNotationOnEmptyElement = EMPTY\u3068\u5BA3\u8A00\u3055\u308C\u305F\u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u3067\u306F\u3001\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027\"{1}\"\u3092\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002
+- RootElementTypeMustMatchDoctypedecl = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30EB\u30FC\u30C8\u8981\u7D20\"{1}\"\u306FDOCTYPE\u30EB\u30FC\u30C8\"{0}\"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+- UndeclaredElementInContentSpec = \u8981\u7D20\"{0}\"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB\u3067\u672A\u5BA3\u8A00\u306E\u8981\u7D20\"{1}\"\u304C\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+- UniqueNotationName = \u8868\u8A18\u6CD5\"{0}\"\u306E\u5BA3\u8A00\u304C\u4E00\u610F\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u540C\u3058\u540D\u524D\u3092\u8907\u6570\u306E\u8868\u8A18\u6CD5\u5BA3\u8A00\u3067\u5BA3\u8A00\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
++ NMTOKENInvalid = \u30BF\u30A4\u30D7NMTOKEN\u306E\u5C5E\u6027\u5024"{0}"\u306F\u3001\u540D\u524D\u30C8\u30FC\u30AF\u30F3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ NMTOKENSInvalid = \u30BF\u30A4\u30D7NMTOKENS\u306E\u5C5E\u6027\u5024"{0}"\u306F\u30011\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u30C8\u30FC\u30AF\u30F3\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ NoNotationOnEmptyElement = EMPTY\u3068\u5BA3\u8A00\u3055\u308C\u305F\u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u3067\u306F\u3001\u30BF\u30A4\u30D7NOTATION\u306E\u5C5E\u6027"{1}"\u3092\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002
++ RootElementTypeMustMatchDoctypedecl = \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30EB\u30FC\u30C8\u8981\u7D20"{1}"\u306FDOCTYPE\u30EB\u30FC\u30C8"{0}"\u3068\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
++ UndeclaredElementInContentSpec = \u8981\u7D20"{0}"\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u30FB\u30E2\u30C7\u30EB\u3067\u672A\u5BA3\u8A00\u306E\u8981\u7D20"{1}"\u304C\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002
++ UniqueNotationName = \u8868\u8A18\u6CD5"{0}"\u306E\u5BA3\u8A00\u304C\u4E00\u610F\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u540C\u3058\u540D\u524D\u3092\u8907\u6570\u306E\u8868\u8A18\u6CD5\u5BA3\u8A00\u3067\u5BA3\u8A00\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
+ ENTITYFailedInitializeGrammar = ENTITYDatatype\u30D0\u30EA\u30C7\u30FC\u30BF: \u6709\u52B9\u306A\u69CB\u6587\u53C2\u7167\u306B\u3088\u308B\u521D\u671F\u5316\u30E1\u30BD\u30C3\u30C9\u306E\u547C\u51FA\u3057\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 \t
+- ENTITYNotUnparsed = ENTITY \"{0}\"\u306F\u672A\u89E3\u6790\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+- ENTITYNotValid = ENTITY \"{0}\"\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
++ ENTITYNotUnparsed = ENTITY "{0}"\u306F\u672A\u89E3\u6790\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
++ ENTITYNotValid = ENTITY "{0}"\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+ EmptyList = \u30BF\u30A4\u30D7ENTITIES\u3001IDREFS\u304A\u3088\u3073NMTOKENS\u306E\u5024\u306F\u7A7A\u306E\u30EA\u30B9\u30C8\u306B\u3067\u304D\u307E\u305B\u3093\u3002
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"&{0};\"\u306F\u3001\u5C5E\u6027\u5024\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"&{0};"\u306F\u3001\u5C5E\u6027\u5024\u3067\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ AccessExternalDTD = \u5916\u90E8DTD: accessExternalDTD\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650\u306B\u3088\u308A''{1}''\u30A2\u30AF\u30BB\u30B9\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u5916\u90E8DTD ''{0}''\u306E\u8AAD\u53D6\u308A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
++ AccessExternalEntity = \u5916\u90E8\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3: accessExternalDTD\u30D7\u30ED\u30D1\u30C6\u30A3\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650\u306B\u3088\u308A''{1}''\u30A2\u30AF\u30BB\u30B9\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u5916\u90E8\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8''{0}''\u306E\u8AAD\u53D6\u308A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\"{0}\"\u304C\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- ReferenceToUnparsedEntity = \u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"&{0};\"\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- RecursiveReference = \u518D\u5E30\u7684\u306A\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"{0}\"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
+- RecursiveGeneralReference = \u518D\u5E30\u7684\u306A\u4E00\u822C\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"&{0};\"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
+- RecursivePEReference = \u518D\u5E30\u7684\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\"%{0};\"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
++ EntityNotDeclared = \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u304C\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ ReferenceToUnparsedEntity = \u672A\u89E3\u6790\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"&{0};"\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ RecursiveReference = \u518D\u5E30\u7684\u306A\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"{0}"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
++ RecursiveGeneralReference = \u518D\u5E30\u7684\u306A\u4E00\u822C\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"&{0};"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
++ RecursivePEReference = \u518D\u5E30\u7684\u306A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167"%{0};"\u3067\u3059\u3002(\u53C2\u7167\u30D1\u30B9: {1})\u3001
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\"{0}\"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ EncodingNotSupported = \u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0"{0}"\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ EncodingRequired = \u30A8\u30F3\u30B3\u30FC\u30C9\u304CUTF-8\u3068UTF-16\u306E\u3044\u305A\u308C\u3067\u3082\u306A\u3044\u89E3\u6790\u6E08\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306B\u306F\u3001\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u5BA3\u8A00\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = \u8981\u7D20\u307E\u305F\u306F\u5C5E\u6027\u304CQName\u751F\u6210\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093: QName::=(NCName':')?NCName\u3002
+- ElementXMLNSPrefix = \u8981\u7D20\"{0}\"\u306E\u63A5\u982D\u8F9E\u3068\u3057\u3066\"xmlns\"\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
+- ElementPrefixUnbound = \u8981\u7D20\"{1}\"\u306E\u63A5\u982D\u8F9E\"{0}\"\u304C\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- AttributePrefixUnbound = \u8981\u7D20\u30BF\u30A4\u30D7\"{0}\"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027\"{1}\"\u306E\u63A5\u982D\u8F9E\"{2}\"\u304C\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+- EmptyPrefixedAttName = \u5C5E\u6027\"{0}\"\u306E\u5024\u304C\u7121\u52B9\u3067\u3059\u3002\u63A5\u982D\u8F9E\u306E\u4ED8\u3044\u305F\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u30FB\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002
+- PrefixDeclared = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u306E\u63A5\u982D\u8F9E\"{0}\"\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ ElementXMLNSPrefix = \u8981\u7D20"{0}"\u306E\u63A5\u982D\u8F9E\u3068\u3057\u3066"xmlns"\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002
++ ElementPrefixUnbound = \u8981\u7D20"{1}"\u306E\u63A5\u982D\u8F9E"{0}"\u304C\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ AttributePrefixUnbound = \u8981\u7D20\u30BF\u30A4\u30D7"{0}"\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u308B\u5C5E\u6027"{1}"\u306E\u63A5\u982D\u8F9E"{2}"\u304C\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
++ EmptyPrefixedAttName = \u5C5E\u6027"{0}"\u306E\u5024\u304C\u7121\u52B9\u3067\u3059\u3002\u63A5\u982D\u8F9E\u306E\u4ED8\u3044\u305F\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u30FB\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093\u3002
++ PrefixDeclared = \u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u306E\u63A5\u982D\u8F9E"{0}"\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+ CantBindXMLNS = \u63A5\u982D\u8F9E"xmlns"\u306F\u3001\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u306B\u660E\u793A\u7684\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3002\u307E\u305F\u3001"xmlns"\u306E\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u3082\u3001\u63A5\u982D\u8F9E\u306B\u660E\u793A\u7684\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3002
+ CantBindXML = \u63A5\u982D\u8F9E"xml"\u306F\u3001\u901A\u5E38\u306E\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u4EE5\u5916\u306E\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3002\u307E\u305F\u3001"xml"\u306E\u30CD\u30FC\u30E0\u30B9\u30DA\u30FC\u30B9\u3082\u3001"xml"\u4EE5\u5916\u306E\u63A5\u982D\u8F9E\u306B\u30D0\u30A4\u30F3\u30C9\u3067\u304D\u307E\u305B\u3093\u3002
+- MSG_ATT_DEFAULT_INVALID = \u5C5E\u6027\"{0}\"\u306EdefaultValue \"{1}\"\u306F\u3001\u3053\u306E\u5C5E\u6027\u30BF\u30A4\u30D7\u306E\u5B57\u53E5\u5236\u7D04\u306B\u95A2\u3057\u3066\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
++ MSG_ATT_DEFAULT_INVALID = \u5C5E\u6027"{0}"\u306EdefaultValue "{1}"\u306F\u3001\u3053\u306E\u5C5E\u6027\u30BF\u30A4\u30D7\u306E\u5B57\u53E5\u5236\u7D04\u306B\u95A2\u3057\u3066\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +317,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=\u30D1\u30FC\u30B5\u30FC\u306B\u3088\u3063\u3066\u3001\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067\"{0}\"\u3092\u8D85\u3048\u308B\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u62E1\u5F35\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306F\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: \u30D1\u30FC\u30B5\u30FC\u306B\u3088\u3063\u3066\u3001\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067"{0}"\u3092\u8D85\u3048\u308B\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u62E1\u5F35\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\u3053\u308C\u306F\u3001JDK\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002
++ ElementAttributeLimit=JAXP00010002: \u8981\u7D20"{0}"\u306B"{1}"\u3092\u8D85\u3048\u308B\u5C5E\u6027\u304C\u5B58\u5728\u3057\u307E\u3059\u3002"{1}"\u306F\u3001JDK\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002
++ MaxEntitySizeLimit=JAXP00010003: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u9577\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002
++ TotalEntitySizeLimit=JAXP00010004: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u7D2F\u7A4D\u30B5\u30A4\u30BA"{0}"\u306F\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u307E\u3057\u305F\u3002
++ MaxXMLNameLimit=JAXP00010005: \u540D\u524D"{0}"\u306F\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= \u8981\u7D20\"{0}\"\u306B\"{1}\"\u3092\u8D85\u3048\u308B\u5C5E\u6027\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\"{1}\"\u306F\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = \uBB38\uC11C\uC758 \uD504\uB864\uB85C\uADF8\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ InvalidCharInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ # 2.4 Character Data and Markup
+- CDEndInContent = \uBB38\uC790 \uC2DC\uD000\uC2A4 \"]]>\"\uB294 CDATA \uC139\uC158 \uB05D\uC744 \uD45C\uC2DC\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uB294 \uACBD\uC6B0 \uCF58\uD150\uCE20\uC5D0 \uB098\uD0C0\uB098\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ CDEndInContent = \uBB38\uC790 \uC2DC\uD000\uC2A4 "]]>"\uB294 CDATA \uC139\uC158 \uB05D\uC744 \uD45C\uC2DC\uD558\uB294 \uB370 \uC0AC\uC6A9\uB418\uC9C0 \uC54A\uB294 \uACBD\uC6B0 \uCF58\uD150\uCE20\uC5D0 \uB098\uD0C0\uB098\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA \uC139\uC158\uC740 \"]]>\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ CDSectUnterminated = CDATA \uC139\uC158\uC740 "]]>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML \uC120\uC5B8\uC740 \uBB38\uC11C \uB9E8 \uC55E\uC5D0\uB9CC \uB098\uD0C0\uB0A0 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+- EqRequiredInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C\uB294 \"{0}\" \uB2E4\uC74C\uC5D0 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- QuoteRequiredInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C \"{0}\" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC740 \uB530\uC634\uD45C\uAC00 \uBD99\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- XMLDeclUnterminated = XML \uC120\uC5B8\uC740 \"?>\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ EqRequiredInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C\uB294 "{0}" \uB2E4\uC74C\uC5D0 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ QuoteRequiredInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C "{0}" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC740 \uB530\uC634\uD45C\uAC00 \uBD99\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ XMLDeclUnterminated = XML \uC120\uC5B8\uC740 "?>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ VersionInfoRequired = XML \uC120\uC5B8\uC5D0\uB294 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ SpaceRequiredBeforeVersionInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C\uB294 \uBC84\uC804 \uC758\uC0AC \uC18D\uC131 \uC55E\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ SpaceRequiredBeforeEncodingInXMLDecl = XML \uC120\uC5B8\uC5D0\uC11C\uB294 \uC778\uCF54\uB529 \uC758\uC0AC \uC18D\uC131 \uC55E\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=\uD6C4\uD589 \uC139\uC158\uC5D0\uC11C\uB294 \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = \uB3C5\uB9BD\uD615 \uBB38\uC11C \uC120\uC5B8 \uAC12\uC740 \"{0}\"\uC774(\uAC00) \uC544\uB2CC \"yes\" \uB610\uB294 \"no\"\uC5EC\uC57C \uD569\uB2C8\uB2E4.
++ SDDeclInvalid = \uB3C5\uB9BD\uD615 \uBB38\uC11C \uC120\uC5B8 \uAC12\uC740 "{0}"\uC774(\uAC00) \uC544\uB2CC "yes" \uB610\uB294 "no"\uC5EC\uC57C \uD569\uB2C8\uB2E4.
++ SDDeclNameInvalid = XML \uC120\uC5B8\uC758 \uB3C5\uB9BD\uD615 \uC774\uB984\uC758 \uCCA0\uC790\uAC00 \uC798\uBABB\uB418\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+ # 2.12 Language Identification
+- XMLLangInvalid = xml:lang \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uC5B8\uC5B4 \uC2DD\uBCC4\uC790\uC785\uB2C8\uB2E4.
++ XMLLangInvalid = xml:lang \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uC5B8\uC5B4 \uC2DD\uBCC4\uC790\uC785\uB2C8\uB2E4.
+ # 3. Logical Structures
+- ETagRequired = \uC694\uC18C \uC720\uD615 \"{0}\"\uC740(\uB294) \uC9DD\uC774 \uB9DE\uB294 \uC885\uB8CC \uD0DC\uADF8 \"{0}>\"(\uC73C)\uB85C \uC885\uB8CC\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ ETagRequired = \uC694\uC18C \uC720\uD615 "{0}"\uC740(\uB294) \uC9DD\uC774 \uB9DE\uB294 \uC885\uB8CC \uD0DC\uADF8 "{0}>"(\uC73C)\uB85C \uC885\uB8CC\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = \uC694\uC18C \uC720\uD615 \"{0}\" \uB2E4\uC74C\uC5D0\uB294 \uC18D\uC131 \uC0AC\uC591 \">\" \uB610\uB294 \"/>\"\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- EqRequiredInAttribute = \uC694\uC18C \uC720\uD615 \"{0}\"\uACFC(\uC640) \uC5F0\uAD00\uB41C \uC18D\uC131 \uC774\uB984 \"{1}\" \uB2E4\uC74C\uC5D0\uB294 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- OpenQuoteExpected = \uC694\uC18C \uC720\uD615 \"{0}\"\uACFC(\uC640) \uC5F0\uAD00\uB41C \"{1}\" \uC18D\uC131\uC5D0\uB294 \uC5EC\uB294 \uB530\uC634\uD45C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
+- CloseQuoteExpected = \uC694\uC18C \uC720\uD615 \"{0}\"\uACFC(\uC640) \uC5F0\uAD00\uB41C \"{1}\" \uC18D\uC131\uC5D0\uB294 \uB2EB\uB294 \uB530\uC634\uD45C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
+- AttributeNotUnique = \"{1}\" \uC18D\uC131\uC774 \"{0}\" \uC694\uC18C\uC5D0 \uB300\uD574 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+- AttributeNSNotUnique = \"{2}\" \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uC5D0 \uBC14\uC778\uB4DC\uB41C \"{1}\" \uC18D\uC131\uC774 \"{0}\" \uC694\uC18C\uC5D0 \uB300\uD574 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+- ETagUnterminated = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 \uB300\uD55C \uC885\uB8CC \uD0DC\uADF8\uB294 ''>'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ ElementUnterminated = \uC694\uC18C \uC720\uD615 "{0}" \uB2E4\uC74C\uC5D0\uB294 \uC18D\uC131 \uC0AC\uC591 ">" \uB610\uB294 "/>"\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ EqRequiredInAttribute = \uC694\uC18C \uC720\uD615 "{0}"\uACFC(\uC640) \uC5F0\uAD00\uB41C \uC18D\uC131 \uC774\uB984 "{1}" \uB2E4\uC74C\uC5D0\uB294 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ OpenQuoteExpected = \uC694\uC18C \uC720\uD615 "{0}"\uACFC(\uC640) \uC5F0\uAD00\uB41C "{1}" \uC18D\uC131\uC5D0\uB294 \uC5EC\uB294 \uB530\uC634\uD45C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
++ CloseQuoteExpected = \uC694\uC18C \uC720\uD615 "{0}"\uACFC(\uC640) \uC5F0\uAD00\uB41C "{1}" \uC18D\uC131\uC5D0\uB294 \uB2EB\uB294 \uB530\uC634\uD45C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
++ AttributeNotUnique = "{1}" \uC18D\uC131\uC774 "{0}" \uC694\uC18C\uC5D0 \uB300\uD574 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
++ AttributeNSNotUnique = "{2}" \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uC5D0 \uBC14\uC778\uB4DC\uB41C "{1}" \uC18D\uC131\uC774 "{0}" \uC694\uC18C\uC5D0 \uB300\uD574 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
++ ETagUnterminated = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD55C \uC885\uB8CC \uD0DC\uADF8\uB294 ''>'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ MarkupNotRecognizedInContent = \uC694\uC18C \uCF58\uD150\uCE20\uB294 \uC62C\uBC14\uB978 \uD615\uC2DD\uC758 \uBB38\uC790 \uB370\uC774\uD130 \uB610\uB294 \uB9C8\uD06C\uC5C5\uC73C\uB85C \uAD6C\uC131\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ DoctypeIllegalInContent = \uCF58\uD150\uCE20\uC5D0\uC11C\uB294 DOCTYPE\uC774 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = \uCC38\uC870\uB294 ';' \uAD6C\uBD84\uC790\uB85C \uC885\uB8CC\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = \uCC38\uC870\uB294 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0 \uC644\uC804\uD788 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- ElementEntityMismatch = \"{0}\" \uC694\uC18C\uB294 \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC2DC\uC791\uB418\uACE0 \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ ElementEntityMismatch = "{0}" \uC694\uC18C\uB294 \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC2DC\uC791\uB418\uACE0 \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ MarkupEntityMismatch=XML \uBB38\uC11C \uAD6C\uC870\uB294 \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC2DC\uC791\uB418\uACE0 \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = \"{1}\" \uC18D\uC131\uC758 \uAC12\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{2})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC73C\uBA70 \uC694\uC18C\uAC00 \"{0}\"\uC785\uB2C8\uB2E4.
++ InvalidCharInAttValue = "{1}" \uC18D\uC131\uC758 \uAC12\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{2})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC73C\uBA70 \uC694\uC18C\uAC00 "{0}"\uC785\uB2C8\uB2E4.
+ InvalidCharInComment = \uC8FC\uC11D\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ InvalidCharInPI = \uCC98\uB9AC \uBA85\uB839\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ InvalidCharInInternalSubset = DTD\uC758 \uB0B4\uBD80 \uBD80\uBD84 \uC9D1\uD569\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ InvalidCharInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C \uBD80\uC801\uD569\uD55C XML \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = \"{1}\" \uC18D\uC131\uC758 \uAC12\uC740 \uC791\uC740 \uB530\uC634\uD45C \uB610\uB294 \uD070 \uB530\uC634\uD45C \uBB38\uC790\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.
+- LessthanInAttValue = \uC694\uC18C \uC720\uD615 \"{0}\"\uACFC(\uC640) \uC5F0\uAD00\uB41C \"{1}\" \uC18D\uC131\uC758 \uAC12\uC5D0\uB294 ''<'' \uBB38\uC790\uAC00 \uD3EC\uD568\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+- AttributeValueUnterminated = \"{1}\" \uC18D\uC131\uC758 \uAC12\uC740 \uC9DD\uC774 \uB9DE\uB294 \uB530\uC634\uD45C \uBB38\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ QuoteRequiredInAttValue = "{1}" \uC18D\uC131\uC758 \uAC12\uC740 \uC791\uC740 \uB530\uC634\uD45C \uB610\uB294 \uD070 \uB530\uC634\uD45C \uBB38\uC790\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.
++ LessthanInAttValue = \uC694\uC18C \uC720\uD615 "{0}"\uACFC(\uC640) \uC5F0\uAD00\uB41C "{1}" \uC18D\uC131\uC758 \uAC12\uC5D0\uB294 ''<'' \uBB38\uC790\uAC00 \uD3EC\uD568\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ AttributeValueUnterminated = "{1}" \uC18D\uC131\uC758 \uAC12\uC740 \uC9DD\uC774 \uB9DE\uB294 \uB530\uC634\uD45C \uBB38\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 2.5 Comments
+- InvalidCommentStart = \uC8FC\uC11D\uC740 \"\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ InvalidCommentStart = \uC8FC\uC11D\uC740 ""\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ COMMENT_NOT_IN_ONE_ENTITY = \uC8FC\uC11D\uC774 \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0 \uC548\uC5D0 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ # 2.6 Processing Instructions
+ PITargetRequired = \uCC98\uB9AC \uBA85\uB839\uC740 \uB300\uC0C1 \uC774\uB984\uC73C\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.
+ SpaceRequiredInPI = \uCC98\uB9AC \uBA85\uB839 \uB300\uC0C1\uACFC \uB370\uC774\uD130 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- PIUnterminated = \uCC98\uB9AC \uBA85\uB839\uC740 \"?>\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+- ReservedPITarget = \"[xX][mM][lL]\"\uACFC \uC77C\uCE58\uD558\uB294 \uCC98\uB9AC \uBA85\uB839 \uB300\uC0C1\uC740 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ PIUnterminated = \uCC98\uB9AC \uBA85\uB839\uC740 "?>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ ReservedPITarget = "[xX][mM][lL]"\uACFC \uC77C\uCE58\uD558\uB294 \uCC98\uB9AC \uBA85\uB839 \uB300\uC0C1\uC740 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ PI_NOT_IN_ONE_ENTITY = \uCC98\uB9AC \uBA85\uB839\uC774 \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0 \uC548\uC5D0 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = \"{0}\"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uBC84\uC804\uC785\uB2C8\uB2E4.
+- VersionNotSupported = XML \uBC84\uC804 \"{0}\"\uC740(\uB294) \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. XML 1.0\uB9CC \uC9C0\uC6D0\uB429\uB2C8\uB2E4.
+- VersionNotSupported11 = XML \uBC84\uC804 \"{0}\"\uC740(\uB294) \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. XML 1.0 \uBC0F XML 1.1\uB9CC \uC9C0\uC6D0\uB429\uB2C8\uB2E4.
++ VersionInfoInvalid = "{0}"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uBC84\uC804\uC785\uB2C8\uB2E4.
++ VersionNotSupported = XML \uBC84\uC804 "{0}"\uC740(\uB294) \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. XML 1.0\uB9CC \uC9C0\uC6D0\uB429\uB2C8\uB2E4.
++ VersionNotSupported11 = XML \uBC84\uC804 "{0}"\uC740(\uB294) \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. XML 1.0 \uBC0F XML 1.1\uB9CC \uC9C0\uC6D0\uB429\uB2C8\uB2E4.
+ VersionMismatch= \uD558\uB098\uC758 \uC5D4\uD2F0\uD2F0\uC5D0\uB294 \uC774\uD6C4 \uBC84\uC804\uC758 \uB2E4\uB978 \uC5D4\uD2F0\uD2F0\uAC00 \uD3EC\uD568\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = \uBB38\uC790 \uCC38\uC870\uC5D0\uC11C\uB294 \"\" \uBC14\uB85C \uB2E4\uC74C\uC5D0 \uC2ED\uC9C4\uC218 \uD45C\uD604\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- HexdigitRequiredInCharRef = \uBB38\uC790 \uCC38\uC870\uC5D0\uC11C\uB294 \"\" \uBC14\uB85C \uB2E4\uC74C\uC5D0 16\uC9C4\uC218 \uD45C\uD604\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ DigitRequiredInCharRef = \uBB38\uC790 \uCC38\uC870\uC5D0\uC11C\uB294 "" \uBC14\uB85C \uB2E4\uC74C\uC5D0 \uC2ED\uC9C4\uC218 \uD45C\uD604\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ HexdigitRequiredInCharRef = \uBB38\uC790 \uCC38\uC870\uC5D0\uC11C\uB294 "" \uBC14\uB85C \uB2E4\uC74C\uC5D0 16\uC9C4\uC218 \uD45C\uD604\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
+ SemicolonRequiredInCharRef = \uBB38\uC790 \uCC38\uC870\uB294 ';' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+- InvalidCharRef = \uBB38\uC790 \uCC38\uC870 \"{0}\"\uC740(\uB294) \uBD80\uC801\uD569\uD55C XML \uBB38\uC790\uC785\uB2C8\uB2E4.
++ InvalidCharRef = \uBB38\uC790 \uCC38\uC870 "{0}"\uC740(\uB294) \uBD80\uC801\uD569\uD55C XML \uBB38\uC790\uC785\uB2C8\uB2E4.
+ NameRequiredInReference = \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC5D0\uC11C\uB294 '&' \uBC14\uB85C \uB2E4\uC74C\uC5D0 \uC5D4\uD2F0\uD2F0 \uC774\uB984\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- SemicolonRequiredInReference = \"{0}\" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uCC38\uC870\uB294 '';'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ SemicolonRequiredInReference = "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uCC38\uC870\uB294 '';'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC740 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \uB9E8 \uC55E\uC5D0\uB9CC \uB098\uD0C0\uB0A0 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
+- EqRequiredInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C\uB294 \"{0}\" \uB2E4\uC74C\uC5D0 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- QuoteRequiredInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C \"{0}\" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC740 \uB530\uC634\uD45C\uAC00 \uBD99\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- CloseQuoteMissingInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C \"{0}\" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC758 \uB2EB\uB294 \uB530\uC634\uD45C\uAC00 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
++ EqRequiredInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C\uB294 "{0}" \uB2E4\uC74C\uC5D0 '' = '' \uBB38\uC790\uAC00 \uC640\uC57C \uD569\uB2C8\uB2E4.
++ QuoteRequiredInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C "{0}" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC740 \uB530\uC634\uD45C\uAC00 \uBD99\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ CloseQuoteMissingInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uC11C "{0}" \uB2E4\uC74C\uC5D0 \uC624\uB294 \uAC12\uC758 \uB2EB\uB294 \uB530\uC634\uD45C\uAC00 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ SpaceRequiredBeforeVersionInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC740 \uBC84\uC804 \uC758\uC0AC \uC18D\uC131 \uC55E\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ SpaceRequiredBeforeEncodingInTextDecl = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC740 \uC778\uCF54\uB529 \uC758\uC0AC \uC18D\uC131 \uC55E\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- TextDeclUnterminated = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC740 \"?>\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ TextDeclUnterminated = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC740 "?>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ EncodingDeclRequired = \uD14D\uC2A4\uD2B8 \uC120\uC5B8\uC5D0\uB294 \uC778\uCF54\uB529 \uC120\uC5B8\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ NoMorePseudoAttributes = \uC758\uC0AC \uC18D\uC131\uC740 \uB354 \uC774\uC0C1 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ MorePseudoAttributes = \uC758\uC0AC \uC18D\uC131\uC774 \uB354 \uD544\uC694\uD569\uB2C8\uB2E4.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = \uC8FC\uC11D\uC740 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0 \uC644\uC804\uD788 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ PINotInOneEntity = \uCC98\uB9AC \uBA85\uB839\uC740 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uB3D9\uC77C\uD55C \uC5D4\uD2F0\uD2F0\uC5D0 \uC644\uC804\uD788 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = \"{0}\"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uC778\uCF54\uB529 \uC774\uB984\uC785\uB2C8\uB2E4.
+- EncodingByteOrderUnsupported = \"{0}\" \uC778\uCF54\uB529\uC5D0 \uB300\uD574 \uC81C\uACF5\uB41C \uBC14\uC774\uD2B8 \uC21C\uC11C\uB294 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ EncodingDeclInvalid = "{0}"\uC740(\uB294) \uBD80\uC801\uD569\uD55C \uC778\uCF54\uB529 \uC774\uB984\uC785\uB2C8\uB2E4.
++ EncodingByteOrderUnsupported = "{0}" \uC778\uCF54\uB529\uC5D0 \uB300\uD574 \uC81C\uACF5\uB41C \uBC14\uC774\uD2B8 \uC21C\uC11C\uB294 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ InvalidByte = {0}\uC740(\uB294) {1}\uBC14\uC774\uD2B8 UTF-8 \uC2DC\uD000\uC2A4\uC5D0 \uB300\uD574 \uBD80\uC801\uD569\uD55C \uBC14\uC774\uD2B8\uC785\uB2C8\uB2E4.
+ ExpectedByte = {1}\uBC14\uC774\uD2B8 UTF-8 \uC2DC\uD000\uC2A4\uC5D0 \uD544\uC694\uD55C \uBC14\uC774\uD2B8\uB294 {0}\uC785\uB2C8\uB2E4.
+ InvalidHighSurrogate = UTF-8 \uC2DC\uD000\uC2A4\uC758 \uB192\uC740 \uB300\uB9AC \uBE44\uD2B8\uB294 0x10\uC744 \uCD08\uACFC\uD558\uC9C0 \uC54A\uC544\uC57C \uD558\uC9C0\uB9CC 0x{0}\uC774(\uAC00) \uBC1C\uACAC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+- OperationNotSupported = {1} \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC740 \"{0}\" \uC791\uC5C5\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- InvalidASCII = \uBC14\uC774\uD2B8 \"{0}\"\uC740(\uB294) (7\uBE44\uD2B8) ASCII \uBB38\uC790 \uC9D1\uD569\uC5D0 \uC18D\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ OperationNotSupported = {1} \uC77D\uAE30 \uD504\uB85C\uADF8\uB7A8\uC740 "{0}" \uC791\uC5C5\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ InvalidASCII = \uBC14\uC774\uD2B8 "{0}"\uC740(\uB294) (7\uBE44\uD2B8) ASCII \uBB38\uC790 \uC9D1\uD569\uC5D0 \uC18D\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ CharConversionFailure = \uD2B9\uC815 \uC778\uCF54\uB529 \uD615\uC2DD\uC774\uC5B4\uC57C \uD558\uB294 \uAC83\uC73C\uB85C \uD655\uC778\uB41C \uC5D4\uD2F0\uD2F0\uC5D0\uB294 \uD574\uB2F9 \uC778\uCF54\uB529\uC5D0 \uBD80\uC801\uD569\uD55C \uC2DC\uD000\uC2A4\uAC00 \uD3EC\uD568\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = \uACF5\uC6A9 \uC2DD\uBCC4\uC790\uC5D0\uB294 \uBB38\uC790(\uC720\uB2C8\uCF54\uB4DC: 0x{0})\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ SpaceRequiredBetweenPublicAndSystem = publicId\uC640 systemId \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \uBB38\uC11C \uC720\uD615 \uC120\uC5B8\uC5D0\uC11C\uB294 \"''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+- PEReferenceWithinMarkup = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 \"%{0};\"\uC740 DTD\uC758 \uB0B4\uBD80 \uBD80\uBD84 \uC9D1\uD569\uC5D0 \uC788\uB294 \uB9C8\uD06C\uC5C5 \uC548\uC5D0 \uD45C\uC2DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \uBB38\uC11C \uC720\uD615 \uC120\uC5B8\uC5D0\uC11C\uB294 "''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ PEReferenceWithinMarkup = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 "%{0};"\uC740 DTD\uC758 \uB0B4\uBD80 \uBD80\uBD84 \uC9D1\uD569\uC5D0 \uC788\uB294 \uB9C8\uD06C\uC5C5 \uC548\uC5D0 \uD45C\uC2DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = \uBB38\uC11C \uC720\uD615 \uC120\uC5B8\uC744 \uD3EC\uD568\uD558\uAC70\uB098 \uBB38\uC11C \uC720\uD615 \uC120\uC5B8\uC774 \uAC00\uB9AC\uD0A4\uB294 \uB9C8\uD06C\uC5C5 \uC120\uC5B8\uC740 \uC62C\uBC14\uB978 \uD615\uC2DD\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = \"xml:space\"\uC5D0 \uB300\uD55C \uC18D\uC131 \uC120\uC5B8\uC740 \"default\" \uBC0F \"preserve\" \uAC12\uB9CC \uAC00\uB2A5\uD55C \uC5F4\uAC70 \uC720\uD615\uC73C\uB85C \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = "xml:space"\uC5D0 \uB300\uD55C \uC18D\uC131 \uC120\uC5B8\uC740 "default" \uBC0F "preserve" \uAC12\uB9CC \uAC00\uB2A5\uD55C \uC5F4\uAC70 \uC720\uD615\uC73C\uB85C \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = \uC694\uC18C \uC720\uD615 \uC120\uC5B8\uC5D0\uC11C\uB294 \"''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = \uC694\uC18C \uC720\uD615 \uC120\uC5B8\uC5D0\uC11C\uB294 \uC694\uC18C \uC720\uD615 "{0}" \uB2E4\uC74C\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = \uC694\uC18C \uC720\uD615 \uC120\uC5B8\uC5D0\uC11C\uB294 \uC694\uC18C \uC720\uD615 "{0}" \uB2E4\uC74C\uC5D0 \uC81C\uC57D \uC870\uAC74\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ ElementDeclUnterminated = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD55C \uC120\uC5B8\uC740 ''>''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uC120\uC5B8\uC5D0\uB294 ''('' \uBB38\uC790 \uB610\uB294 \uC694\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uC120\uC5B8\uC5D0\uB294 '')''\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uC120\uC5B8\uC5D0\uB294 ''('' \uBB38\uC790 \uB610\uB294 \uC694\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uC120\uC5B8\uC5D0\uB294 '')''\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uC120\uC5B8\uC5D0\uB294 \uC694\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uC120\uC5B8\uC5D0\uB294 '')''\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
+- MixedContentUnterminated = \uD558\uC704 \uC694\uC18C \uC720\uD615\uC774 \uC81C\uD55C\uB418\uB294 \uACBD\uC6B0 \uD63C\uD569 \uCF58\uD150\uCE20 \uBAA8\uB378 \"{0}\"\uC740(\uB294) \")*\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uC120\uC5B8\uC5D0\uB294 \uC694\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uC120\uC5B8\uC5D0\uB294 '')''\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MixedContentUnterminated = \uD558\uC704 \uC694\uC18C \uC720\uD615\uC774 \uC81C\uD55C\uB418\uB294 \uACBD\uC6B0 \uD63C\uD569 \uCF58\uD150\uCE20 \uBAA8\uB378 "{0}"\uC740(\uB294) ")*"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = attribute-list \uC120\uC5B8\uC5D0\uC11C\uB294 \"\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+- IgnoreSectUnterminated = \uC81C\uC678\uB41C \uC870\uAC74\uBD80 \uC139\uC158\uC740 \"]]>\"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ IncludeSectUnterminated = \uD3EC\uD568\uB41C \uC870\uAC74\uBD80 \uC139\uC158\uC740 "]]>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ IgnoreSectUnterminated = \uC81C\uC678\uB41C \uC870\uAC74\uBD80 \uC139\uC158\uC740 "]]>"\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC5D0\uC11C\uB294 '%' \uBC14\uB85C \uB2E4\uC74C\uC5D0 \uC5D4\uD2F0\uD2F0 \uC774\uB984\uC774 \uC640\uC57C \uD569\uB2C8\uB2E4.
+- SemicolonRequiredInPEReference = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 \"%{0};\"\uC740 '';'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ SemicolonRequiredInPEReference = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 "%{0};"\uC740 '';'' \uAD6C\uBD84\uC790\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC5D0\uC11C\uB294 \"''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+- MSG_DUPLICATE_ENTITY_DEFINITION = \"{0}\" \uC5D4\uD2F0\uD2F0\uAC00 \uB450 \uBC88 \uC774\uC0C1 \uC120\uC5B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC5D0\uC11C\uB294 \uC5D4\uD2F0\uD2F0 \uC774\uB984 "{0}"\uACFC(\uC640) \uC815\uC758 \uC0AC\uC774\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC120\uC5B8\uC5D0\uC11C\uB294 "NDATA"\uC640 \uD45C\uAE30\uBC95 \uC774\uB984 \uC0AC\uC774\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC120\uC5B8\uC5D0\uC11C\uB294 "NDATA" \uC55E\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC120\uC5B8\uC5D0\uC11C\uB294 "NDATA" \uB2E4\uC74C\uC5D0 \uD45C\uAE30\uBC95 \uC774\uB984\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ EntityDeclUnterminated = "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC120\uC5B8\uC740 ''>''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ MSG_DUPLICATE_ENTITY_DEFINITION = "{0}" \uC5D4\uD2F0\uD2F0\uAC00 \uB450 \uBC88 \uC774\uC0C1 \uC120\uC5B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+ # 4.2.2 External Entities
+- ExternalIDRequired = \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC740 \"SYSTEM\" \uB610\uB294 \"PUBLIC\"\uC73C\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \"PUBLIC\"\uACFC \uACF5\uC6A9 \uC2DD\uBCC4\uC790 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ ExternalIDRequired = \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC740 "SYSTEM" \uB610\uB294 "PUBLIC"\uC73C\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = "PUBLIC"\uACFC \uACF5\uC6A9 \uC2DD\uBCC4\uC790 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = \uACF5\uC6A9 \uC2DD\uBCC4\uC790\uC640 \uC2DC\uC2A4\uD15C \uC2DD\uBCC4\uC790 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \"SYSTEM\"\uACFC \uC2DC\uC2A4\uD15C \uC2DD\uBCC4\uC790 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = \uBD80\uBD84 \uC2DD\uBCC4\uC790\uB294 \uC2DC\uC2A4\uD15C \uC2DD\uBCC4\uC790 \"{0}\"\uC758 \uC77C\uBD80\uB85C \uC9C0\uC815\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = "SYSTEM"\uACFC \uC2DC\uC2A4\uD15C \uC2DD\uBCC4\uC790 \uC0AC\uC774\uC5D0\uB294 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = \uBD80\uBD84 \uC2DD\uBCC4\uC790\uB294 \uC2DC\uC2A4\uD15C \uC2DD\uBCC4\uC790 "{0}"\uC758 \uC77C\uBD80\uB85C \uC9C0\uC815\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = \uD45C\uAE30\uBC95 \uC120\uC5B8\uC5D0\uC11C\uB294 \"''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = \uD45C\uAE30\uBC95 \uC120\uC5B8\uC5D0\uC11C\uB294 \uD45C\uAE30\uBC95 \uC774\uB984 "{0}" \uB2E4\uC74C\uC5D0 \uACF5\uBC31\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.
++ ExternalIDorPublicIDRequired = "{0}" \uD45C\uAE30\uBC95\uC5D0 \uB300\uD55C \uC120\uC5B8\uC5D0\uB294 \uC2DC\uC2A4\uD15C \uB610\uB294 \uACF5\uC6A9 \uC2DD\uBCC4\uC790\uAC00 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ NotationDeclUnterminated = "{0}" \uD45C\uAE30\uBC95\uC5D0 \uB300\uD55C \uC120\uC5B8\uC740 ''>''\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = \uC694\uC18C \uC720\uD615 \"{1}\"\uC774(\uAC00) \uC694\uC18C \uC120\uC5B8 \"{0}\"\uC758 \uCF58\uD150\uCE20 \uBAA8\uB378\uC5D0 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
+- ENTITIESInvalid = ENTITIES \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{1}\"\uC740(\uB294) \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uD558\uB098 \uC774\uC0C1\uC758 \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- ENTITYInvalid = ENTITY \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{1}\"\uC740(\uB294) \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- IDDefaultTypeInvalid = ID \uC18D\uC131 \"{0}\"\uC758 \uC120\uC5B8\uB41C \uAE30\uBCF8\uAC12\uC740 \"#IMPLIED\" \uB610\uB294 \"#REQUIRED\"\uC5EC\uC57C \uD569\uB2C8\uB2E4.
+- IDInvalid = ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- IDInvalidWithNamespaces = \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uAC00 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB41C \uACBD\uC6B0 ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) NCName\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- IDNotUnique = ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uBB38\uC11C \uB0B4\uC5D0\uC11C \uACE0\uC720\uD574\uC57C \uD569\uB2C8\uB2E4.
+- IDREFInvalid = IDREF \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- IDREFInvalidWithNamespaces = \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uAC00 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB41C \uACBD\uC6B0 IDREF \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) NCName\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- IDREFSInvalid = IDREFS \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uD558\uB098 \uC774\uC0C1\uC758 \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uAC00 \uC804\uCCB4 \uC120\uC5B8\uC73C\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0 \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \"{0}\"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uC120\uC5B8\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- ImproperDeclarationNesting = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \"{0}\"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uC120\uC5B8\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- ImproperGroupNesting = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \"{0}\"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uAD04\uD638 \uC30D\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- INVALID_PE_IN_CONDITIONAL = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \"{0}\"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC804\uCCB4 \uC870\uAC74\uBD80 \uC139\uC158\uC774 \uD3EC\uD568\uB418\uAC70\uB098 INCLUDE \uB610\uB294 IGNORE\uB9CC \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_ATTRIBUTE_NOT_DECLARED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 \uB300\uD55C \"{1}\" \uC18D\uC131\uC744 \uC120\uC5B8\uD574\uC57C \uD569\uB2C8\uB2E4.
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \uAC12\uC774 \"{1}\"\uC778 \"{0}\" \uC18D\uC131\uC5D0\uB294 \"{2}\" \uBAA9\uB85D\uC758 \uAC12\uC774 \uC0AC\uC6A9\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \"{0}\" \uC18D\uC131\uC758 \"{1}\" \uAC12\uC740 \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C \uC815\uADDC\uD654\uC5D0 \uC758\uD574 \"{2}\"(\uC73C)\uB85C \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+- MSG_CONTENT_INCOMPLETE = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uCF58\uD150\uCE20\uAC00 \uBD88\uC644\uC804\uD569\uB2C8\uB2E4. \uD574\uB2F9 \uCF58\uD150\uCE20\uB294 \"{1}\"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
+- MSG_CONTENT_INVALID = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uCF58\uD150\uCE20\uB294 \"{1}\"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
+- MSG_CONTENT_INVALID_SPECIFIED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC758 \uCF58\uD150\uCE20\uB294 \"{1}\"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4. \"{2}\" \uC720\uD615\uC758 \uD558\uC704 \uD56D\uBAA9\uC740 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 \uB300\uD55C \"{1}\" \uC18D\uC131\uC5D0 \uAE30\uBCF8\uAC12\uC774 \uC788\uC73C\uBA70 \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0 \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_DUPLICATE_ATTDEF = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 \uB300\uD55C \"{1}\" \uC18D\uC131\uC774 \uC774\uBBF8 \uC120\uC5B8\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
+- MSG_ELEMENT_ALREADY_DECLARED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC740(\uB294) \uB450 \uBC88 \uC774\uC0C1 \uC120\uC5B8\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+- MSG_ELEMENT_NOT_DECLARED = \uC694\uC18C \uC720\uD615 \"{0}\"\uC744(\uB97C) \uC120\uC5B8\uD574\uC57C \uD569\uB2C8\uB2E4.
++ DuplicateTypeInMixedContent = \uC694\uC18C \uC720\uD615 "{1}"\uC774(\uAC00) \uC694\uC18C \uC120\uC5B8 "{0}"\uC758 \uCF58\uD150\uCE20 \uBAA8\uB378\uC5D0 \uC774\uBBF8 \uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
++ ENTITIESInvalid = ENTITIES \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{1}"\uC740(\uB294) \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uD558\uB098 \uC774\uC0C1\uC758 \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ ENTITYInvalid = ENTITY \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{1}"\uC740(\uB294) \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ IDDefaultTypeInvalid = ID \uC18D\uC131 "{0}"\uC758 \uC120\uC5B8\uB41C \uAE30\uBCF8\uAC12\uC740 "#IMPLIED" \uB610\uB294 "#REQUIRED"\uC5EC\uC57C \uD569\uB2C8\uB2E4.
++ IDInvalid = ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ IDInvalidWithNamespaces = \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uAC00 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB41C \uACBD\uC6B0 ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) NCName\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ IDNotUnique = ID \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uBB38\uC11C \uB0B4\uC5D0\uC11C \uACE0\uC720\uD574\uC57C \uD569\uB2C8\uB2E4.
++ IDREFInvalid = IDREF \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ IDREFInvalidWithNamespaces = \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uAC00 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB41C \uACBD\uC6B0 IDREF \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) NCName\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ IDREFSInvalid = IDREFS \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uD558\uB098 \uC774\uC0C1\uC758 \uC774\uB984\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uAC00 \uC804\uCCB4 \uC120\uC5B8\uC73C\uB85C \uC0AC\uC6A9\uB41C \uACBD\uC6B0 \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 "{0}"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uC120\uC5B8\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ ImproperDeclarationNesting = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 "{0}"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uC120\uC5B8\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ ImproperGroupNesting = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 "{0}"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC81C\uB300\uB85C \uC911\uCCA9\uB41C \uAD04\uD638 \uC30D\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ INVALID_PE_IN_CONDITIONAL = \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 "{0}"\uC758 \uB300\uCCB4 \uD14D\uC2A4\uD2B8\uC5D0\uB294 \uC804\uCCB4 \uC870\uAC74\uBD80 \uC139\uC158\uC774 \uD3EC\uD568\uB418\uAC70\uB098 INCLUDE \uB610\uB294 IGNORE\uB9CC \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ATTRIBUTE_NOT_DECLARED = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD55C "{1}" \uC18D\uC131\uC744 \uC120\uC5B8\uD574\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \uAC12\uC774 "{1}"\uC778 "{0}" \uC18D\uC131\uC5D0\uB294 "{2}" \uBAA9\uB85D\uC758 \uAC12\uC774 \uC0AC\uC6A9\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = "{0}" \uC18D\uC131\uC758 "{1}" \uAC12\uC740 \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C \uC815\uADDC\uD654\uC5D0 \uC758\uD574 "{2}"(\uC73C)\uB85C \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ MSG_CONTENT_INCOMPLETE = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uCF58\uD150\uCE20\uAC00 \uBD88\uC644\uC804\uD569\uB2C8\uB2E4. \uD574\uB2F9 \uCF58\uD150\uCE20\uB294 "{1}"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
++ MSG_CONTENT_INVALID = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uCF58\uD150\uCE20\uB294 "{1}"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
++ MSG_CONTENT_INVALID_SPECIFIED = \uC694\uC18C \uC720\uD615 "{0}"\uC758 \uCF58\uD150\uCE20\uB294 "{1}"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4. "{2}" \uC720\uD615\uC758 \uD558\uC704 \uD56D\uBAA9\uC740 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD55C "{1}" \uC18D\uC131\uC5D0 \uAE30\uBCF8\uAC12\uC774 \uC788\uC73C\uBA70 \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0 \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_DUPLICATE_ATTDEF = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD55C "{1}" \uC18D\uC131\uC774 \uC774\uBBF8 \uC120\uC5B8\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
++ MSG_ELEMENT_ALREADY_DECLARED = \uC694\uC18C \uC720\uD615 "{0}"\uC740(\uB294) \uB450 \uBC88 \uC774\uC0C1 \uC120\uC5B8\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ELEMENT_NOT_DECLARED = \uC694\uC18C \uC720\uD615 "{0}"\uC744(\uB97C) \uC120\uC5B8\uD574\uC57C \uD569\uB2C8\uB2E4.
+ MSG_GRAMMAR_NOT_FOUND = \uBB38\uC11C\uAC00 \uBD80\uC801\uD569\uD568: \uBB38\uBC95\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+- MSG_ELEMENT_WITH_ID_REQUIRED = \uC2DD\uBCC4\uC790\uAC00 \"{0}\"\uC778 \uC694\uC18C\uAC00 \uBB38\uC11C\uC5D0 \uB098\uD0C0\uB098\uC57C \uD569\uB2C8\uB2E4.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C\uB294 \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \"{0}\"\uC5D0 \uB300\uD55C \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- MSG_FIXED_ATTVALUE_INVALID = \uAC12\uC774 \"{2}\"\uC778 \"{1}\" \uC18D\uC131\uC758 \uAC12\uC740 \"{3}\"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 ID \uC720\uD615\uC758 \"{1}\" \uC18D\uC131\uC774 \uC774\uBBF8 \uC788\uC73C\uBBC0\uB85C ID \uC720\uD615\uC758 \uB450\uBC88\uC9F8 \uC18D\uC131 \"{2}\"\uC774(\uAC00) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 NOTATION \uC720\uD615\uC758 \"{1}\" \uC18D\uC131\uC774 \uC774\uBBF8 \uC788\uC73C\uBBC0\uB85C NOTATION \uC720\uD615\uC758 \uB450\uBC88\uC9F8 \uC18D\uC131 \"{2}\"\uC774(\uAC00) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \"{1}\" \uD45C\uAE30\uBC95\uC740 \"{0}\" \uC18D\uC131\uC5D0 \uB300\uD55C \uD45C\uAE30\uBC95 \uC720\uD615 \uBAA9\uB85D\uC5D0\uC11C \uCC38\uC870\uB418\uB294 \uACBD\uC6B0 \uC120\uC5B8\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \"{1}\" \uD45C\uAE30\uBC95\uC740 \"{0}\"\uC5D0 \uB300\uD574 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC5D0\uC11C \uCC38\uC870\uB418\uB294 \uACBD\uC6B0 \uC120\uC5B8\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C\uB294 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uC678\uBD80 \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC120\uC5B8\uB41C \"{0}\" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \"{1}\" \uC18D\uC131\uC774 \uD544\uC694\uD558\uBA70 \uC694\uC18C \uC720\uD615 \"{0}\"\uC5D0 \uB300\uD574 \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_ELEMENT_WITH_ID_REQUIRED = \uC2DD\uBCC4\uC790\uAC00 "{0}"\uC778 \uC694\uC18C\uAC00 \uBB38\uC11C\uC5D0 \uB098\uD0C0\uB098\uC57C \uD569\uB2C8\uB2E4.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C\uB294 \uC678\uBD80 \uC5D4\uD2F0\uD2F0 "{0}"\uC5D0 \uB300\uD55C \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ MSG_FIXED_ATTVALUE_INVALID = \uAC12\uC774 "{2}"\uC778 "{1}" \uC18D\uC131\uC758 \uAC12\uC740 "{3}"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 ID \uC720\uD615\uC758 "{1}" \uC18D\uC131\uC774 \uC774\uBBF8 \uC788\uC73C\uBBC0\uB85C ID \uC720\uD615\uC758 \uB450\uBC88\uC9F8 \uC18D\uC131 "{2}"\uC774(\uAC00) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 NOTATION \uC720\uD615\uC758 "{1}" \uC18D\uC131\uC774 \uC774\uBBF8 \uC788\uC73C\uBBC0\uB85C NOTATION \uC720\uD615\uC758 \uB450\uBC88\uC9F8 \uC18D\uC131 "{2}"\uC774(\uAC00) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = "{1}" \uD45C\uAE30\uBC95\uC740 "{0}" \uC18D\uC131\uC5D0 \uB300\uD55C \uD45C\uAE30\uBC95 \uC720\uD615 \uBAA9\uB85D\uC5D0\uC11C \uCC38\uC870\uB418\uB294 \uACBD\uC6B0 \uC120\uC5B8\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = "{1}" \uD45C\uAE30\uBC95\uC740 "{0}"\uC5D0 \uB300\uD574 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0 \uC120\uC5B8\uC5D0\uC11C \uCC38\uC870\uB418\uB294 \uACBD\uC6B0 \uC120\uC5B8\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C\uB294 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uC678\uBD80 \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC120\uC5B8\uB41C "{0}" \uC5D4\uD2F0\uD2F0\uC5D0 \uB300\uD55C \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = "{1}" \uC18D\uC131\uC774 \uD544\uC694\uD558\uBA70 \uC694\uC18C \uC720\uD615 "{0}"\uC5D0 \uB300\uD574 \uC9C0\uC815\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \uB3C5\uB9BD\uD615 \uBB38\uC11C\uC5D0\uC11C\uB294 \uC694\uC18C \uCF58\uD150\uCE20\uB97C \uAC00\uC9C0\uBA70 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uC678\uBD80 \uC5D4\uD2F0\uD2F0\uC5D0\uC11C \uC120\uC5B8\uB41C \uC694\uC18C \uC0AC\uC774\uC5D0 \uACF5\uBC31\uC774 \uC5C6\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- NMTOKENInvalid = NMTOKEN \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uC774\uB984 \uD1A0\uD070\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- NMTOKENSInvalid = NMTOKENS \uC720\uD615\uC758 \uC18D\uC131\uAC12 \"{0}\"\uC740(\uB294) \uD558\uB098 \uC774\uC0C1\uC758 \uC774\uB984 \uD1A0\uD070\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+- NoNotationOnEmptyElement = EMPTY\uB85C \uC120\uC5B8\uB41C \uC694\uC18C \uC720\uD615 \"{0}\"\uC740(\uB294) NOTATION \uC720\uD615\uC758 \"{1}\" \uC18D\uC131\uC744 \uC120\uC5B8\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+- RootElementTypeMustMatchDoctypedecl = \uBB38\uC11C \uB8E8\uD2B8 \uC694\uC18C \"{1}\"\uC740(\uB294) DOCTYPE \uB8E8\uD2B8 \"{0}\"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
+- UndeclaredElementInContentSpec = \"{0}\" \uC694\uC18C\uC758 \uCF58\uD150\uCE20 \uBAA8\uB378\uC774 \uC120\uC5B8\uB418\uC9C0 \uC54A\uC740 \uC694\uC18C \"{1}\"\uC744(\uB97C) \uCC38\uC870\uD569\uB2C8\uB2E4.
+- UniqueNotationName = \"{0}\" \uD45C\uAE30\uBC95\uC5D0 \uB300\uD55C \uC120\uC5B8\uC774 \uACE0\uC720\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC81C\uACF5\uB41C \uC774\uB984\uC740 \uB450 \uAC1C \uC774\uC0C1\uC758 \uD45C\uAE30\uBC95 \uC120\uC5B8\uC5D0\uC11C \uC120\uC5B8\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
++ NMTOKENInvalid = NMTOKEN \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uC774\uB984 \uD1A0\uD070\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ NMTOKENSInvalid = NMTOKENS \uC720\uD615\uC758 \uC18D\uC131\uAC12 "{0}"\uC740(\uB294) \uD558\uB098 \uC774\uC0C1\uC758 \uC774\uB984 \uD1A0\uD070\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
++ NoNotationOnEmptyElement = EMPTY\uB85C \uC120\uC5B8\uB41C \uC694\uC18C \uC720\uD615 "{0}"\uC740(\uB294) NOTATION \uC720\uD615\uC758 "{1}" \uC18D\uC131\uC744 \uC120\uC5B8\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
++ RootElementTypeMustMatchDoctypedecl = \uBB38\uC11C \uB8E8\uD2B8 \uC694\uC18C "{1}"\uC740(\uB294) DOCTYPE \uB8E8\uD2B8 "{0}"\uACFC(\uC640) \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4.
++ UndeclaredElementInContentSpec = "{0}" \uC694\uC18C\uC758 \uCF58\uD150\uCE20 \uBAA8\uB378\uC774 \uC120\uC5B8\uB418\uC9C0 \uC54A\uC740 \uC694\uC18C "{1}"\uC744(\uB97C) \uCC38\uC870\uD569\uB2C8\uB2E4.
++ UniqueNotationName = "{0}" \uD45C\uAE30\uBC95\uC5D0 \uB300\uD55C \uC120\uC5B8\uC774 \uACE0\uC720\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC81C\uACF5\uB41C \uC774\uB984\uC740 \uB450 \uAC1C \uC774\uC0C1\uC758 \uD45C\uAE30\uBC95 \uC120\uC5B8\uC5D0\uC11C \uC120\uC5B8\uB418\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.
+ ENTITYFailedInitializeGrammar = ENTITYDatatype \uAC80\uC99D\uAE30: \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC801\uD569\uD55C \uBB38\uBC95 \uCC38\uC870\uB85C \uCD08\uAE30\uD654 \uBA54\uC18C\uB4DC\uB97C \uD638\uCD9C\uD574\uC57C \uD569\uB2C8\uB2E4. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\"\uC758 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+- ENTITYNotValid = ENTITY \"{0}\"\uC774(\uAC00) \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
++ ENTITYNotUnparsed = ENTITY "{0}"\uC758 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
++ ENTITYNotValid = ENTITY "{0}"\uC774(\uAC00) \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
+ EmptyList = ENTITIES, IDREFS \uBC0F NMTOKENS \uC720\uD615\uC758 \uAC12\uC740 \uBE48 \uBAA9\uB85D\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = \uC18D\uC131\uAC12\uC5D0\uC11C\uB294 \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 \"&{0};\"\uC774 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = \uC18D\uC131\uAC12\uC5D0\uC11C\uB294 \uC678\uBD80 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 "&{0};"\uC774 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ AccessExternalDTD = \uC678\uBD80 DTD: accessExternalDTD \uC18D\uC131\uC73C\uB85C \uC124\uC815\uB41C \uC81C\uD55C\uC73C\uB85C \uC778\uD574 ''{1}'' \uC561\uC138\uC2A4\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC678\uBD80 DTD ''{0}'' \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
++ AccessExternalEntity = \uC678\uBD80 \uC5D4\uD2F0\uD2F0: accessExternalDTD \uC18D\uC131\uC73C\uB85C \uC124\uC815\uB41C \uC81C\uD55C\uC73C\uB85C \uC778\uD574 ''{1}'' \uC561\uC138\uC2A4\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC73C\uBBC0\uB85C \uC678\uBD80 \uBB38\uC11C ''{0}'' \uC77D\uAE30\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = \"{0}\" \uC5D4\uD2F0\uD2F0\uAC00 \uCC38\uC870\uB418\uC5C8\uC9C0\uB9CC \uC120\uC5B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+- ReferenceToUnparsedEntity = \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 \"&{0};\"\uC740(\uB294) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+- RecursiveReference = \"{0}\"\uC740(\uB294) \uC21C\uD658 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
+- RecursiveGeneralReference = \"&{0};\"\uC740 \uC21C\uD658 \uC77C\uBC18 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
+- RecursivePEReference = \"%{0};\"\uC740 \uC21C\uD658 \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
++ EntityNotDeclared = "{0}" \uC5D4\uD2F0\uD2F0\uAC00 \uCC38\uC870\uB418\uC5C8\uC9C0\uB9CC \uC120\uC5B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
++ ReferenceToUnparsedEntity = \uAD6C\uBB38\uC774 \uBD84\uC11D\uB418\uC9C0 \uC54A\uC740 \uC5D4\uD2F0\uD2F0 \uCC38\uC870 "&{0};"\uC740(\uB294) \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ RecursiveReference = "{0}"\uC740(\uB294) \uC21C\uD658 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
++ RecursiveGeneralReference = "&{0};"\uC740 \uC21C\uD658 \uC77C\uBC18 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
++ RecursivePEReference = "%{0};"\uC740 \uC21C\uD658 \uB9E4\uAC1C\uBCC0\uC218 \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC785\uB2C8\uB2E4(\uCC38\uC870 \uACBD\uB85C: {1}).
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = \"{0}\" \uC778\uCF54\uB529\uC740 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
++ EncodingNotSupported = "{0}" \uC778\uCF54\uB529\uC740 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+ EncodingRequired = UTF-8 \uB610\uB294 UTF-16\uC73C\uB85C \uC778\uCF54\uB529\uB418\uC9C0 \uC54A\uC740 \uAD6C\uBB38\uC774 \uBD84\uC11D\uB41C \uC5D4\uD2F0\uD2F0\uC5D0\uB294 \uC778\uCF54\uB529 \uC120\uC5B8\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = \uC694\uC18C \uB610\uB294 \uC18D\uC131\uC774 QName \uC791\uC131\uACFC \uC77C\uCE58\uD558\uC9C0 \uC54A\uC74C: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = \"{0}\" \uC694\uC18C\uC5D0\uB294 \"xmlns\"\uAC00 \uC811\uB450\uC5B4\uB85C \uC0AC\uC6A9\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+- ElementPrefixUnbound = \"{1}\" \uC694\uC18C\uC5D0 \uB300\uD55C \"{0}\" \uC811\uB450\uC5B4\uAC00 \uBC14\uC778\uB4DC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+- AttributePrefixUnbound = \uC694\uC18C \uC720\uD615 \"{0}\"\uACFC(\uC640) \uC5F0\uAD00\uB41C \"{1}\" \uC18D\uC131\uC758 \"{2}\" \uC811\uB450\uC5B4\uAC00 \uBC14\uC778\uB4DC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+- EmptyPrefixedAttName = \"{0}\" \uC18D\uC131\uC758 \uAC12\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4. \uC811\uB450\uC5B4\uAC00 \uC9C0\uC815\uB41C \uB124\uC784\uC2A4\uD398\uC774\uC2A4 \uBC14\uC778\uB529\uC740 \uBE44\uC6CC \uB458 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+- PrefixDeclared = \uB124\uC784\uC2A4\uD398\uC774\uC2A4 \uC811\uB450\uC5B4 \"{0}\"\uC774(\uAC00) \uC120\uC5B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
++ ElementXMLNSPrefix = "{0}" \uC694\uC18C\uC5D0\uB294 "xmlns"\uAC00 \uC811\uB450\uC5B4\uB85C \uC0AC\uC6A9\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
++ ElementPrefixUnbound = "{1}" \uC694\uC18C\uC5D0 \uB300\uD55C "{0}" \uC811\uB450\uC5B4\uAC00 \uBC14\uC778\uB4DC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
++ AttributePrefixUnbound = \uC694\uC18C \uC720\uD615 "{0}"\uACFC(\uC640) \uC5F0\uAD00\uB41C "{1}" \uC18D\uC131\uC758 "{2}" \uC811\uB450\uC5B4\uAC00 \uBC14\uC778\uB4DC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
++ EmptyPrefixedAttName = "{0}" \uC18D\uC131\uC758 \uAC12\uC774 \uBD80\uC801\uD569\uD569\uB2C8\uB2E4. \uC811\uB450\uC5B4\uAC00 \uC9C0\uC815\uB41C \uB124\uC784\uC2A4\uD398\uC774\uC2A4 \uBC14\uC778\uB529\uC740 \uBE44\uC6CC \uB458 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
++ PrefixDeclared = \uB124\uC784\uC2A4\uD398\uC774\uC2A4 \uC811\uB450\uC5B4 "{0}"\uC774(\uAC00) \uC120\uC5B8\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+ CantBindXMLNS = "xmlns" \uC811\uB450\uC5B4\uB294 \uBA85\uC2DC\uC801\uC73C\uB85C \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uC5D0 \uBC14\uC778\uB4DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "xmlns"\uC5D0 \uB300\uD55C \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uB3C4 \uBA85\uC2DC\uC801\uC73C\uB85C \uC811\uB450\uC5B4\uC5D0 \uBC14\uC778\uB4DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+ CantBindXML = "xml" \uC811\uB450\uC5B4\uB294 \uC77C\uBC18 \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uAC00 \uC544\uB2CC \uB2E4\uB978 \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uC5D0 \uBC14\uC778\uB4DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. "xml"\uC5D0 \uB300\uD55C \uB124\uC784\uC2A4\uD398\uC774\uC2A4\uB3C4 "xml" \uC774\uC678\uC758 \uC811\uB450\uC5B4\uC5D0 \uBC14\uC778\uB4DC\uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+- MSG_ATT_DEFAULT_INVALID = \"{0}\" \uC18D\uC131\uC758 defaultValue \"{1}\"\uC740(\uB294) \uC774 \uC18D\uC131 \uC720\uD615\uC758 \uB809\uC2DC\uCE7C \uC81C\uC57D \uC870\uAC74\uC5D0 \uB300\uD55C \uAC12\uC73C\uB85C \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
++ MSG_ATT_DEFAULT_INVALID = "{0}" \uC18D\uC131\uC758 defaultValue "{1}"\uC740(\uB294) \uC774 \uC18D\uC131 \uC720\uD615\uC758 \uB809\uC2DC\uCE7C \uC81C\uC57D \uC870\uAC74\uC5D0 \uB300\uD55C \uAC12\uC73C\uB85C \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=\uAD6C\uBB38 \uBD84\uC11D\uAE30\uAC00 \uC774 \uBB38\uC11C\uC5D0\uC11C \"{0}\"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC5D4\uD2F0\uD2F0 \uD655\uC7A5\uC744 \uBC1C\uACAC\uD588\uC2B5\uB2C8\uB2E4. \uC774\uB294 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: \uAD6C\uBB38 \uBD84\uC11D\uAE30\uAC00 \uC774 \uBB38\uC11C\uC5D0\uC11C "{0}"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC5D4\uD2F0\uD2F0 \uD655\uC7A5\uC744 \uBC1C\uACAC\uD588\uC2B5\uB2C8\uB2E4. \uC774\uB294 JDK\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4.
++ ElementAttributeLimit=JAXP00010002: "{0}" \uC694\uC18C\uC5D0 "{1}"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC18D\uC131\uC774 \uC788\uC2B5\uB2C8\uB2E4. "{1}"\uC740(\uB294) JDK\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4.
++ MaxEntitySizeLimit=JAXP00010003: "{0}" \uC5D4\uD2F0\uD2F0\uC758 \uAE38\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uB41C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4.
++ TotalEntitySizeLimit=JAXP00010004: \uC5D4\uD2F0\uD2F0\uC758 \uB204\uC801 \uD06C\uAE30 "{0}"\uC774(\uAC00) "{2}"\uC5D0\uC11C \uC124\uC815\uB41C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4.
++ MaxXMLNameLimit=JAXP00010005: "{0}" \uC774\uB984\uC774 "{2}"\uC5D0\uC11C \uC124\uC815\uB41C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4.
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= \"{0}\" \uC694\uC18C\uC5D0 \"{1}\"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC18D\uC131\uC774 \uC788\uC2B5\uB2C8\uB2E4. \"{1}\"\uC740(\uB294) \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = Um caractere XML inv\u00E1lido (Unicode: 0x {0}) foi encontrado no pr\u00F3logo do documento.
+ InvalidCharInXMLDecl = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado na declara\u00E7\u00E3o XML.
+ # 2.4 Character Data and Markup
+- CDEndInContent = A sequ\u00EAncia de caracteres \"]]>\" n\u00E3o deve aparecer no conte\u00FAdo, a menos que seja usada para marcar o fim de uma se\u00E7\u00E3o CDATA.
++ CDEndInContent = A sequ\u00EAncia de caracteres "]]>" n\u00E3o deve aparecer no conte\u00FAdo, a menos que seja usada para marcar o fim de uma se\u00E7\u00E3o CDATA.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = A se\u00E7\u00E3o CDATA deve terminar com \"]]>\".
++ CDSectUnterminated = A se\u00E7\u00E3o CDATA deve terminar com "]]>".
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = A declara\u00E7\u00E3o XML pode aparecer somente bem no in\u00EDcio do documento.
+- EqRequiredInXMLDecl = O caractere '' = '' deve estar ap\u00F3s \"{0}\" na declara\u00E7\u00E3o XML.
+- QuoteRequiredInXMLDecl = O valor ap\u00F3s \"{0}\" na declara\u00E7\u00E3o XML deve ser uma string entre aspas.
+- XMLDeclUnterminated = A declara\u00E7\u00E3o XML deve terminar com \"?>\".
++ EqRequiredInXMLDecl = O caractere '' = '' deve estar ap\u00F3s "{0}" na declara\u00E7\u00E3o XML.
++ QuoteRequiredInXMLDecl = O valor ap\u00F3s "{0}" na declara\u00E7\u00E3o XML deve ser uma string entre aspas.
++ XMLDeclUnterminated = A declara\u00E7\u00E3o XML deve terminar com "?>".
+ VersionInfoRequired = A vers\u00E3o \u00E9 obrigat\u00F3ria na declara\u00E7\u00E3o XML.
+ SpaceRequiredBeforeVersionInXMLDecl = O espa\u00E7o em branco \u00E9 necess\u00E1rio antes do pseudo-atributo da vers\u00E3o na declara\u00E7\u00E3o XML.
+ SpaceRequiredBeforeEncodingInXMLDecl = O espa\u00E7o em branco \u00E9 necess\u00E1rio antes de codificar o pseudo-atributo na declara\u00E7\u00E3o XML.
+@@ -71,85 +68,86 @@
+ ReferenceIllegalInTrailingMisc=A refer\u00EAncia n\u00E3o \u00E9 permitida na se\u00E7\u00E3o \u00E0 esquerda.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = O valor da declara\u00E7\u00E3o do documento stand-alone deve ser \"sim\" ou \"n\u00E3o\", mas n\u00E3o deve ser \"{0}\".
++ SDDeclInvalid = O valor da declara\u00E7\u00E3o do documento stand-alone deve ser "sim" ou "n\u00E3o", mas n\u00E3o deve ser "{0}".
++ SDDeclNameInvalid = O nome standalone na declara\u00E7\u00E3o XML pode estar grafado incorretamente.
+ # 2.12 Language Identification
+- XMLLangInvalid = O valor do atributo xml:lang \"{0}\" \u00E9 um identificador de idioma inv\u00E1lido.
++ XMLLangInvalid = O valor do atributo xml:lang "{0}" \u00E9 um identificador de idioma inv\u00E1lido.
+ # 3. Logical Structures
+- ETagRequired = O tipo de elemento {0}\" deve ser encerrado pela tag final correspondente \"{0}>\".
++ ETagRequired = O tipo de elemento {0}" deve ser encerrado pela tag final correspondente "{0}>".
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = O tipo de elemento \"{0}\" deve ser seguido pelas especifica\u00E7\u00F5es do atributo, \">\" ou \"/>\".
+- EqRequiredInAttribute = O nome do atributo \"{1}\" associado a um tipo de elemento \"{0}\" deve ser seguido do caractere '' = ''.
+- OpenQuoteExpected = S\u00E3o esperadas aspas de abertura para o atributo \"{1}\" associado a um tipo de elemento \"{0}\".
+- CloseQuoteExpected = S\u00E3o esperadas aspas de fechamento para o atributo \"{1}\" associado a um tipo de elemento \"{0}\".
+- AttributeNotUnique = O atributo \"{1}\" j\u00E1 foi especificado para o elemento \"{0}\".
+- AttributeNSNotUnique = O atributo \"{1}\" vinculado ao namespace \"{2}\" j\u00E1 foi especificado para o elemento \"{0}\".
+- ETagUnterminated = A tag final do tipo de elemento \"{0}\" deve terminar com um delimitador ''>".
++ ElementUnterminated = O tipo de elemento "{0}" deve ser seguido pelas especifica\u00E7\u00F5es do atributo, ">" ou "/>".
++ EqRequiredInAttribute = O nome do atributo "{1}" associado a um tipo de elemento "{0}" deve ser seguido do caractere '' = ''.
++ OpenQuoteExpected = S\u00E3o esperadas aspas de abertura para o atributo "{1}" associado a um tipo de elemento "{0}".
++ CloseQuoteExpected = S\u00E3o esperadas aspas de fechamento para o atributo "{1}" associado a um tipo de elemento "{0}".
++ AttributeNotUnique = O atributo "{1}" j\u00E1 foi especificado para o elemento "{0}".
++ AttributeNSNotUnique = O atributo "{1}" vinculado ao namespace "{2}" j\u00E1 foi especificado para o elemento "{0}".
++ ETagUnterminated = A tag final do tipo de elemento "{0}" deve terminar com um delimitador ''>".
+ MarkupNotRecognizedInContent = O conte\u00FAdo dos elementos deve consistir em dados ou marca\u00E7\u00E3o do caractere correto.
+ DoctypeIllegalInContent = Um DOCTYPE n\u00E3o \u00E9 permitido no conte\u00FAdo.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = A refer\u00EAncia deve ser encerrada por um delimitador ';'.
+ # 4.3.2 Well-Formed Parsed Entities
+- ReferenceNotInOneEntity = A refer\u00EAncia deve estar totalmente contida na mesma entidade submetida a parse.
+- ElementEntityMismatch = O elemento \"{0}\" deve come\u00E7ar e terminar com a mesma entidade.
++ ReferenceNotInOneEntity = A refer\u00EAncia deve estar totalmente contida na mesma entidade submetida a parsing.
++ ElementEntityMismatch = O elemento "{0}" deve come\u00E7ar e terminar com a mesma entidade.
+ MarkupEntityMismatch=As estruturas do documento XML devem come\u00E7ar e terminar com a mesma entidade.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = Um caractere XML inv\u00E1lido (Unicode: 0x {2}) foi encontrado no valor do atributo \"{1}\" e o elemento \u00E9 \"{0}\".
++ InvalidCharInAttValue = Um caractere XML inv\u00E1lido (Unicode: 0x {2}) foi encontrado no valor do atributo "{1}" e o elemento \u00E9 "{0}".
+ InvalidCharInComment = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado no coment\u00E1rio.
+ InvalidCharInPI = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado na instru\u00E7\u00E3o de processamento.
+ InvalidCharInInternalSubset = Um caractere XML inv\u00E1lido (Unicode: 0x {0}) foi encontrado no subconjunto interno do DTD.
+ InvalidCharInTextDecl = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado na declara\u00E7\u00E3o de texto.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = O valor do atributo \"{1}\" deve come\u00E7ar com aspas simples ou duplas.
+- LessthanInAttValue = O valor do atributo \"{1}\" associado a um tipo de elemento \"{0}\" n\u00E3o deve conter o caractere ''<''.
+- AttributeValueUnterminated = O valor do atributo \"{1}\" deve terminar com as aspas correspondentes.
++ QuoteRequiredInAttValue = O valor do atributo "{1}" deve come\u00E7ar com aspas simples ou duplas.
++ LessthanInAttValue = O valor do atributo "{1}" associado a um tipo de elemento "{0}" n\u00E3o deve conter o caractere ''<''.
++ AttributeValueUnterminated = O valor do atributo "{1}" deve terminar com as aspas correspondentes.
+ # 2.5 Comments
+- InvalidCommentStart = O coment\u00E1rio deve come\u00E7ar com \"\".
++ InvalidCommentStart = O coment\u00E1rio deve come\u00E7ar com "".
+ COMMENT_NOT_IN_ONE_ENTITY = O coment\u00E1rio n\u00E3o est\u00E1 entre chaves na mesma entidade.
+ # 2.6 Processing Instructions
+ PITargetRequired = A instru\u00E7\u00E3o de processamento deve come\u00E7ar com o nome do destino.
+ SpaceRequiredInPI = O espa\u00E7o em branco \u00E9 obrigat\u00F3rio entre o destino da instru\u00E7\u00E3o de processamento e os dados.
+- PIUnterminated = A instru\u00E7\u00E3o de processamento deve terminar com \"?>\".
+- ReservedPITarget = O destino da instru\u00E7\u00E3o de processamento correspondente \"[xX][mM][lL]\" n\u00E3o \u00E9 permitido.
++ PIUnterminated = A instru\u00E7\u00E3o de processamento deve terminar com "?>".
++ ReservedPITarget = O destino da instru\u00E7\u00E3o de processamento correspondente "[xX][mM][lL]" n\u00E3o \u00E9 permitido.
+ PI_NOT_IN_ONE_ENTITY = A instru\u00E7\u00E3o de processamento n\u00E3o est\u00E1 entre chaves na mesma entidade.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Vers\u00E3o inv\u00E1lida \"{0}\".
+- VersionNotSupported = Vers\u00E3o XML \"{0}\" n\u00E3o suportada; somente XML 1.0 \u00E9 suportada.
+- VersionNotSupported11 = Vers\u00E3o XML \"{0}\" n\u00E3o suportada, somente XML 1.0 e XML 1.1 s\u00E3o suportadas.
++ VersionInfoInvalid = Vers\u00E3o inv\u00E1lida "{0}".
++ VersionNotSupported = Vers\u00E3o XML "{0}" n\u00E3o suportada; somente XML 1.0 \u00E9 suportada.
++ VersionNotSupported11 = Vers\u00E3o XML "{0}" n\u00E3o suportada, somente XML 1.0 e XML 1.1 s\u00E3o suportadas.
+ VersionMismatch= Uma entidade n\u00E3o pode incluir outra entidade de uma vers\u00E3o posterior.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Uma representa\u00E7\u00E3o decimal deve seguir imediatamente o \"\" em uma refer\u00EAncia de caractere.
+- HexdigitRequiredInCharRef = Uma representa\u00E7\u00E3o hexadecimal deve seguir imediatamente o \"\" em uma refer\u00EAncia de caractere.
++ DigitRequiredInCharRef = Uma representa\u00E7\u00E3o decimal deve seguir imediatamente o "" em uma refer\u00EAncia de caractere.
++ HexdigitRequiredInCharRef = Uma representa\u00E7\u00E3o hexadecimal deve seguir imediatamente o "" em uma refer\u00EAncia de caractere.
+ SemicolonRequiredInCharRef = A refer\u00EAncia de caractere deve terminar com o delimitador ';'.
+- InvalidCharRef = A refer\u00EAncia do caractere \"{0}\" \u00E9 um caractere XML inv\u00E1lido.
++ InvalidCharRef = A refer\u00EAncia do caractere "{0}" \u00E9 um caractere XML inv\u00E1lido.
+ NameRequiredInReference = O nome da entidade deve seguir imediatamente o '&' na refer\u00EAncia da entidade.
+- SemicolonRequiredInReference = A refer\u00EAncia \u00E0 entidade \"{0}\" deve terminar com o delimitador '';''.
++ SemicolonRequiredInReference = A refer\u00EAncia \u00E0 entidade "{0}" deve terminar com o delimitador '';''.
+ # 4.3.1 The Text Declaration
+- TextDeclMustBeFirst = A declara\u00E7\u00E3o de texto somente pode aparecer bem no in\u00EDcio da entidade externa submetida a parse.
+- EqRequiredInTextDecl = O caractere '' = '' deve estar ap\u00F3s \"{0}\" na declara\u00E7\u00E3o de texto.
+- QuoteRequiredInTextDecl = O valor ap\u00F3s \"{0}\" na declara\u00E7\u00E3o de texto deve ser uma string entre aspas.
+- CloseQuoteMissingInTextDecl = n\u00E3o foi encontrada a aspa de fechamento no valor ap\u00F3s "{0}\" na declara\u00E7\u00E3o de texto.
++ TextDeclMustBeFirst = A declara\u00E7\u00E3o de texto somente pode aparecer bem no in\u00EDcio da entidade externa submetida a parsing.
++ EqRequiredInTextDecl = O caractere '' = '' deve estar ap\u00F3s "{0}" na declara\u00E7\u00E3o de texto.
++ QuoteRequiredInTextDecl = O valor ap\u00F3s "{0}" na declara\u00E7\u00E3o de texto deve ser uma string entre aspas.
++ CloseQuoteMissingInTextDecl = n\u00E3o foi encontrada a aspa de fechamento no valor ap\u00F3s "{0}" na declara\u00E7\u00E3o de texto.
+ SpaceRequiredBeforeVersionInTextDecl = O espa\u00E7o em branco \u00E9 necess\u00E1rio antes do pseudo-atributo da vers\u00E3o na declara\u00E7\u00E3o de texto.
+ SpaceRequiredBeforeEncodingInTextDecl = O espa\u00E7o em branco \u00E9 necess\u00E1rio antes de codificar o pseudo-atributo na declara\u00E7\u00E3o de texto.
+- TextDeclUnterminated = A declara\u00E7\u00E3o de texto deve terminar com \"?>\".
++ TextDeclUnterminated = A declara\u00E7\u00E3o de texto deve terminar com "?>".
+ EncodingDeclRequired = A declara\u00E7\u00E3o de codifica\u00E7\u00E3o \u00E9 necess\u00E1ria na declara\u00E7\u00E3o de texto.
+ NoMorePseudoAttributes = N\u00E3o s\u00E3o mais permitidos pseudo-atributos.
+ MorePseudoAttributes = S\u00E3o esperados mais pseudo-atributos.
+ PseudoAttrNameExpected = \u00C9 esperado um nome de um pseudo-atributo.
+ # 4.3.2 Well-Formed Parsed Entities
+- CommentNotInOneEntity = O coment\u00E1rio deve estar totalmente contido na mesma entidade submetida a parse.
+- PINotInOneEntity = A instru\u00E7\u00E3o de processamento deve estar totalmente contida na mesma entidade submetida a parse.
++ CommentNotInOneEntity = O coment\u00E1rio deve estar totalmente contido na mesma entidade submetida a parsing.
++ PINotInOneEntity = A instru\u00E7\u00E3o de processamento deve estar totalmente contida na mesma entidade submetida a parsing.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Nome da codifica\u00E7\u00E3o inv\u00E1lida \"{0}\".
+- EncodingByteOrderUnsupported = A ordem de bytes fornecida para codifica\u00E7\u00E3o \"{0}\" n\u00E3o \u00E9 suportada.
++ EncodingDeclInvalid = Nome da codifica\u00E7\u00E3o inv\u00E1lida "{0}".
++ EncodingByteOrderUnsupported = A ordem de bytes fornecida para codifica\u00E7\u00E3o "{0}" n\u00E3o \u00E9 suportada.
+ InvalidByte = Byte inv\u00E1lido {0} da sequ\u00EAncia UTF-8 do byte {1}.
+ ExpectedByte = Esperava {0} byte da sequ\u00EAncia UTF-8 do byte {1}.
+ InvalidHighSurrogate = Os bits substitutos altos na sequ\u00EAncia da UTF-8 n\u00E3o devem exceder 0x10 mas foi encontrado 0x{0}.
+- OperationNotSupported = A opera\u00E7\u00E3o \"{0}\" n\u00E3o \u00E9 suportada pelo leitor {1}.
+- InvalidASCII = O byte \"{0}\" n\u00E3o \u00E9 membro do conjunto de caracteres ASCII (7 bits).
++ OperationNotSupported = A opera\u00E7\u00E3o "{0}" n\u00E3o \u00E9 suportada pelo leitor {1}.
++ InvalidASCII = O byte "{0}" n\u00E3o \u00E9 membro do conjunto de caracteres ASCII (7 bits).
+ CharConversionFailure = Uma entidade destinada a estar em uma determinada codifica\u00E7\u00E3o n\u00E3o deve conter sequ\u00EAncias inv\u00E1lidas na referida codifica\u00E7\u00E3o.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = O caractere XML (Unicode: 0x{0}) n\u00E3o \u00E9 permitido no identificador p\u00FAblico.
+ SpaceRequiredBetweenPublicAndSystem = Espa\u00E7os em branco s\u00E3o necess\u00E1rios entre publicId e systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s \"''.
+- PEReferenceWithinMarkup = A refer\u00EAncia da entidade do par\u00E2metro \"%{0};\" n\u00E3o pode ocorrer na marca\u00E7\u00E3o no subconjunto interno do DTD.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s "''.
++ PEReferenceWithinMarkup = A refer\u00EAncia da entidade do par\u00E2metro "%{0};" n\u00E3o pode ocorrer na marca\u00E7\u00E3o no subconjunto interno do DTD.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = As declara\u00E7\u00F5es de marca\u00E7\u00E3o contidas ou apontadas pela declara\u00E7\u00E3o do tipo de documento devem estar corretas.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = Deve ser fornecida a declara\u00E7\u00E3o do atributo para \"xml:space\" como um tipo enumerado, cujo os \u00FAnicos valores poss\u00EDveis s\u00E3o \"default\" e \"preserve\".
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = Deve ser fornecida a declara\u00E7\u00E3o do atributo para "xml:space" como um tipo enumerado, cujo os \u00FAnicos valores poss\u00EDveis s\u00E3o "default" e "preserve".
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s \"''.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s o tipo de elemento "{0}" na declara\u00E7\u00E3o do tipo de elemento.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = A restri\u00E7\u00E3o \u00E9 necess\u00E1ria ap\u00F3s o tipo de elemento "{0}" na declara\u00E7\u00E3o do tipo de elemento.
++ ElementDeclUnterminated = A declara\u00E7\u00E3o do tipo de elemento "{0}" deve terminar com ''>''.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u00C9 necess\u00E1rio um caractere ''('' ou um tipo de elemento na declara\u00E7\u00E3o do tipo de elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u00C9 necess\u00E1rio um caractere '')'' na declara\u00E7\u00E3o do tipo de elemento \"{0}\".
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u00C9 necess\u00E1rio um caractere ''('' ou um tipo de elemento na declara\u00E7\u00E3o do tipo de elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u00C9 necess\u00E1rio um caractere '')'' na declara\u00E7\u00E3o do tipo de elemento "{0}".
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u00C9 necess\u00E1rio um tipo de elemento na declara\u00E7\u00E3o do tipo de elemento \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u00C9 necess\u00E1rio um caractere '')'' na declara\u00E7\u00E3o do tipo de elemento \"{0}\".
+- MixedContentUnterminated = O modelo de conte\u00FAdo misto \"{0}\" deve terminar com \")*\" quando os tipos de elementos filhos forem restringidos.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u00C9 necess\u00E1rio um tipo de elemento na declara\u00E7\u00E3o do tipo de elemento "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u00C9 necess\u00E1rio um caractere '')'' na declara\u00E7\u00E3o do tipo de elemento "{0}".
++ MixedContentUnterminated = O modelo de conte\u00FAdo misto "{0}" deve terminar com ")*" quando os tipos de elementos filhos forem restringidos.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s \"\".
+- IgnoreSectUnterminated = A se\u00E7\u00E3o condicional exclu\u00EDda deve terminar com \"]]>\".
++ IncludeSectUnterminated = A se\u00E7\u00E3o condicional inclu\u00EDda deve terminar com "]]>".
++ IgnoreSectUnterminated = A se\u00E7\u00E3o condicional exclu\u00EDda deve terminar com "]]>".
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = O nome da entidade deve seguir imediatamente o '%' na refer\u00EAncia da entidade do par\u00E2metro.
+- SemicolonRequiredInPEReference = A refer\u00EAncia da entidade do par\u00E2metro \"%{0};\" deve terminar com o delimitador '';".
++ SemicolonRequiredInPEReference = A refer\u00EAncia da entidade do par\u00E2metro "%{0};" deve terminar com o delimitador '';".
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s \"''.
+- MSG_DUPLICATE_ENTITY_DEFINITION = A entidade \"{0}\" foi declarada mais de uma vez.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre o nome da entidade "{0}" e a defini\u00E7\u00E3o da declara\u00E7\u00E3o da entidade.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = \u00C9 necess\u00E1rio um espa\u00E7o em branco entre "NDATA" e o nome da nota\u00E7\u00E3o na declara\u00E7\u00E3o da entidade "{0}".
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio antes de "NDATA" na declara\u00E7\u00E3o da entidade "{0}".
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = O nome da nota\u00E7\u00E3o \u00E9 necess\u00E1rio ap\u00F3s "NDATA" na declara\u00E7\u00E3o da entidade "{0}".
++ EntityDeclUnterminated = A declara\u00E7\u00E3o da entidade "{0}" deve terminar com ''>''.
++ MSG_DUPLICATE_ENTITY_DEFINITION = A entidade "{0}" foi declarada mais de uma vez.
+ # 4.2.2 External Entities
+- ExternalIDRequired = A declara\u00E7\u00E3o da entidade externa deve come\u00E7ar com \"SYSTEM\" ou \"PUBLIC\".
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre \"PUBLIC\" e o identificador p\u00FAblico.
++ ExternalIDRequired = A declara\u00E7\u00E3o da entidade externa deve come\u00E7ar com "SYSTEM" ou "PUBLIC".
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre "PUBLIC" e o identificador p\u00FAblico.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre o identificador p\u00FAblico e o identificador do sistema.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre \"SYSTEM\" e o identificador do sistema.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = O identificador do fragmento n\u00E3o deve ser especificado como parte do identificador do sistema \"{0}\".
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = O espa\u00E7o em branco \u00E9 necess\u00E1rio entre "SYSTEM" e o identificador do sistema.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = O identificador do fragmento n\u00E3o deve ser especificado como parte do identificador do sistema "{0}".
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s \"''.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s o nome da nota\u00E7\u00E3o "{0}" na declara\u00E7\u00E3o de nota\u00E7\u00E3o.
++ ExternalIDorPublicIDRequired = A declara\u00E7\u00E3o da nota\u00E7\u00E3o "{0}" deve incluir um identificador p\u00FAblico ou do sistema.
++ NotationDeclUnterminated = A declara\u00E7\u00E3o da nota\u00E7\u00E3o "{0}" deve terminar com ''>''.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = O tipo de elemento \"{1}\" j\u00E1 foi especificado no modelo de conte\u00FAdo da declara\u00E7\u00E3o do elemento \"{0}\".
+- ENTITIESInvalid = O valor do atributo \"{1}\" do tipo ENTITIES deve ser o nome de uma ou mais entidades n\u00E3o submetidas a parse.
+- ENTITYInvalid = O valor do atributo \"{1}\" do tipo ENTITY deve ser o nome de uma entidade n\u00E3o submetida a parse.
+- IDDefaultTypeInvalid = O atributo do ID \"{0}\" deve ter um default declarado \"#IMPLIED\" ou \"#REQUIRED\".
+- IDInvalid = O valor do atributo \"{0}\" do ID de tipo deve ser um nome.
+- IDInvalidWithNamespaces = O valor do atributo \"{0}\" do ID de tipo deve ser um NCName quando os namespaces estiverem ativados.
+- IDNotUnique = O valor do atributo \"{0}\" do ID de tipo deve ser exclusivo no documento.
+- IDREFInvalid = O valor do atributo \"{0}\" do IDREF de tipo deve ser um nome.
+- IDREFInvalidWithNamespaces = O valor do atributo \"{0}\" do IDREF de tipo deve ser um NCName quando os namespaces estiverem ativados.
+- IDREFSInvalid = O valor do atributo \"{0}\" de tipo IDREFS deve ter um ou mais nomes.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro \"{0}\" deve incluir as declara\u00E7\u00F5es aninhadas corretamente quando a refer\u00EAncia da entidade for usada como uma declara\u00E7\u00E3o completa.
+- ImproperDeclarationNesting = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro \"{0}\" deve incluir as declara\u00E7\u00F5es aninhadas corretamente.
+- ImproperGroupNesting = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro \"{0}\" deve incluir pares de par\u00EAnteses aninhados corretamente.
+- INVALID_PE_IN_CONDITIONAL = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro \"{0}\" deve incluir a se\u00E7\u00E3o condicional inteira ou apenas INCLUDE ou IGNORE.
+- MSG_ATTRIBUTE_NOT_DECLARED = O atributo \"{1}\" deve ser declarado para o tipo de elemento \"{0}\".
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = O atributo \"{0}\" com o valor \"{1}\" deve ter um valor da lista \"{2}\".
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = O valor \"{1}\" do atributo \"{0}\" n\u00E3o deve ser alterado por meio da normaliza\u00E7\u00E3o (para \"{2}\") em um documento stand-alone.
+- MSG_CONTENT_INCOMPLETE = O conte\u00FAdo do tipo de elemento \"{0}\" est\u00E1 incompleto; ele deve corresponder a \"{1}\".
+- MSG_CONTENT_INVALID = O conte\u00FAdo do tipo de elemento \"{0}\" deve corresponder a \"{1}\".
+- MSG_CONTENT_INVALID_SPECIFIED = O conte\u00FAdo do tipo de elemento \"{0}\" deve corresponder a \"{1}\". N\u00E3o s\u00E3o permitidos os filhos do tipo \"{2}\".
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = O atributo \"{1}\" do tipo de elemento \"{0}\" tem um valor default e deve ser especificado em um documento stand-alone.
+- MSG_DUPLICATE_ATTDEF = O atributo \"{1}\" j\u00E1 foi declarado para o tipo de elemento \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = O tipo de elemento \"{0}\" n\u00E3o deve ser declarado mais de uma vez.
+- MSG_ELEMENT_NOT_DECLARED = O tipo de elemento \"{0}\" deve ser declarado.
++ DuplicateTypeInMixedContent = O tipo de elemento "{1}" j\u00E1 foi especificado no modelo de conte\u00FAdo da declara\u00E7\u00E3o do elemento "{0}".
++ ENTITIESInvalid = O valor do atributo "{1}" do tipo ENTITIES deve ser o nome de uma ou mais entidades n\u00E3o submetidas a parsing.
++ ENTITYInvalid = O valor do atributo "{1}" do tipo ENTITY deve ser o nome de uma entidade n\u00E3o submetida a parsing.
++ IDDefaultTypeInvalid = O atributo do ID "{0}" deve ter um default declarado "#IMPLIED" ou "#REQUIRED".
++ IDInvalid = O valor do atributo "{0}" do ID de tipo deve ser um nome.
++ IDInvalidWithNamespaces = O valor do atributo "{0}" do ID de tipo deve ser um NCName quando os namespaces estiverem ativados.
++ IDNotUnique = O valor do atributo "{0}" do ID de tipo deve ser exclusivo no documento.
++ IDREFInvalid = O valor do atributo "{0}" do IDREF de tipo deve ser um nome.
++ IDREFInvalidWithNamespaces = O valor do atributo "{0}" do IDREF de tipo deve ser um NCName quando os namespaces estiverem ativados.
++ IDREFSInvalid = O valor do atributo "{0}" de tipo IDREFS deve ter um ou mais nomes.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro "{0}" deve incluir as declara\u00E7\u00F5es aninhadas corretamente quando a refer\u00EAncia da entidade for usada como uma declara\u00E7\u00E3o completa.
++ ImproperDeclarationNesting = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro "{0}" deve incluir as declara\u00E7\u00F5es aninhadas corretamente.
++ ImproperGroupNesting = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro "{0}" deve incluir pares de par\u00EAnteses aninhados corretamente.
++ INVALID_PE_IN_CONDITIONAL = O texto de substitui\u00E7\u00E3o da entidade do par\u00E2metro "{0}" deve incluir a se\u00E7\u00E3o condicional inteira ou apenas INCLUDE ou IGNORE.
++ MSG_ATTRIBUTE_NOT_DECLARED = O atributo "{1}" deve ser declarado para o tipo de elemento "{0}".
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = O atributo "{0}" com o valor "{1}" deve ter um valor da lista "{2}".
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = O valor "{1}" do atributo "{0}" n\u00E3o deve ser alterado por meio da normaliza\u00E7\u00E3o (para "{2}") em um documento stand-alone.
++ MSG_CONTENT_INCOMPLETE = O conte\u00FAdo do tipo de elemento "{0}" est\u00E1 incompleto; ele deve corresponder a "{1}".
++ MSG_CONTENT_INVALID = O conte\u00FAdo do tipo de elemento "{0}" deve corresponder a "{1}".
++ MSG_CONTENT_INVALID_SPECIFIED = O conte\u00FAdo do tipo de elemento "{0}" deve corresponder a "{1}". N\u00E3o s\u00E3o permitidos os filhos do tipo "{2}".
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = O atributo "{1}" do tipo de elemento "{0}" tem um valor default e deve ser especificado em um documento stand-alone.
++ MSG_DUPLICATE_ATTDEF = O atributo "{1}" j\u00E1 foi declarado para o tipo de elemento "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = O tipo de elemento "{0}" n\u00E3o deve ser declarado mais de uma vez.
++ MSG_ELEMENT_NOT_DECLARED = O tipo de elemento "{0}" deve ser declarado.
+ MSG_GRAMMAR_NOT_FOUND = O documento \u00E9 inv\u00E1lido: nenhuma gram\u00E1tica encontrada.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Um elemento com o identificador \"{0}\" deve aparecer no documento.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = A refer\u00EAncia \u00E0 entidade externa \"{0}\" n\u00E3o \u00E9 permitida em um documento stand-alone.
+- MSG_FIXED_ATTVALUE_INVALID = O atributo \"{1}\" com o valor \"{2}\" deve ter um valor \"{3}\".
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = O tipo de elemento \"{0}\" j\u00E1 tem o atributo \"{1}\" do ID do tipo; um segundo atributo \"{2}\" do ID de tipo n\u00E3o \u00E9 permitido.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = O tipo de elemento \"{0}\" j\u00E1 tem o atributo \"{1}\" do tipo NOTATION; um segundo atributo \"{2}\" do tipo NOTATION n\u00E3o \u00E9 permitido.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = A nota\u00E7\u00E3o \"{1}\" deve ser declarada quando referenciada na lista de tipos de nota\u00E7\u00E3o do atributo \"{0}\".
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = A nota\u00E7\u00E3o \"{1}\" deve ser declarada quando referenciada na declara\u00E7\u00E3o da entidade n\u00E3o submetida a parse para \"{0}\".
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = A refer\u00EAncia \u00E0 entidade \"{0}\" declarada em uma entidade externa submetida a parse n\u00E3o \u00E9 permitida em um documento stand-alone.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = O atributo \"{1}\" \u00E9 necess\u00E1rio e deve ser especificado para o tipo de elemento \"{0}\".
+- MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = N\u00E3o deve haver espa\u00E7o em branco entre os elementos declarados em uma entidade externa submetida a parse com o conte\u00FAdo do elemento em um documento stand-alone.
+- NMTOKENInvalid = O valor do atributo \"{0}\" do tipo NMTOKEN deve ser um token de nome.
+- NMTOKENSInvalid = O valor do atributo \"{0}\" do tipo NMTOKENS deve ter um ou mais tokens de nome.
+- NoNotationOnEmptyElement = O tipo de elemento \"{0}\" que foi declarado EMPTY n\u00E3o pode declarar o atributo \"{1}\" do tipo NOTATION.
+- RootElementTypeMustMatchDoctypedecl = O elemento-raiz do documento \"{1}\" deve corresponder \u00E0 raiz de DOCTYPE \"{0}\".
+- UndeclaredElementInContentSpec = O modelo do conte\u00FAdo do elemento \"{0}\" refere-se ao elemento n\u00E3o declarado \"{1}\".
+- UniqueNotationName = A declara\u00E7\u00E3o da nota\u00E7\u00E3o \"{0}\" n\u00E3o \u00E9 exclusiva. Um Nome fornecido n\u00E3o deve ser declarado em mais de uma declara\u00E7\u00E3o de nota\u00E7\u00E3o.
++ MSG_ELEMENT_WITH_ID_REQUIRED = Um elemento com o identificador "{0}" deve aparecer no documento.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = A refer\u00EAncia \u00E0 entidade externa "{0}" n\u00E3o \u00E9 permitida em um documento stand-alone.
++ MSG_FIXED_ATTVALUE_INVALID = O atributo "{1}" com o valor "{2}" deve ter um valor "{3}".
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = O tipo de elemento "{0}" j\u00E1 tem o atributo "{1}" do ID do tipo; um segundo atributo "{2}" do ID de tipo n\u00E3o \u00E9 permitido.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = O tipo de elemento "{0}" j\u00E1 tem o atributo "{1}" do tipo NOTATION; um segundo atributo "{2}" do tipo NOTATION n\u00E3o \u00E9 permitido.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = A nota\u00E7\u00E3o "{1}" deve ser declarada quando referenciada na lista de tipos de nota\u00E7\u00E3o do atributo "{0}".
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = A nota\u00E7\u00E3o "{1}" deve ser declarada quando referenciada na declara\u00E7\u00E3o da entidade n\u00E3o submetida a parsing para "{0}".
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = A refer\u00EAncia \u00E0 entidade "{0}" declarada em uma entidade externa submetida a parsing n\u00E3o \u00E9 permitida em um documento stand-alone.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = O atributo "{1}" \u00E9 necess\u00E1rio e deve ser especificado para o tipo de elemento "{0}".
++ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = N\u00E3o deve haver espa\u00E7o em branco entre os elementos declarados em uma entidade externa submetida a parsing com o conte\u00FAdo do elemento em um documento stand-alone.
++ NMTOKENInvalid = O valor do atributo "{0}" do tipo NMTOKEN deve ser um token de nome.
++ NMTOKENSInvalid = O valor do atributo "{0}" do tipo NMTOKENS deve ter um ou mais tokens de nome.
++ NoNotationOnEmptyElement = O tipo de elemento "{0}" que foi declarado EMPTY n\u00E3o pode declarar o atributo "{1}" do tipo NOTATION.
++ RootElementTypeMustMatchDoctypedecl = O elemento-raiz do documento "{1}" deve corresponder \u00E0 raiz de DOCTYPE "{0}".
++ UndeclaredElementInContentSpec = O modelo do conte\u00FAdo do elemento "{0}" refere-se ao elemento n\u00E3o declarado "{1}".
++ UniqueNotationName = A declara\u00E7\u00E3o da nota\u00E7\u00E3o "{0}" n\u00E3o \u00E9 exclusiva. Um Nome fornecido n\u00E3o deve ser declarado em mais de uma declara\u00E7\u00E3o de nota\u00E7\u00E3o.
+ ENTITYFailedInitializeGrammar = Validador de ENTITYDatatype: Falha ao chamar o m\u00E9todo de inicializa\u00E7\u00E3o com uma refer\u00EAncia de Gram\u00E1tica v\u00E1lida. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\" n\u00E3o \u00E9 submetida a parse.
+- ENTITYNotValid = ENTITY \"{0}\" n\u00E3o \u00E9 v\u00E1lida.
++ ENTITYNotUnparsed = ENTITY "{0}" n\u00E3o \u00E9 submetida a parsing.
++ ENTITYNotValid = ENTITY "{0}" n\u00E3o \u00E9 v\u00E1lida.
+ EmptyList = O valor dos tipos ENTITIES, IDREFS e NMTOKENS n\u00E3o pode estar na lista vazia.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = A refer\u00EAncia da entidade externa \"&{0};\" n\u00E3o \u00E9 permitida em um valor do atributo.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = A refer\u00EAncia da entidade externa "&{0};" n\u00E3o \u00E9 permitida em um valor do atributo.
++ AccessExternalDTD = DTD Externo: falha ao ler o DTD ''{0}'' externo porque o acesso a ''{1}'' n\u00E3o \u00E9 permitido em decorr\u00EAncia de uma restri\u00E7\u00E3o definida pela propriedade accessExternalDTD.
++ AccessExternalEntity = Entidade Externa: falha ao ler o documento ''{0}'' externo porque o acesso a ''{1}'' n\u00E3o \u00E9 permitido em decorr\u00EAncia de uma restri\u00E7\u00E3o definida pela propriedade accessExternalDTD.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = A entidade \"{0}\" foi referenciada, mas n\u00E3o declarada.
+- ReferenceToUnparsedEntity = A refer\u00EAncia da entidade n\u00E3o submetida a parse \"&{0};\" n\u00E3o \u00E9 permitida.
+- RecursiveReference = Refer\u00EAncia da entidade recursiva \"{0}\". (Caminho de refer\u00EAncia: {1}),
+- RecursiveGeneralReference = Refer\u00EAncia geral da entidade recursiva \"&{0};\". (Caminho de refer\u00EAncia: {1}),
+- RecursivePEReference = Refer\u00EAncia da entidade do par\u00E2metro recursivo \"%{0};\". (Caminho de refer\u00EAncia: {1}),
++ EntityNotDeclared = A entidade "{0}" foi referenciada, mas n\u00E3o declarada.
++ ReferenceToUnparsedEntity = A refer\u00EAncia da entidade n\u00E3o submetida a parsing "&{0};" n\u00E3o \u00E9 permitida.
++ RecursiveReference = Refer\u00EAncia da entidade recursiva "{0}". (Caminho de refer\u00EAncia: {1}),
++ RecursiveGeneralReference = Refer\u00EAncia geral da entidade recursiva "&{0};". (Caminho de refer\u00EAncia: {1}),
++ RecursivePEReference = Refer\u00EAncia da entidade do par\u00E2metro recursivo "%{0};". (Caminho de refer\u00EAncia: {1}),
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = A codifica\u00E7\u00E3o \"{0}\" n\u00E3o \u00E9 suportada.
+- EncodingRequired = Uma entidade submetida a parse n\u00E3o codificada em UTF-8 nem em UTF-16 deve conter uma declara\u00E7\u00E3o de codifica\u00E7\u00E3o.
++ EncodingNotSupported = A codifica\u00E7\u00E3o "{0}" n\u00E3o \u00E9 suportada.
++ EncodingRequired = Uma entidade submetida a parsing n\u00E3o codificada em UTF-8 nem em UTF-16 deve conter uma declara\u00E7\u00E3o de codifica\u00E7\u00E3o.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = O elemento ou o atributo n\u00E3o correspondem \u00E0 produ\u00E7\u00E3o QName: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = O elemento \"{0}\" n\u00E3o pode ter \"xmlns\" como seu prefixo.
+- ElementPrefixUnbound = O prefixo \"{0}\" do elemento \"{1}\" n\u00E3o est\u00E1 vinculado.
+- AttributePrefixUnbound = O prefixo \"{2}\" do atributo \"{1}\" associado a um tipo de elemento \"{0}\" n\u00E3o est\u00E1 vinculado.
+- EmptyPrefixedAttName = O valor do atributo \"{0}\" \u00E9 inv\u00E1lido. Associa\u00E7\u00F5es de namespace prefixadas n\u00E3o podem ficar vazias.
+- PrefixDeclared = O prefixo do namespace \"{0}\" n\u00E3o foi declarado.
++ ElementXMLNSPrefix = O elemento "{0}" n\u00E3o pode ter "xmlns" como seu prefixo.
++ ElementPrefixUnbound = O prefixo "{0}" do elemento "{1}" n\u00E3o est\u00E1 vinculado.
++ AttributePrefixUnbound = O prefixo "{2}" do atributo "{1}" associado a um tipo de elemento "{0}" n\u00E3o est\u00E1 vinculado.
++ EmptyPrefixedAttName = O valor do atributo "{0}" \u00E9 inv\u00E1lido. Associa\u00E7\u00F5es de namespace prefixadas n\u00E3o podem ficar vazias.
++ PrefixDeclared = O prefixo do namespace "{0}" n\u00E3o foi declarado.
+ CantBindXMLNS = O prefixo "xmlns" n\u00E3o pode ser vinculado a um namespace explicitamente, assim como o namespace de "xmlns" n\u00E3o pode ser vinculado a um prefixo explicitamente.
+ CantBindXML = O prefixo "xml" n\u00E3o pode ser vinculado a um namespace diferente do namespace comum, assim como o namespace de "xml" n\u00E3o pode ser vinculado a um prefixo diferente de "xml".
+- MSG_ATT_DEFAULT_INVALID = O defaultValue \"{1}\" do atributo \"{0}\" n\u00E3o \u00E9 v\u00E1lido para as restri\u00E7\u00F5es l\u00E9xicas deste tipo de atributo.
++ MSG_ATT_DEFAULT_INVALID = O defaultValue "{1}" do atributo "{0}" n\u00E3o \u00E9 v\u00E1lido para as restri\u00E7\u00F5es l\u00E9xicas deste tipo de atributo.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=O parser detectou mais de \"{0}\" expans\u00F5es da entidade neste documento. Este \u00E9 o limite imposto pela aplica\u00E7\u00E3o.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: O parser detectou mais de "{0}" expans\u00F5es da entidade neste documento. Este \u00E9 o limite imposto pelo JDK.
++ ElementAttributeLimit=JAXP00010002: o elemento "{0}" tem mais de "{1}" atributos. "{1}" \u00E9 o limite imposto pelo JDK.
++ MaxEntitySizeLimit=JAXP00010003: o tamanho da entidade "{0}" \u00E9 "{1}", o que excede o limite de "{2}" definido por "{3}".
++ TotalEntitySizeLimit=JAXP00010004: o tamanho acumulado "{0}" de entidades excedeu o limite de "{1}" definido por "{2}".
++ MaxXMLNameLimit=JAXP00010005: o nome "{0}" excedeu o limite de "{1}" definido por "{2}".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= O elemento \"{0}\" tem mais de \"{1}\" atributos. \"{1}\" \u00E9 o limite imposto pela aplica\u00E7\u00E3o.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i dokumentets prolog.
+ InvalidCharInXMLDecl = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i XML-deklarationen.
+ # 2.4 Character Data and Markup
+- CDEndInContent = Teckensekvensen \"]]>\" f\u00E5r inte f\u00F6rekomma i inneh\u00E5llet, s\u00E5vida det inte anv\u00E4nds f\u00F6r att markera slut av CDATA-sektion.
++ CDEndInContent = Teckensekvensen "]]>" f\u00E5r inte f\u00F6rekomma i inneh\u00E5llet, s\u00E5vida det inte anv\u00E4nds f\u00F6r att markera slut av CDATA-sektion.
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA-sektionen m\u00E5ste sluta med \"]]>\".
++ CDSectUnterminated = CDATA-sektionen m\u00E5ste sluta med "]]>".
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML-deklarationen f\u00E5r endast f\u00F6rekomma allra \u00F6verst i dokumentet.
+- EqRequiredInXMLDecl = Tecknet '' = '' m\u00E5ste anges efter \"{0}\" i XML-deklarationen.
+- QuoteRequiredInXMLDecl = V\u00E4rdet som f\u00F6ljer \"{0}\" i XML-deklarationen m\u00E5ste omges av citattecken.
+- XMLDeclUnterminated = XML-deklarationen m\u00E5ste avslutas med \"?>\".
++ EqRequiredInXMLDecl = Tecknet '' = '' m\u00E5ste anges efter "{0}" i XML-deklarationen.
++ QuoteRequiredInXMLDecl = V\u00E4rdet som f\u00F6ljer "{0}" i XML-deklarationen m\u00E5ste omges av citattecken.
++ XMLDeclUnterminated = XML-deklarationen m\u00E5ste avslutas med "?>".
+ VersionInfoRequired = Versionen kr\u00E4vs i XML-deklarationen.
+ SpaceRequiredBeforeVersionInXMLDecl = Tomt utrymme kr\u00E4vs f\u00F6re versionens pseudoattribut i XML-deklarationen.
+ SpaceRequiredBeforeEncodingInXMLDecl = Tomt utrymme kr\u00E4vs f\u00F6re kodningens pseudoattribut i XML-deklarationen.
+@@ -71,70 +68,71 @@
+ ReferenceIllegalInTrailingMisc=Referensen \u00E4r inte till\u00E5ten i efterf\u00F6ljande avsnitt.
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = Deklarationsv\u00E4rdet f\u00F6r frist\u00E5ende dokument m\u00E5ste vara \"yes\" eller \"no\", inte \"{0}\".
++ SDDeclInvalid = Deklarationsv\u00E4rdet f\u00F6r frist\u00E5ende dokument m\u00E5ste vara "yes" eller "no", inte "{0}".
++ SDDeclNameInvalid = Det frist\u00E5ende namnet i XML-deklarationen kan vara felstavat.
+ # 2.12 Language Identification
+- XMLLangInvalid = Attributv\u00E4rdet \"{0}\" f\u00F6r xml:lang \u00E4r en ogiltig spr\u00E5kidentifierare.
++ XMLLangInvalid = Attributv\u00E4rdet "{0}" f\u00F6r xml:lang \u00E4r en ogiltig spr\u00E5kidentifierare.
+ # 3. Logical Structures
+- ETagRequired = Elementtyp \"{0}\" m\u00E5ste avslutas med matchande sluttagg \"{0}>\".
++ ETagRequired = Elementtyp "{0}" m\u00E5ste avslutas med matchande sluttagg "{0}>".
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = Elementtyp \"{0}\" m\u00E5ste f\u00F6ljas av n\u00E5gondera av attributspecifikationerna \">\" eller \"/>\".
+- EqRequiredInAttribute = Attributnamnet \"{1}\" som associeras med elementtyp \"{0}\" m\u00E5ste f\u00F6ljas av likhetstecknet ('' = '').
+- OpenQuoteExpected = \u00D6ppningscitattecken f\u00F6rv\u00E4ntas f\u00F6r attributet \"{1}\" som associeras med elementtyp \"{0}\".
+- CloseQuoteExpected = Slutcitattecken f\u00F6rv\u00E4ntas f\u00F6r attributet \"{1}\" som associeras med elementtyp \"{0}\".
+- AttributeNotUnique = Attributet \"{1}\" har redan angetts f\u00F6r elementet \"{0}\".
+- AttributeNSNotUnique = Attributet \"{1}\" bundet till namnrymden \"{2}\" har redan angetts f\u00F6r elementet \"{0}\".
+- ETagUnterminated = Sluttaggen f\u00F6r elementtyp \"{0}\" m\u00E5ste avslutas med en ''>''-avgr\u00E4nsare.
++ ElementUnterminated = Elementtyp "{0}" m\u00E5ste f\u00F6ljas av n\u00E5gondera av attributspecifikationerna ">" eller "/>".
++ EqRequiredInAttribute = Attributnamnet "{1}" som associeras med elementtyp "{0}" m\u00E5ste f\u00F6ljas av likhetstecknet ('' = '').
++ OpenQuoteExpected = \u00D6ppningscitattecken f\u00F6rv\u00E4ntas f\u00F6r attributet "{1}" som associeras med elementtyp "{0}".
++ CloseQuoteExpected = Slutcitattecken f\u00F6rv\u00E4ntas f\u00F6r attributet "{1}" som associeras med elementtyp "{0}".
++ AttributeNotUnique = Attributet "{1}" har redan angetts f\u00F6r elementet "{0}".
++ AttributeNSNotUnique = Attributet "{1}" bundet till namnrymden "{2}" har redan angetts f\u00F6r elementet "{0}".
++ ETagUnterminated = Sluttaggen f\u00F6r elementtyp "{0}" m\u00E5ste avslutas med en ''>''-avgr\u00E4nsare.
+ MarkupNotRecognizedInContent = Elementinneh\u00E5llet m\u00E5ste best\u00E5 av v\u00E4lformulerad(e) teckendata eller kodtext.
+ DoctypeIllegalInContent = DOCTYPE \u00E4r inte till\u00E5tet i inneh\u00E5llet.
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = Referensen m\u00E5ste avslutas med en ';'-avgr\u00E4nsare.
+ # 4.3.2 Well-Formed Parsed Entities
+ ReferenceNotInOneEntity = Referensen m\u00E5ste finnas med inom samma tolkade enhet.
+- ElementEntityMismatch = Elementet \"{0}\" m\u00E5ste b\u00F6rja och sluta inom samma enhet.
++ ElementEntityMismatch = Elementet "{0}" m\u00E5ste b\u00F6rja och sluta inom samma enhet.
+ MarkupEntityMismatch=XML-dokumentstrukturer m\u00E5ste b\u00F6rja och sluta inom samma enhet.
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = Ett ogiltigt XML-tecken (Unicode: 0x{2}) hittades i attributv\u00E4rdet \"{1}\" och elementet \u00E4r \"{0}\".
++ InvalidCharInAttValue = Ett ogiltigt XML-tecken (Unicode: 0x{2}) hittades i attributv\u00E4rdet "{1}" och elementet \u00E4r "{0}".
+ InvalidCharInComment = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i kommentaren.
+- InvalidCharInPI = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades bearbetningsinstruktionen.
++ InvalidCharInPI = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i bearbetningsinstruktionen.
+ InvalidCharInInternalSubset = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i den interna delm\u00E4ngden i DTD.
+ InvalidCharInTextDecl = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i textdeklarationen.
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = Attributv\u00E4rdet \"{1}\" m\u00E5ste b\u00F6rja med antingen enkelt eller dubbelt citattecken.
+- LessthanInAttValue = Attributv\u00E4rdet \"{1}\" som associeras med elementtyp \"{0}\" f\u00E5r inte inneh\u00E5lla n\u00E5got ''<''-tecken.
+- AttributeValueUnterminated = Attributv\u00E4rdet \"{1}\" m\u00E5ste avslutas med matchande citattecken.
++ QuoteRequiredInAttValue = Attributv\u00E4rdet "{1}" m\u00E5ste b\u00F6rja med antingen enkelt eller dubbelt citattecken.
++ LessthanInAttValue = Attributv\u00E4rdet "{1}" som associeras med elementtyp "{0}" f\u00E5r inte inneh\u00E5lla n\u00E5got ''<''-tecken.
++ AttributeValueUnterminated = Attributv\u00E4rdet "{1}" m\u00E5ste avslutas med matchande citattecken.
+ # 2.5 Comments
+- InvalidCommentStart = Kommentarer m\u00E5ste inledas med \"\".
++ InvalidCommentStart = Kommentarer m\u00E5ste inledas med "".
+ COMMENT_NOT_IN_ONE_ENTITY = Kommentaren innesluts inte i samma enhet.
+ # 2.6 Processing Instructions
+ PITargetRequired = Bearbetningsinstruktionen m\u00E5ste b\u00F6rja med m\u00E5lnamnet.
+ SpaceRequiredInPI = Tomt utrymme kr\u00E4vs mellan bearbetningsinstruktionens m\u00E5l och data.
+- PIUnterminated = Bearbetningsinstruktionen m\u00E5ste avslutas med \"?>\".
+- ReservedPITarget = Bearbetningsinstruktionens m\u00E5lmatchning \"[xX][mM][lL]\" \u00E4r inte till\u00E5ten.
++ PIUnterminated = Bearbetningsinstruktionen m\u00E5ste avslutas med "?>".
++ ReservedPITarget = Bearbetningsinstruktionens m\u00E5lmatchning "[xX][mM][lL]" \u00E4r inte till\u00E5ten.
+ PI_NOT_IN_ONE_ENTITY = Bearbetningsinstruktionen innesluts inte i samma enhet.
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = Ogiltig version \"{0}\".
+- VersionNotSupported = XML-versionen \"{0}\" st\u00F6ds inte, endast XML 1.0 st\u00F6ds.
+- VersionNotSupported11 = XML-versionen \"{0}\" st\u00F6ds inte, endast XML 1.0 och XML 1.1 st\u00F6ds.
++ VersionInfoInvalid = Ogiltig version "{0}".
++ VersionNotSupported = XML-versionen "{0}" st\u00F6ds inte, endast XML 1.0 st\u00F6ds.
++ VersionNotSupported11 = XML-versionen "{0}" st\u00F6ds inte, endast XML 1.0 och XML 1.1 st\u00F6ds.
+ VersionMismatch= En enhet kan inte inkludera n\u00E5gon annan enhet som har en senare version.
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = Ett decimalt uttryck m\u00E5ste anges direkt efter \"\" i en teckenreferens.
+- HexdigitRequiredInCharRef = Ett hexadecimalt uttryck m\u00E5ste anges direkt efter \"\" i en teckenreferens.
++ DigitRequiredInCharRef = Ett decimalt uttryck m\u00E5ste anges direkt efter "" i en teckenreferens.
++ HexdigitRequiredInCharRef = Ett hexadecimalt uttryck m\u00E5ste anges direkt efter "" i en teckenreferens.
+ SemicolonRequiredInCharRef = Teckenreferensen m\u00E5ste avslutas med ';'-avgr\u00E4nsare.
+- InvalidCharRef = Teckenreferensen \"{0}\" \u00E4r ett ogiltigt XML-tecken.
++ InvalidCharRef = Teckenreferensen "{0}" \u00E4r ett ogiltigt XML-tecken.
+ NameRequiredInReference = Enhetsnamnet m\u00E5ste omedelbart f\u00F6ljas av '&' i enhetsreferensen.
+- SemicolonRequiredInReference = Referensen till enhet \"{0}\" m\u00E5ste avslutas med '';''-avgr\u00E4nsare.
++ SemicolonRequiredInReference = Referensen till enhet "{0}" m\u00E5ste avslutas med '';''-avgr\u00E4nsare.
+ # 4.3.1 The Text Declaration
+ TextDeclMustBeFirst = Textdeklarationen m\u00E5ste anges direkt i b\u00F6rjan av externt tolkad enhet.
+- EqRequiredInTextDecl = Ett likhetstecken ('' = '') m\u00E5ste anges efter \"{0}\" i textdeklarationen.
+- QuoteRequiredInTextDecl = V\u00E4rdet som f\u00F6ljer \"{0}\" i textdeklarationen m\u00E5ste omges av citattecken.
+- CloseQuoteMissingInTextDecl = avslutande citattecken saknas f\u00F6r v\u00E4rdet efter \"{0}\" i textdeklarationen.
++ EqRequiredInTextDecl = Ett likhetstecken ('' = '') m\u00E5ste anges efter "{0}" i textdeklarationen.
++ QuoteRequiredInTextDecl = V\u00E4rdet som f\u00F6ljer "{0}" i textdeklarationen m\u00E5ste omges av citattecken.
++ CloseQuoteMissingInTextDecl = avslutande citattecken saknas f\u00F6r v\u00E4rdet efter "{0}" i textdeklarationen.
+ SpaceRequiredBeforeVersionInTextDecl = Tomt utrymme kr\u00E4vs f\u00F6re versionens pseudoattribut i textdeklarationen.
+ SpaceRequiredBeforeEncodingInTextDecl = Tomt utrymme kr\u00E4vs f\u00F6re kodningens pseudoattribut i textdeklarationen.
+- TextDeclUnterminated = Textdeklarationen m\u00E5ste avslutas med \"?>\".
++ TextDeclUnterminated = Textdeklarationen m\u00E5ste avslutas med "?>".
+ EncodingDeclRequired = Koddeklaration kr\u00E4vs i textdeklarationen.
+ NoMorePseudoAttributes = Inga fler pseudoattribut \u00E4r till\u00E5tna.
+ MorePseudoAttributes = Ytterligare pseudoattribut f\u00F6rv\u00E4ntas.
+@@ -143,13 +141,13 @@
+ CommentNotInOneEntity = Kommentaren m\u00E5ste finnas med inom samma tolkade enhet.
+ PINotInOneEntity = Bearbetningsinstruktionen m\u00E5ste finnas med inom samma tolkade enhet.
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = Ogiltigt kodnamn, \"{0}\".
+- EncodingByteOrderUnsupported = Angiven byteordningsf\u00F6ljd i kodning \"{0}\" st\u00F6ds inte.
++ EncodingDeclInvalid = Ogiltigt kodnamn, "{0}".
++ EncodingByteOrderUnsupported = Angiven byteordningsf\u00F6ljd i kodning "{0}" st\u00F6ds inte.
+ InvalidByte = Ogiltig byte {0} i UTF-8-sekvensen f\u00F6r {1}-byte.
+ ExpectedByte = F\u00F6rv\u00E4ntad byte {0} i UTF-8-sekvensen f\u00F6r {1}-byte.
+ InvalidHighSurrogate = H\u00F6ga surrogatbitar i UTF-8-sekvens f\u00E5r inte \u00F6verskrida 0x10, men 0x{0} hittades.
+- OperationNotSupported = Operation \"{0}\" st\u00F6ds inte i l\u00E4saren {1}.
+- InvalidASCII = Byte \"{0}\" ing\u00E5r inte i ASCII-teckenupps\u00E4ttningen (7 bitar).
++ OperationNotSupported = Operation "{0}" st\u00F6ds inte i l\u00E4saren {1}.
++ InvalidASCII = Byte "{0}" ing\u00E5r inte i ASCII-teckenupps\u00E4ttningen (7 bitar).
+ CharConversionFailure = En enhet som fastst\u00E4lls anv\u00E4nda ett visst kodformat f\u00E5r inte inneh\u00E5lla sekvenser som \u00E4r otill\u00E5tna i kodningen.
+
+ # DTD Messages
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = Tecknet (Unicode: 0x{0}) \u00E4r inte till\u00E5tet i den allm\u00E4nna identifieraren.
+ SpaceRequiredBetweenPublicAndSystem = Tomma utrymmen kr\u00E4vs mellan publicId och systemId.
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Tomt utrymme kr\u00E4vs efter \"''.
+- PEReferenceWithinMarkup = Parameterreferensen \"%{0};\" f\u00E5r inte f\u00F6rekomma i kodtexten i den interna delm\u00E4ngden i DTD.
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = Tomt utrymme kr\u00E4vs efter "''.
++ PEReferenceWithinMarkup = Parameterreferensen "%{0};" f\u00E5r inte f\u00F6rekomma i kodtexten i den interna delm\u00E4ngden i DTD.
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = Kodtextdeklarationerna som finns med eller pekas till fr\u00E5n dokumenttypdeklarationen m\u00E5ste vara v\u00E4lformulerade.
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = Attributdeklarationen f\u00F6r \"xml:space\" m\u00E5ste anges som uppr\u00E4kningstyp vars enda m\u00F6jliga v\u00E4rden \u00E4r \"default\" och \"preserve\".
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = Attributdeklarationen f\u00F6r "xml:space" m\u00E5ste anges som uppr\u00E4kningstyp vars enda m\u00F6jliga v\u00E4rden \u00E4r "default" och "preserve".
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = Tomt utrymme kr\u00E4vs efter \"''.
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = Tomt utrymme kr\u00E4vs efter elementtyp "{0}" i elementtypdeklarationen.
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = Begr\u00E4nsningen kr\u00E4vs efter elementtyp "{0}" i elementtypdeklarationen.
++ ElementDeclUnterminated = Deklarationen f\u00F6r elementtyp "{0}" m\u00E5ste avslutas med ''>''.
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Tecknet ''('' eller en elementtyp m\u00E5ste anges i deklarationen av elementtyp \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Tecknet '')'' m\u00E5ste anges i deklarationen av elementtyp \"{0}\".
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = Tecknet ''('' eller en elementtyp m\u00E5ste anges i deklarationen av elementtyp "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = Tecknet '')'' m\u00E5ste anges i deklarationen av elementtyp "{0}".
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = En elementtyp m\u00E5ste anges i deklarationen av elementtyp \"{0}\".
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Tecknet '')'' m\u00E5ste anges i deklarationen av elementtyp \"{0}\".
+- MixedContentUnterminated = Modellen med blandat inneh\u00E5ll \"{0}\" m\u00E5ste avslutas med \")*\" om typer av underordnade element \u00E4r begr\u00E4nsade.
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = En elementtyp m\u00E5ste anges i deklarationen av elementtyp "{0}".
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = Tecknet '')'' m\u00E5ste anges i deklarationen av elementtyp "{0}".
++ MixedContentUnterminated = Modellen med blandat inneh\u00E5ll "{0}" m\u00E5ste avslutas med ")*" om typer av underordnade element \u00E4r begr\u00E4nsade.
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = Tomt utrymme kr\u00E4vs efter \"\".
+- IgnoreSectUnterminated = Exkluderat villkorsavsnitt m\u00E5ste avslutas med \"]]>\".
++ IncludeSectUnterminated = Inkluderat villkorsavsnitt m\u00E5ste avslutas med "]]>".
++ IgnoreSectUnterminated = Exkluderat villkorsavsnitt m\u00E5ste avslutas med "]]>".
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = Enhetsnamnet m\u00E5ste omedelbart f\u00F6ljas av '%' i parameterreferensen.
+- SemicolonRequiredInPEReference = Parameterreferensen \"%{0};\" m\u00E5ste avslutas med '';''-avgr\u00E4nsare.
++ SemicolonRequiredInPEReference = Parameterreferensen "%{0};" m\u00E5ste avslutas med '';''-avgr\u00E4nsare.
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = Tomt utrymme kr\u00E4vs efter \"''.
+- MSG_DUPLICATE_ENTITY_DEFINITION = Enheten \"{0}\" har deklarerats mer \u00E4n en g\u00E5ng.
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = Tomt utrymme kr\u00E4vs mellan enhetsnamnet "{0}" och definitionen i enhetsdeklarationen.
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = Tomt utrymme kr\u00E4vs mellan "NDATA" och notationsnamnet i deklarationen f\u00F6r enheten "{0}".
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = Tomt utrymme kr\u00E4vs f\u00F6re "NDATA" i deklarationen f\u00F6r enheten "{0}".
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = Notationsnamnet m\u00E5ste anges efter "NDATA" i deklarationen f\u00F6r enheten "{0}".
++ EntityDeclUnterminated = Deklarationen f\u00F6r enheten "{0}" m\u00E5ste avslutas med ''>''.
++ MSG_DUPLICATE_ENTITY_DEFINITION = Enheten "{0}" har deklarerats mer \u00E4n en g\u00E5ng.
+ # 4.2.2 External Entities
+- ExternalIDRequired = Den externa enhetsdeklarationen m\u00E5ste inledas med antingen \"SYSTEM\" eller \"PUBLIC\".
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan \"PUBLIC\" och den allm\u00E4nna identifieraren.
++ ExternalIDRequired = Den externa enhetsdeklarationen m\u00E5ste inledas med antingen "SYSTEM" eller "PUBLIC".
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan "PUBLIC" och den allm\u00E4nna identifieraren.
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan den allm\u00E4nna identifieraren och systemidentifieraren.
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan \"SYSTEM\" och systemidentifieraren.
+- MSG_URI_FRAGMENT_IN_SYSTEMID = Fragmentidentifieraren f\u00E5r inte anges som del av systemidentifieraren \"{0}\".
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = Tomt utrymme kr\u00E4vs mellan "SYSTEM" och systemidentifieraren.
++ MSG_URI_FRAGMENT_IN_SYSTEMID = Fragmentidentifieraren f\u00E5r inte anges som del av systemidentifieraren "{0}".
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = Tomt utrymme kr\u00E4vs efter \"''.
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = Tomt utrymme kr\u00E4vs efter notationsnamnet "{0}" i notationsdeklarationen.
++ ExternalIDorPublicIDRequired = Deklarationen f\u00F6r notationen "{0}" m\u00E5ste inkludera systemidentifierare eller allm\u00E4n identifierare.
++ NotationDeclUnterminated = Deklarationen f\u00F6r notationen "{0}" m\u00E5ste avslutas med ''>''.
+
+ # Validation messages
+- DuplicateTypeInMixedContent = Elementtyp \"{1}\" har redan angetts i modellen med inneh\u00E5ll f\u00F6r elementdeklarationen \"{0}\".
+- ENTITIESInvalid = Attributv\u00E4rdet \"{1}\" av typen ENTITIES m\u00E5ste motsvara namnen p\u00E5 en eller flera otolkade enheter.
+- ENTITYInvalid = Attributv\u00E4rdet \"{1}\" av typen ENTITY m\u00E5ste motsvara namnet p\u00E5 en otolkad enhet.
+- IDDefaultTypeInvalid = Id-attributet \"{0}\" m\u00E5ste inneh\u00E5lla deklarerat standardv\u00E4rde \"#IMPLIED\" eller \"#REQUIRED\".
+- IDInvalid = Attributv\u00E4rdet \"{0}\" av typen ID m\u00E5ste vara ett namn.
+- IDInvalidWithNamespaces = Attributv\u00E4rdet \"{0}\" av typen ID m\u00E5ste vara NCName om namnrymder anv\u00E4nds.
+- IDNotUnique = Attributv\u00E4rdet \"{0}\" av typen ID m\u00E5ste vara unikt inom dokumentet.
+- IDREFInvalid = Attributv\u00E4rdet \"{0}\" av typen IDREF m\u00E5ste vara ett namn.
+- IDREFInvalidWithNamespaces = Attributv\u00E4rdet \"{0}\" av typen IDREF m\u00E5ste vara NCName om namnrymder anv\u00E4nds.
+- IDREFSInvalid = Attributv\u00E4rdet \"{0}\" av typen IDREFS m\u00E5ste vara ett eller flera namn.
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Ers\u00E4ttningstexten f\u00F6r parameterenheten \"{0}\" m\u00E5ste inkludera korrekt kapslade deklarationer om enhetsreferensen anv\u00E4nds som fullst\u00E4ndig deklaration.
+- ImproperDeclarationNesting = Ers\u00E4ttningstexten f\u00F6r parameterenheten \"{0}\" m\u00E5ste inkludera deklarationer som \u00E4r korrekt kapslade.
+- ImproperGroupNesting = Ers\u00E4ttningstexten f\u00F6r parameterenheten \"{0}\" m\u00E5ste inkludera parentespar som \u00E4r korrekt kapslade.
+- INVALID_PE_IN_CONDITIONAL = Ers\u00E4ttningstexten f\u00F6r parameterenheten \"{0}\" m\u00E5st inkludera hela villkorsavsnittet eller endast INCLUDE eller IGNORE.
+- MSG_ATTRIBUTE_NOT_DECLARED = Attributet \"{1}\" m\u00E5ste deklareras f\u00F6r elementtyp \"{0}\".
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = Attributet \"{0}\" med v\u00E4rdet \"{1}\" m\u00E5ste ha ett v\u00E4rde fr\u00E5n listan \"{2}\".
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = V\u00E4rdet \"{1}\" f\u00F6r attributet \"{0}\" f\u00E5r inte \u00E4ndras vid normalisering (till \"{2}\") i ett frist\u00E5ende dokument.
+- MSG_CONTENT_INCOMPLETE = Inneh\u00E5llet i elementtyp \"{0}\" \u00E4r ofullst\u00E4ndigt, det m\u00E5ste matcha \"{1}\".
+- MSG_CONTENT_INVALID = Inneh\u00E5llet i elementtyp \"{0}\" m\u00E5ste matcha \"{1}\".
+- MSG_CONTENT_INVALID_SPECIFIED = Inneh\u00E5llet i elementtyp \"{0}\" m\u00E5ste matcha \"{1}\". Underordnade till typ \"{2}\" \u00E4r inte till\u00E5tna.
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = Attributet \"{1}\" f\u00F6r elementtyp \"{0}\" har ett standardv\u00E4rde och m\u00E5ste anges i ett frist\u00E5ende dokument.
+- MSG_DUPLICATE_ATTDEF = Attributet \"{1}\" har redan deklarerats f\u00F6r elementtyp \"{0}\".
+- MSG_ELEMENT_ALREADY_DECLARED = Elementtyp \"{0}\" f\u00E5r deklareras endast en g\u00E5ng.
+- MSG_ELEMENT_NOT_DECLARED = Elementtyp \"{0}\" m\u00E5ste deklareras.
++ DuplicateTypeInMixedContent = Elementtyp "{1}" har redan angetts i modellen med inneh\u00E5ll f\u00F6r elementdeklarationen "{0}".
++ ENTITIESInvalid = Attributv\u00E4rdet "{1}" av typen ENTITIES m\u00E5ste motsvara namnen p\u00E5 en eller flera otolkade enheter.
++ ENTITYInvalid = Attributv\u00E4rdet "{1}" av typen ENTITY m\u00E5ste motsvara namnet p\u00E5 en otolkad enhet.
++ IDDefaultTypeInvalid = Id-attributet "{0}" m\u00E5ste inneh\u00E5lla deklarerat standardv\u00E4rde "#IMPLIED" eller "#REQUIRED".
++ IDInvalid = Attributv\u00E4rdet "{0}" av typen ID m\u00E5ste vara ett namn.
++ IDInvalidWithNamespaces = Attributv\u00E4rdet "{0}" av typen ID m\u00E5ste vara NCName om namnrymder anv\u00E4nds.
++ IDNotUnique = Attributv\u00E4rdet "{0}" av typen ID m\u00E5ste vara unikt inom dokumentet.
++ IDREFInvalid = Attributv\u00E4rdet "{0}" av typen IDREF m\u00E5ste vara ett namn.
++ IDREFInvalidWithNamespaces = Attributv\u00E4rdet "{0}" av typen IDREF m\u00E5ste vara NCName om namnrymder anv\u00E4nds.
++ IDREFSInvalid = Attributv\u00E4rdet "{0}" av typen IDREFS m\u00E5ste vara ett eller flera namn.
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = Ers\u00E4ttningstexten f\u00F6r parameterenheten "{0}" m\u00E5ste inkludera korrekt kapslade deklarationer om enhetsreferensen anv\u00E4nds som fullst\u00E4ndig deklaration.
++ ImproperDeclarationNesting = Ers\u00E4ttningstexten f\u00F6r parameterenheten "{0}" m\u00E5ste inkludera deklarationer som \u00E4r korrekt kapslade.
++ ImproperGroupNesting = Ers\u00E4ttningstexten f\u00F6r parameterenheten "{0}" m\u00E5ste inkludera parentespar som \u00E4r korrekt kapslade.
++ INVALID_PE_IN_CONDITIONAL = Ers\u00E4ttningstexten f\u00F6r parameterenheten "{0}" m\u00E5st inkludera hela villkorsavsnittet eller endast INCLUDE eller IGNORE.
++ MSG_ATTRIBUTE_NOT_DECLARED = Attributet "{1}" m\u00E5ste deklareras f\u00F6r elementtyp "{0}".
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = Attributet "{0}" med v\u00E4rdet "{1}" m\u00E5ste ha ett v\u00E4rde fr\u00E5n listan "{2}".
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = V\u00E4rdet "{1}" f\u00F6r attributet "{0}" f\u00E5r inte \u00E4ndras vid normalisering (till "{2}") i ett frist\u00E5ende dokument.
++ MSG_CONTENT_INCOMPLETE = Inneh\u00E5llet i elementtyp "{0}" \u00E4r ofullst\u00E4ndigt, det m\u00E5ste matcha "{1}".
++ MSG_CONTENT_INVALID = Inneh\u00E5llet i elementtyp "{0}" m\u00E5ste matcha "{1}".
++ MSG_CONTENT_INVALID_SPECIFIED = Inneh\u00E5llet i elementtyp "{0}" m\u00E5ste matcha "{1}". Underordnade till typ "{2}" \u00E4r inte till\u00E5tna.
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = Attributet "{1}" f\u00F6r elementtyp "{0}" har ett standardv\u00E4rde och m\u00E5ste anges i ett frist\u00E5ende dokument.
++ MSG_DUPLICATE_ATTDEF = Attributet "{1}" har redan deklarerats f\u00F6r elementtyp "{0}".
++ MSG_ELEMENT_ALREADY_DECLARED = Elementtyp "{0}" f\u00E5r deklareras endast en g\u00E5ng.
++ MSG_ELEMENT_NOT_DECLARED = Elementtyp "{0}" m\u00E5ste deklareras.
+ MSG_GRAMMAR_NOT_FOUND = Dokumentet \u00E4r ogiltigt: hittade ingen grammatik.
+- MSG_ELEMENT_WITH_ID_REQUIRED = Ett element med identifieraren \"{0}\" m\u00E5ste finnas med i dokumentet.
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Referens till den externa enheten \"{0}\" \u00E4r inte till\u00E5tet i frist\u00E5ende dokument.
+- MSG_FIXED_ATTVALUE_INVALID = Attributet \"{1}\" med v\u00E4rdet \"{2}\" m\u00E5ste ha v\u00E4rdet \"{3}\".
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Elementtyp \"{0}\" har redan attributet \"{1}\" av id-typ, ett andra attribut \"{2}\" av samma typ \u00E4r inte till\u00E5tet.
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Elementtyp \"{0}\" har redan attributet \"{1}\" av NOTATION-typ, ett andra attribut \"{2}\" av samma typ \u00E4r inte till\u00E5tet.
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = Notationen \"{1}\" m\u00E5ste deklareras vid referens i notationstyplistan f\u00F6r attributet \"{0}\".
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = Notationen \"{1}\" m\u00E5ste deklareras vid referens i otolkad enhetsdeklaration f\u00F6r \"{0}\".
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Referensen till enheten \"{0}\" som har deklarerats i en externt tolkad enhet \u00E4r inte till\u00E5tet i frist\u00E5ende dokument.
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attributet \"{1}\" m\u00E5ste anges f\u00F6r elementtyp \"{0}\".
++ MSG_ELEMENT_WITH_ID_REQUIRED = Ett element med identifieraren "{0}" m\u00E5ste finnas med i dokumentet.
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = Referens till den externa enheten "{0}" \u00E4r inte till\u00E5tet i frist\u00E5ende dokument.
++ MSG_FIXED_ATTVALUE_INVALID = Attributet "{1}" med v\u00E4rdet "{2}" m\u00E5ste ha v\u00E4rdet "{3}".
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Elementtyp "{0}" har redan attributet "{1}" av id-typ, ett andra attribut "{2}" av samma typ \u00E4r inte till\u00E5tet.
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Elementtyp "{0}" har redan attributet "{1}" av NOTATION-typ, ett andra attribut "{2}" av samma typ \u00E4r inte till\u00E5tet.
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = Notationen "{1}" m\u00E5ste deklareras vid referens i notationstyplistan f\u00F6r attributet "{0}".
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = Notationen "{1}" m\u00E5ste deklareras vid referens i otolkad enhetsdeklaration f\u00F6r "{0}".
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = Referensen till enheten "{0}" som har deklarerats i en externt tolkad enhet \u00E4r inte till\u00E5tet i frist\u00E5ende dokument.
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attributet "{1}" m\u00E5ste anges f\u00F6r elementtyp "{0}".
+ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = Tomt utrymme f\u00E5r inte f\u00F6rekomma mellan element som har deklarerats i en externt tolkad enhet med elementinneh\u00E5ll i frist\u00E5ende dokument.
+- NMTOKENInvalid = Attributv\u00E4rdet \"{0}\" av typen NMTOKEN m\u00E5ste vara ett namntecken.
+- NMTOKENSInvalid = Attributv\u00E4rdet \"{0}\" av typen NMTOKENS m\u00E5ste vara ett eller flera namntecken.
+- NoNotationOnEmptyElement = Elementtyp \"{0}\" med deklarationen EMPTY kan inte deklareras med attributet \"{1}\" av typen NOTATION.
+- RootElementTypeMustMatchDoctypedecl = Dokumentrotelementet \"{1}\" m\u00E5ste matcha DOCTYPE-roten \"{0}\".
+- UndeclaredElementInContentSpec = Modellen med inneh\u00E5ll f\u00F6r elementet \"{0}\" refererar till elementet \"{1}\" som inte har deklarerats.
+- UniqueNotationName = Deklarationen f\u00F6r notationen \"{0}\" \u00E4r inte unik. Ett namn f\u00E5r inte deklareras i fler \u00E4n en notationsdeklaration.
++ NMTOKENInvalid = Attributv\u00E4rdet "{0}" av typen NMTOKEN m\u00E5ste vara ett namntecken.
++ NMTOKENSInvalid = Attributv\u00E4rdet "{0}" av typen NMTOKENS m\u00E5ste vara ett eller flera namntecken.
++ NoNotationOnEmptyElement = Elementtyp "{0}" med deklarationen EMPTY kan inte deklareras med attributet "{1}" av typen NOTATION.
++ RootElementTypeMustMatchDoctypedecl = Dokumentrotelementet "{1}" m\u00E5ste matcha DOCTYPE-roten "{0}".
++ UndeclaredElementInContentSpec = Modellen med inneh\u00E5ll f\u00F6r elementet "{0}" refererar till elementet "{1}" som inte har deklarerats.
++ UniqueNotationName = Deklarationen f\u00F6r notationen "{0}" \u00E4r inte unik. Ett namn f\u00E5r inte deklareras i fler \u00E4n en notationsdeklaration.
+ ENTITYFailedInitializeGrammar = ENTITYDatatype-validerare: Behov att anropa initieringsmetod med giltig grammatikreferens utf\u00F6rdes inte. \t
+- ENTITYNotUnparsed = ENTITY \"{0}\" \u00E4r otolkat.
+- ENTITYNotValid = ENTITY \"{0}\" \u00E4r inte giltigt.
++ ENTITYNotUnparsed = ENTITY "{0}" \u00E4r otolkat.
++ ENTITYNotValid = ENTITY "{0}" \u00E4r inte giltigt.
+ EmptyList = V\u00E4rdet f\u00F6r typ ENTITIES, IDREFS och NMTOKENS f\u00E5r inte vara en tom lista.
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = Den externa enhetsreferensen \"&{0};\" till\u00E5ts inte i ett attributv\u00E4rde.
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = Den externa enhetsreferensen "&{0};" till\u00E5ts inte i ett attributv\u00E4rde.
++ AccessExternalDTD = Extern DTD: Kunde inte l\u00E4sa extern DTD ''{0}'', eftersom ''{1}'' \u00E5tkomst inte till\u00E5ts p\u00E5 grund av begr\u00E4nsning som anges av accessExternalDTD-egenskapen.
++ AccessExternalEntity = Extern enhet: Kunde inte l\u00E4sa externt dokument ''{0}'', eftersom ''{1}'' \u00E5tkomst inte till\u00E5ts p\u00E5 grund av begr\u00E4nsning som anges av accessExternalDTD-egenskapen.
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = Enheten \"{0}\" har refererats, men \u00E4r inte deklarerad.
+- ReferenceToUnparsedEntity = Den otolkade enhetsreferensen \"&{0};\" \u00E4r inte till\u00E5ten.
+- RecursiveReference = Rekursiv enhetsreferens \"{0}\". (Referenss\u00F6kv\u00E4g: {1}),
+- RecursiveGeneralReference = Rekursiv allm\u00E4n enhetsreferens \"&{0};\". (Referenss\u00F6kv\u00E4g: {1}),
+- RecursivePEReference = Rekursiv parameterreferens \"%{0};\". (Referenss\u00F6kv\u00E4g: {1}),
++ EntityNotDeclared = Enheten "{0}" har refererats, men \u00E4r inte deklarerad.
++ ReferenceToUnparsedEntity = Den otolkade enhetsreferensen "&{0};" \u00E4r inte till\u00E5ten.
++ RecursiveReference = Rekursiv enhetsreferens "{0}". (Referenss\u00F6kv\u00E4g: {1}),
++ RecursiveGeneralReference = Rekursiv allm\u00E4n enhetsreferens "&{0};". (Referenss\u00F6kv\u00E4g: {1}),
++ RecursivePEReference = Rekursiv parameterreferens "%{0};". (Referenss\u00F6kv\u00E4g: {1}),
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = Kodningen \"{0}\" st\u00F6ds inte.
++ EncodingNotSupported = Kodningen "{0}" st\u00F6ds inte.
+ EncodingRequired = En tolkad enhet som inte \u00E4r kodad i varken UTF-8 eller UTF-16 m\u00E5ste ha en kodningsdeklaration.
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = Element eller attribut matchar inte QName-produktion: QName::=(NCName':')?NCName.
+- ElementXMLNSPrefix = Elementet \"{0}\" kan inte anv\u00E4ndas med \"xmlns\" som prefix.
+- ElementPrefixUnbound = Prefixet \"{0}\" f\u00F6r elementet \"{1}\" \u00E4r inte bundet.
+- AttributePrefixUnbound = Prefixet \"{2}\" f\u00F6r attributet \"{1}\" som associeras med elementtyp \"{0}\" \u00E4r inte bundet.
+- EmptyPrefixedAttName = Ogiltigt v\u00E4rde f\u00F6r attributet \"{0}\". Namnrymdsbindningar som prefix kanske inte \u00E4r tomma.
+- PrefixDeclared = Namnrymdsprefixet \"{0}\" har inte deklarerats.
++ ElementXMLNSPrefix = Elementet "{0}" kan inte anv\u00E4ndas med "xmlns" som prefix.
++ ElementPrefixUnbound = Prefixet "{0}" f\u00F6r elementet "{1}" \u00E4r inte bundet.
++ AttributePrefixUnbound = Prefixet "{2}" f\u00F6r attributet "{1}" som associeras med elementtyp "{0}" \u00E4r inte bundet.
++ EmptyPrefixedAttName = Ogiltigt v\u00E4rde f\u00F6r attributet "{0}". Namnrymdsbindningar som prefix kanske inte \u00E4r tomma.
++ PrefixDeclared = Namnrymdsprefixet "{0}" har inte deklarerats.
+ CantBindXMLNS = Prefixet "xmlns" kan inte bindas till en specifik namnrymd och namnrymden f\u00F6r "xmlns" kan inte heller bindas till ett specifikt prefix.
+ CantBindXML = Prefixet "xml" kan inte bindas till en namnrymd ut\u00F6ver den vanliga och namnrymden f\u00F6r "xml" kan inte heller bindas till n\u00E5got annat prefix \u00E4n "xml".
+- MSG_ATT_DEFAULT_INVALID = defaultValue \"{1}\" f\u00F6r attributet \"{0}\" \u00E4r inte till\u00E5tet vad g\u00E4ller de lexikala begr\u00E4nsningarna f\u00F6r denna attributtyp.
++ MSG_ATT_DEFAULT_INVALID = defaultValue "{1}" f\u00F6r attributet "{0}" \u00E4r inte till\u00E5tet vad g\u00E4ller de lexikala begr\u00E4nsningarna f\u00F6r denna attributtyp.
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=Parsern har p\u00E5tr\u00E4ffat fler \u00E4n \"{0}\" enhetstill\u00E4gg i dokumentet - applikationens gr\u00E4nsv\u00E4rde har uppn\u00E5tts.
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: Parsern har p\u00E5tr\u00E4ffat fler \u00E4n "{0}" enhetstill\u00E4gg i dokumentet - gr\u00E4nsv\u00E4rdet f\u00F6r JDK har uppn\u00E5tts.
++ ElementAttributeLimit=JAXP00010002: Elementet "{0}" har fler \u00E4n "{1}" attribut, "{1}" \u00E4r gr\u00E4nsv\u00E4rdet f\u00F6r JDK.
++ MaxEntitySizeLimit=JAXP00010003: L\u00E4ngden p\u00E5 enheten "{0}" \u00E4r "{1}" som \u00F6verskriver gr\u00E4nsv\u00E4rdet p\u00E5 "{2}" som anges av "{3}".
++ TotalEntitySizeLimit=JAXP00010004: Den ackumulerade storleken "{0}" f\u00F6r enheter \u00F6verskred gr\u00E4nsv\u00E4rdet p\u00E5 "{1}" som anges av "{2}".
++ MaxXMLNameLimit=JAXP00010005: Namnet "{0}" \u00F6verskred gr\u00E4nsv\u00E4rdet p\u00E5 "{1}" som anges av "{2}".
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= Elementet \"{0}\" har fler \u00E4n \"{1}\" attribut, \"{1}\" \u00E4r applikationens gr\u00E4nsv\u00E4rde.
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,26 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +44,14 @@
+ InvalidCharInProlog = \u5728\u6587\u6863\u524D\u8A00\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ InvalidCharInXMLDecl = \u5728 XML \u58F0\u660E\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ # 2.4 Character Data and Markup
+- CDEndInContent = \u9664\u975E\u4F7F\u7528\u5B57\u7B26\u5E8F\u5217 \"]]>\" \u6765\u6807\u8BB0 CDATA \u8282\u7684\u7ED3\u5C3E, \u5426\u5219\u8BE5\u5B57\u7B26\u5E8F\u5217\u4E0D\u80FD\u51FA\u73B0\u5728\u5185\u5BB9\u4E2D\u3002
++ CDEndInContent = \u9664\u975E\u4F7F\u7528\u5B57\u7B26\u5E8F\u5217 "]]>" \u6765\u6807\u8BB0 CDATA \u8282\u7684\u7ED3\u5C3E, \u5426\u5219\u8BE5\u5B57\u7B26\u5E8F\u5217\u4E0D\u80FD\u51FA\u73B0\u5728\u5185\u5BB9\u4E2D\u3002
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA \u8282\u5FC5\u987B\u4EE5 \"]]>\" \u7ED3\u5C3E\u3002
++ CDSectUnterminated = CDATA \u8282\u5FC5\u987B\u4EE5 "]]>" \u7ED3\u5C3E\u3002
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML \u58F0\u660E\u53EA\u80FD\u51FA\u73B0\u5728\u6587\u6863\u7684\u6700\u5F00\u5934\u5904\u3002
+- EqRequiredInXMLDecl = \u5728 XML \u58F0\u660E\u4E2D, \"{0}\" \u540E\u9762\u5FC5\u987B\u8DDF\u6709 '' = '' \u5B57\u7B26\u3002
+- QuoteRequiredInXMLDecl = XML \u58F0\u660E\u4E2D \"{0}\" \u540E\u9762\u8DDF\u968F\u7684\u503C\u5FC5\u987B\u662F\u7528\u5F15\u53F7\u62EC\u8D77\u6765\u7684\u5B57\u7B26\u4E32\u3002
+- XMLDeclUnterminated = XML \u58F0\u660E\u5FC5\u987B\u4EE5 \"?>\" \u7ED3\u5C3E\u3002
++ EqRequiredInXMLDecl = \u5728 XML \u58F0\u660E\u4E2D, "{0}" \u540E\u9762\u5FC5\u987B\u8DDF\u6709 '' = '' \u5B57\u7B26\u3002
++ QuoteRequiredInXMLDecl = XML \u58F0\u660E\u4E2D "{0}" \u540E\u9762\u8DDF\u968F\u7684\u503C\u5FC5\u987B\u662F\u7528\u5F15\u53F7\u62EC\u8D77\u6765\u7684\u5B57\u7B26\u4E32\u3002
++ XMLDeclUnterminated = XML \u58F0\u660E\u5FC5\u987B\u4EE5 "?>" \u7ED3\u5C3E\u3002
+ VersionInfoRequired = XML \u58F0\u660E\u4E2D\u9700\u8981\u6B64\u7248\u672C\u3002
+ SpaceRequiredBeforeVersionInXMLDecl = \u5728 XML \u58F0\u660E\u4E2D\u7684\u7248\u672C\u4F2A\u5C5E\u6027\u524D\u9762\u5FC5\u987B\u6709\u7A7A\u683C\u3002
+ SpaceRequiredBeforeEncodingInXMLDecl = \u5728 XML \u58F0\u660E\u4E2D\u7684\u7F16\u7801\u4F2A\u5C5E\u6027\u524D\u9762\u5FC5\u987B\u6709\u7A7A\u683C\u3002
+@@ -71,85 +67,86 @@
+ ReferenceIllegalInTrailingMisc=\u5C3E\u968F\u8282\u4E2D\u4E0D\u5141\u8BB8\u6709\u5F15\u7528\u3002
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = \u72EC\u7ACB\u6587\u6863\u58F0\u660E\u503C\u5FC5\u987B\u4E3A \"\u662F\" \u6216 \"\u5426\", \u4E0D\u80FD\u4E3A \"{0}\"\u3002
++ SDDeclInvalid = \u72EC\u7ACB\u6587\u6863\u58F0\u660E\u503C\u5FC5\u987B\u4E3A "\u662F" \u6216 "\u5426", \u4E0D\u80FD\u4E3A "{0}"\u3002
++ SDDeclNameInvalid = XML \u58F0\u660E\u4E2D\u7684\u72EC\u7ACB\u540D\u79F0\u53EF\u80FD\u62FC\u5199\u6709\u8BEF\u3002
+ # 2.12 Language Identification
+- XMLLangInvalid = xml:lang \u5C5E\u6027\u503C \"{0}\" \u662F\u65E0\u6548\u7684\u8BED\u8A00\u6807\u8BC6\u7B26\u3002
++ XMLLangInvalid = xml:lang \u5C5E\u6027\u503C "{0}" \u662F\u65E0\u6548\u7684\u8BED\u8A00\u6807\u8BC6\u7B26\u3002
+ # 3. Logical Structures
+- ETagRequired = \u5143\u7D20\u7C7B\u578B \"{0}\" \u5FC5\u987B\u7531\u5339\u914D\u7684\u7ED3\u675F\u6807\u8BB0 \"{0}>\" \u7EC8\u6B62\u3002
++ ETagRequired = \u5143\u7D20\u7C7B\u578B "{0}" \u5FC5\u987B\u7531\u5339\u914D\u7684\u7ED3\u675F\u6807\u8BB0 "{0}>" \u7EC8\u6B62\u3002
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = \u5143\u7D20\u7C7B\u578B \"{0}\" \u5FC5\u987B\u540E\u8DDF\u5C5E\u6027\u89C4\u8303 \">\" \u6216 \"/>\"\u3002
+- EqRequiredInAttribute = \u4E0E\u5143\u7D20\u7C7B\u578B \"{0}\" \u76F8\u5173\u8054\u7684\u5C5E\u6027\u540D \"{1}\" \u5FC5\u987B\u540E\u8DDF '' = '' \u5B57\u7B26\u3002
+- OpenQuoteExpected = \u4E0E\u5143\u7D20\u7C7B\u578B \"{0}\" \u76F8\u5173\u8054\u7684\u5C5E\u6027 \"{1}\" \u5E94\u6709\u5DE6\u5F15\u53F7\u3002
+- CloseQuoteExpected = \u4E0E\u5143\u7D20\u7C7B\u578B \"{0}\" \u76F8\u5173\u8054\u7684\u5C5E\u6027 \"{1}\" \u5E94\u6709\u53F3\u5F15\u53F7\u3002
+- AttributeNotUnique = \u5DF2\u7ECF\u4E3A\u5143\u7D20 \"{0}\" \u6307\u5B9A\u5C5E\u6027 \"{1}\"\u3002
+- AttributeNSNotUnique = \u5DF2\u7ECF\u4E3A\u5143\u7D20 \"{0}\" \u6307\u5B9A\u7ED1\u5B9A\u5230\u540D\u79F0\u7A7A\u95F4 \"{2}\" \u7684\u5C5E\u6027 \"{1}\"\u3002
+- ETagUnterminated = \u5143\u7D20\u7C7B\u578B \"{0}\" \u7684\u7ED3\u675F\u6807\u8BB0\u5FC5\u987B\u4EE5 ''>'' \u5206\u9694\u7B26\u7ED3\u675F\u3002
++ ElementUnterminated = \u5143\u7D20\u7C7B\u578B "{0}" \u5FC5\u987B\u540E\u8DDF\u5C5E\u6027\u89C4\u8303 ">" \u6216 "/>"\u3002
++ EqRequiredInAttribute = \u4E0E\u5143\u7D20\u7C7B\u578B "{0}" \u76F8\u5173\u8054\u7684\u5C5E\u6027\u540D "{1}" \u5FC5\u987B\u540E\u8DDF '' = '' \u5B57\u7B26\u3002
++ OpenQuoteExpected = \u4E0E\u5143\u7D20\u7C7B\u578B "{0}" \u76F8\u5173\u8054\u7684\u5C5E\u6027 "{1}" \u5E94\u6709\u5DE6\u5F15\u53F7\u3002
++ CloseQuoteExpected = \u4E0E\u5143\u7D20\u7C7B\u578B "{0}" \u76F8\u5173\u8054\u7684\u5C5E\u6027 "{1}" \u5E94\u6709\u53F3\u5F15\u53F7\u3002
++ AttributeNotUnique = \u5DF2\u7ECF\u4E3A\u5143\u7D20 "{0}" \u6307\u5B9A\u5C5E\u6027 "{1}"\u3002
++ AttributeNSNotUnique = \u5DF2\u7ECF\u4E3A\u5143\u7D20 "{0}" \u6307\u5B9A\u7ED1\u5B9A\u5230\u540D\u79F0\u7A7A\u95F4 "{2}" \u7684\u5C5E\u6027 "{1}"\u3002
++ ETagUnterminated = \u5143\u7D20\u7C7B\u578B "{0}" \u7684\u7ED3\u675F\u6807\u8BB0\u5FC5\u987B\u4EE5 ''>'' \u5206\u9694\u7B26\u7ED3\u675F\u3002
+ MarkupNotRecognizedInContent = \u5143\u7D20\u5185\u5BB9\u5FC5\u987B\u7531\u683C\u5F0F\u6B63\u786E\u7684\u5B57\u7B26\u6570\u636E\u6216\u6807\u8BB0\u7EC4\u6210\u3002
+ DoctypeIllegalInContent = \u5185\u5BB9\u4E2D\u4E0D\u5141\u8BB8\u6709 DOCTYPE\u3002
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = \u5F15\u7528\u5FC5\u987B\u4EE5 ';' \u5206\u9694\u7B26\u7EC8\u6B62\u3002
+ # 4.3.2 Well-Formed Parsed Entities
+- ReferenceNotInOneEntity = \u5F15\u7528\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u5185\u3002
+- ElementEntityMismatch = \u5143\u7D20 \"{0}\" \u5FC5\u987B\u4ECE\u5934\u81F3\u5C3E\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5B9E\u4F53\u5185\u3002
++ ReferenceNotInOneEntity = \u5F15\u7528\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u89E3\u6790\u5B9E\u4F53\u5185\u3002
++ ElementEntityMismatch = \u5143\u7D20 "{0}" \u5FC5\u987B\u4ECE\u5934\u81F3\u5C3E\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5B9E\u4F53\u5185\u3002
+ MarkupEntityMismatch=XML \u6587\u6863\u7ED3\u6784\u5FC5\u987B\u4ECE\u5934\u81F3\u5C3E\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5B9E\u4F53\u5185\u3002
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = \u5728 \"{1}\" \u5C5E\u6027\u503C\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{2}), \u5E76\u4E14\u5143\u7D20\u4E3A \"{0}\"\u3002
++ InvalidCharInAttValue = \u5728 "{1}" \u5C5E\u6027\u503C\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{2}), \u5E76\u4E14\u5143\u7D20\u4E3A "{0}"\u3002
+ InvalidCharInComment = \u5728\u6CE8\u91CA\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ InvalidCharInPI = \u5728\u5904\u7406\u6307\u4EE4\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ InvalidCharInInternalSubset = \u5728 DTD \u7684\u5185\u90E8\u5B50\u96C6\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ InvalidCharInTextDecl = \u5728\u6587\u672C\u58F0\u660E\u4E2D\u627E\u5230\u65E0\u6548\u7684 XML \u5B57\u7B26 (Unicode: 0x{0})\u3002
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = \"{1}\" \u5C5E\u6027\u503C\u5FC5\u987B\u4EE5\u5355\u5F15\u53F7\u5B57\u7B26\u6216\u53CC\u5F15\u53F7\u5B57\u7B26\u5F00\u5934\u3002
+- LessthanInAttValue = \u4E0E\u5143\u7D20\u7C7B\u578B \"{0}\" \u76F8\u5173\u8054\u7684 \"{1}\" \u5C5E\u6027\u503C\u4E0D\u80FD\u5305\u542B ''<'' \u5B57\u7B26\u3002
+- AttributeValueUnterminated = \"{1}\" \u5C5E\u6027\u503C\u5FC5\u987B\u4EE5\u5339\u914D\u7684\u5F15\u53F7\u5B57\u7B26\u7ED3\u5C3E\u3002
++ QuoteRequiredInAttValue = "{1}" \u5C5E\u6027\u503C\u5FC5\u987B\u4EE5\u5355\u5F15\u53F7\u5B57\u7B26\u6216\u53CC\u5F15\u53F7\u5B57\u7B26\u5F00\u5934\u3002
++ LessthanInAttValue = \u4E0E\u5143\u7D20\u7C7B\u578B "{0}" \u76F8\u5173\u8054\u7684 "{1}" \u5C5E\u6027\u503C\u4E0D\u80FD\u5305\u542B ''<'' \u5B57\u7B26\u3002
++ AttributeValueUnterminated = "{1}" \u5C5E\u6027\u503C\u5FC5\u987B\u4EE5\u5339\u914D\u7684\u5F15\u53F7\u5B57\u7B26\u7ED3\u5C3E\u3002
+ # 2.5 Comments
+- InvalidCommentStart = \u6CE8\u91CA\u5FC5\u987B\u4EE5 \"\" \u7ED3\u5C3E\u3002
++ InvalidCommentStart = \u6CE8\u91CA\u5FC5\u987B\u4EE5 "" \u7ED3\u5C3E\u3002
+ COMMENT_NOT_IN_ONE_ENTITY = \u6CE8\u91CA\u6CA1\u6709\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5B9E\u4F53\u5185\u3002
+ # 2.6 Processing Instructions
+ PITargetRequired = \u5904\u7406\u6307\u4EE4\u5FC5\u987B\u4EE5\u76EE\u6807\u540D\u79F0\u5F00\u5934\u3002
+ SpaceRequiredInPI = \u5728\u5904\u7406\u6307\u4EE4\u76EE\u6807\u548C\u6570\u636E\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
+- PIUnterminated = \u5904\u7406\u6307\u4EE4\u5FC5\u987B\u4EE5 \"?>\" \u7ED3\u5C3E\u3002
+- ReservedPITarget = \u4E0D\u5141\u8BB8\u6709\u5339\u914D \"[xX][mM][lL]\" \u7684\u5904\u7406\u6307\u4EE4\u76EE\u6807\u3002
++ PIUnterminated = \u5904\u7406\u6307\u4EE4\u5FC5\u987B\u4EE5 "?>" \u7ED3\u5C3E\u3002
++ ReservedPITarget = \u4E0D\u5141\u8BB8\u6709\u5339\u914D "[xX][mM][lL]" \u7684\u5904\u7406\u6307\u4EE4\u76EE\u6807\u3002
+ PI_NOT_IN_ONE_ENTITY = \u5904\u7406\u6307\u4EE4\u6CA1\u6709\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5B9E\u4F53\u5185\u3002
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = \u7248\u672C \"{0}\" \u65E0\u6548\u3002
+- VersionNotSupported = \u4E0D\u652F\u6301 XML \u7248\u672C \"{0}\", \u53EA\u652F\u6301 XML 1.0\u3002
+- VersionNotSupported11 = \u4E0D\u652F\u6301 XML \u7248\u672C \"{0}\", \u53EA\u652F\u6301 XML 1.0 \u548C XML 1.1\u3002
++ VersionInfoInvalid = \u7248\u672C "{0}" \u65E0\u6548\u3002
++ VersionNotSupported = \u4E0D\u652F\u6301 XML \u7248\u672C "{0}", \u53EA\u652F\u6301 XML 1.0\u3002
++ VersionNotSupported11 = \u4E0D\u652F\u6301 XML \u7248\u672C "{0}", \u53EA\u652F\u6301 XML 1.0 \u548C XML 1.1\u3002
+ VersionMismatch= \u5B9E\u4F53\u4E0D\u80FD\u5305\u542B\u8F83\u9AD8\u7248\u672C\u7684\u53E6\u4E00\u4E2A\u5B9E\u4F53\u3002
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = \u5728\u5B57\u7B26\u5F15\u7528\u4E2D, \u5341\u8FDB\u5236\u8868\u793A\u65B9\u6CD5\u5FC5\u987B\u7D27\u8DDF\u5728 \"\" \u540E\u9762\u3002
+- HexdigitRequiredInCharRef = \u5728\u5B57\u7B26\u5F15\u7528\u4E2D, \u5341\u516D\u8FDB\u5236\u8868\u793A\u65B9\u6CD5\u5FC5\u987B\u7D27\u8DDF\u5728 \"\" \u540E\u9762\u3002
++ DigitRequiredInCharRef = \u5728\u5B57\u7B26\u5F15\u7528\u4E2D, \u5341\u8FDB\u5236\u8868\u793A\u65B9\u6CD5\u5FC5\u987B\u7D27\u8DDF\u5728 "" \u540E\u9762\u3002
++ HexdigitRequiredInCharRef = \u5728\u5B57\u7B26\u5F15\u7528\u4E2D, \u5341\u516D\u8FDB\u5236\u8868\u793A\u65B9\u6CD5\u5FC5\u987B\u7D27\u8DDF\u5728 "" \u540E\u9762\u3002
+ SemicolonRequiredInCharRef = \u5B57\u7B26\u5F15\u7528\u5FC5\u987B\u4EE5 ';' \u5206\u9694\u7B26\u7ED3\u5C3E\u3002
+- InvalidCharRef = \u5B57\u7B26\u5F15\u7528 \"{0}\" \u662F\u65E0\u6548\u7684 XML \u5B57\u7B26\u3002
++ InvalidCharRef = \u5B57\u7B26\u5F15\u7528 "{0}" \u662F\u65E0\u6548\u7684 XML \u5B57\u7B26\u3002
+ NameRequiredInReference = \u5728\u5B9E\u4F53\u5F15\u7528\u4E2D, \u5B9E\u4F53\u540D\u79F0\u5FC5\u987B\u7D27\u8DDF\u5728 '&' \u540E\u9762\u3002
+- SemicolonRequiredInReference = \u5BF9\u5B9E\u4F53 \"{0}\" \u7684\u5F15\u7528\u5FC5\u987B\u4EE5 '';'' \u5206\u9694\u7B26\u7ED3\u5C3E\u3002
++ SemicolonRequiredInReference = \u5BF9\u5B9E\u4F53 "{0}" \u7684\u5F15\u7528\u5FC5\u987B\u4EE5 '';'' \u5206\u9694\u7B26\u7ED3\u5C3E\u3002
+ # 4.3.1 The Text Declaration
+- TextDeclMustBeFirst = \u6587\u672C\u58F0\u660E\u53EA\u80FD\u51FA\u73B0\u5728\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5916\u90E8\u5B9E\u4F53\u7684\u6700\u5F00\u5934\u5904\u3002
+- EqRequiredInTextDecl = \u5728\u6587\u672C\u58F0\u660E\u4E2D, \"{0}\" \u540E\u9762\u5FC5\u987B\u8DDF\u6709 '' = '' \u5B57\u7B26\u3002
+- QuoteRequiredInTextDecl = \u6587\u672C\u58F0\u660E\u4E2D \"{0}\" \u540E\u9762\u8DDF\u968F\u7684\u503C\u5FC5\u987B\u662F\u7528\u5F15\u53F7\u62EC\u8D77\u6765\u7684\u5B57\u7B26\u4E32\u3002
+- CloseQuoteMissingInTextDecl = \u6587\u672C\u58F0\u660E\u4E2D \"{0}\" \u540E\u9762\u8DDF\u968F\u7684\u503C\u7F3A\u5C11\u53F3\u5F15\u53F7\u3002
++ TextDeclMustBeFirst = \u6587\u672C\u58F0\u660E\u53EA\u80FD\u51FA\u73B0\u5728\u5DF2\u89E3\u6790\u7684\u5916\u90E8\u5B9E\u4F53\u7684\u6700\u5F00\u5934\u5904\u3002
++ EqRequiredInTextDecl = \u5728\u6587\u672C\u58F0\u660E\u4E2D, "{0}" \u540E\u9762\u5FC5\u987B\u8DDF\u6709 '' = '' \u5B57\u7B26\u3002
++ QuoteRequiredInTextDecl = \u6587\u672C\u58F0\u660E\u4E2D "{0}" \u540E\u9762\u8DDF\u968F\u7684\u503C\u5FC5\u987B\u662F\u7528\u5F15\u53F7\u62EC\u8D77\u6765\u7684\u5B57\u7B26\u4E32\u3002
++ CloseQuoteMissingInTextDecl = \u6587\u672C\u58F0\u660E\u4E2D "{0}" \u540E\u9762\u8DDF\u968F\u7684\u503C\u7F3A\u5C11\u53F3\u5F15\u53F7\u3002
+ SpaceRequiredBeforeVersionInTextDecl = \u5728\u6587\u672C\u58F0\u660E\u4E2D\u7684\u7248\u672C\u4F2A\u5C5E\u6027\u524D\u9762\u5FC5\u987B\u6709\u7A7A\u683C\u3002
+ SpaceRequiredBeforeEncodingInTextDecl = \u5728\u6587\u672C\u58F0\u660E\u4E2D\u7684\u7F16\u7801\u4F2A\u5C5E\u6027\u524D\u9762\u5FC5\u987B\u6709\u7A7A\u683C\u3002
+- TextDeclUnterminated = \u6587\u672C\u58F0\u660E\u5FC5\u987B\u4EE5 \"?>\" \u7ED3\u5C3E\u3002
++ TextDeclUnterminated = \u6587\u672C\u58F0\u660E\u5FC5\u987B\u4EE5 "?>" \u7ED3\u5C3E\u3002
+ EncodingDeclRequired = \u6587\u672C\u58F0\u660E\u4E2D\u9700\u8981\u7F16\u7801\u58F0\u660E\u3002
+ NoMorePseudoAttributes = \u4E0D\u5141\u8BB8\u4F7F\u7528\u66F4\u591A\u7684\u4F2A\u5C5E\u6027\u3002
+ MorePseudoAttributes = \u5E94\u8BE5\u6709\u66F4\u591A\u7684\u4F2A\u5C5E\u6027\u3002
+ PseudoAttrNameExpected = \u5E94\u8BE5\u6709\u4F2A\u5C5E\u6027\u540D\u3002
+ # 4.3.2 Well-Formed Parsed Entities
+- CommentNotInOneEntity = \u6CE8\u91CA\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u5185\u3002
+- PINotInOneEntity = \u5904\u7406\u6307\u4EE4\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u5185\u3002
++ CommentNotInOneEntity = \u6CE8\u91CA\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u89E3\u6790\u5B9E\u4F53\u5185\u3002
++ PINotInOneEntity = \u5904\u7406\u6307\u4EE4\u5FC5\u987B\u5B8C\u5168\u5305\u542B\u5728\u540C\u4E00\u4E2A\u5DF2\u89E3\u6790\u5B9E\u4F53\u5185\u3002
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = \u7F16\u7801\u540D\u79F0 \"{0}\" \u65E0\u6548\u3002
+- EncodingByteOrderUnsupported = \u4E0D\u652F\u6301\u7F16\u7801 \"{0}\" \u7684\u7ED9\u5B9A\u5B57\u8282\u987A\u5E8F\u3002
++ EncodingDeclInvalid = \u7F16\u7801\u540D\u79F0 "{0}" \u65E0\u6548\u3002
++ EncodingByteOrderUnsupported = \u4E0D\u652F\u6301\u7F16\u7801 "{0}" \u7684\u7ED9\u5B9A\u5B57\u8282\u987A\u5E8F\u3002
+ InvalidByte = {1} \u5B57\u8282\u7684 UTF-8 \u5E8F\u5217\u7684\u5B57\u8282 {0} \u65E0\u6548\u3002
+ ExpectedByte = \u5E94\u4E3A {1} \u5B57\u8282\u7684 UTF-8 \u5E8F\u5217\u7684\u5B57\u8282 {0}\u3002
+ InvalidHighSurrogate = UTF-8 \u5E8F\u5217\u4E2D\u7684\u9AD8\u4EE3\u7406\u4F4D\u4E0D\u80FD\u8D85\u8FC7 0x10, \u4F46\u627E\u5230 0x{0}\u3002
+- OperationNotSupported = {1}\u8BFB\u8FDB\u7A0B\u4E0D\u652F\u6301\u64CD\u4F5C \"{0}\"\u3002
+- InvalidASCII = \u5B57\u8282 \"{0}\" \u4E0D\u662F (7 \u4F4D) ASCII \u5B57\u7B26\u96C6\u7684\u6210\u5458\u3002
++ OperationNotSupported = {1}\u8BFB\u8FDB\u7A0B\u4E0D\u652F\u6301\u64CD\u4F5C "{0}"\u3002
++ InvalidASCII = \u5B57\u8282 "{0}" \u4E0D\u662F (7 \u4F4D) ASCII \u5B57\u7B26\u96C6\u7684\u6210\u5458\u3002
+ CharConversionFailure = \u786E\u5B9A\u5C5E\u4E8E\u67D0\u4E2A\u7F16\u7801\u7684\u5B9E\u4F53\u4E0D\u80FD\u5305\u542B\u5728\u8BE5\u7F16\u7801\u4E2D\u975E\u6CD5\u7684\u5E8F\u5217\u3002
+
+ # DTD Messages
+@@ -169,150 +166,150 @@
+ PubidCharIllegal = \u516C\u5171\u6807\u8BC6\u7B26\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u8BE5\u5B57\u7B26 (Unicode: 0x{0})\u3002
+ SpaceRequiredBetweenPublicAndSystem = \u5728 publicId \u548C systemId \u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u5728\u6587\u6863\u7C7B\u578B\u58F0\u660E\u4E2D\u7684 \"'' \u7ED3\u5C3E\u3002
+- PEReferenceWithinMarkup = \u53C2\u6570\u5B9E\u4F53\u5F15\u7528 \"%{0};\" \u4E0D\u80FD\u51FA\u73B0\u5728 DTD \u7684\u5185\u90E8\u5B50\u96C6\u4E2D\u7684\u6807\u8BB0\u5185\u3002
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u5728\u6587\u6863\u7C7B\u578B\u58F0\u660E\u4E2D\u7684 "'' \u7ED3\u5C3E\u3002
++ PEReferenceWithinMarkup = \u53C2\u6570\u5B9E\u4F53\u5F15\u7528 "%{0};" \u4E0D\u80FD\u51FA\u73B0\u5728 DTD \u7684\u5185\u90E8\u5B50\u96C6\u4E2D\u7684\u6807\u8BB0\u5185\u3002
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = \u6587\u6863\u7C7B\u578B\u58F0\u660E\u5305\u542B\u6216\u6307\u5411\u7684\u6807\u8BB0\u58F0\u660E\u5FC5\u987B\u683C\u5F0F\u6B63\u786E\u3002
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = \"xml:space\" \u7684\u5C5E\u6027\u58F0\u660E\u5FC5\u987B\u6307\u5B9A\u4E3A\u679A\u4E3E\u7C7B\u578B, \u5B83\u7684\u53EF\u80FD\u503C\u53EA\u6709 \"default\" \u548C \"preserve\"\u3002
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = "xml:space" \u7684\u5C5E\u6027\u58F0\u660E\u5FC5\u987B\u6307\u5B9A\u4E3A\u679A\u4E3E\u7C7B\u578B, \u5B83\u7684\u53EF\u80FD\u503C\u53EA\u6709 "default" \u548C "preserve"\u3002
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = \u5728\u5143\u7D20\u7C7B\u578B\u58F0\u660E\u4E2D\u7684 \"'' \u7ED3\u5C3E\u3002
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = \u5728\u5143\u7D20\u7C7B\u578B\u58F0\u660E\u4E2D\u7684\u5143\u7D20\u7C7B\u578B "{0}" \u540E\u9762\u9700\u8981\u6709\u7A7A\u683C\u3002
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = \u5728\u5143\u7D20\u7C7B\u578B\u58F0\u660E\u4E2D\u7684\u5143\u7D20\u7C7B\u578B "{0}" \u540E\u9762\u9700\u8981\u6709\u7EA6\u675F\u6761\u4EF6\u3002
++ ElementDeclUnterminated = \u5143\u7D20\u7C7B\u578B "{0}" \u7684\u58F0\u660E\u5FC5\u987B\u4EE5 ''>'' \u7ED3\u5C3E\u3002
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u5728\u5143\u7D20\u7C7B\u578B \"{0}\" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 ''('' \u5B57\u7B26\u6216\u5143\u7D20\u7C7B\u578B\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u5728\u5143\u7D20\u7C7B\u578B \"{0}\" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 '')''\u3002
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u5728\u5143\u7D20\u7C7B\u578B "{0}" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 ''('' \u5B57\u7B26\u6216\u5143\u7D20\u7C7B\u578B\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u5728\u5143\u7D20\u7C7B\u578B "{0}" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 '')''\u3002
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u5728\u5143\u7D20\u7C7B\u578B \"{0}\" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709\u5143\u7D20\u7C7B\u578B\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u5728\u5143\u7D20\u7C7B\u578B \"{0}\" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 '')''\u3002
+- MixedContentUnterminated = \u5F53\u5B50\u5143\u7D20\u7C7B\u578B\u53D7\u7EA6\u675F\u65F6, \u6DF7\u5408\u5185\u5BB9\u6A21\u578B \"{0}\" \u5FC5\u987B\u4EE5 \")*\" \u7ED3\u5C3E\u3002
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u5728\u5143\u7D20\u7C7B\u578B "{0}" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709\u5143\u7D20\u7C7B\u578B\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u5728\u5143\u7D20\u7C7B\u578B "{0}" \u7684\u58F0\u660E\u4E2D\u9700\u8981\u6709 '')''\u3002
++ MixedContentUnterminated = \u5F53\u5B50\u5143\u7D20\u7C7B\u578B\u53D7\u7EA6\u675F\u65F6, \u6DF7\u5408\u5185\u5BB9\u6A21\u578B "{0}" \u5FC5\u987B\u4EE5 ")*" \u7ED3\u5C3E\u3002
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = \u5728\u5C5E\u6027\u5217\u8868\u58F0\u660E\u4E2D\u7684 \"\" \u7ED3\u5C3E\u3002
+- IgnoreSectUnterminated = \u6392\u9664\u7684\u6761\u4EF6\u8282\u5FC5\u987B\u4EE5 \"]]>\" \u7ED3\u5C3E\u3002
++ IncludeSectUnterminated = \u5305\u542B\u7684\u6761\u4EF6\u8282\u5FC5\u987B\u4EE5 "]]>" \u7ED3\u5C3E\u3002
++ IgnoreSectUnterminated = \u6392\u9664\u7684\u6761\u4EF6\u8282\u5FC5\u987B\u4EE5 "]]>" \u7ED3\u5C3E\u3002
+ # 4.1 Character and Entity References
+ NameRequiredInPEReference = \u5728\u53C2\u6570\u5B9E\u4F53\u5F15\u7528\u4E2D, \u5B9E\u4F53\u540D\u79F0\u5FC5\u987B\u7D27\u8DDF\u5728 '%' \u540E\u9762\u3002
+- SemicolonRequiredInPEReference = \u53C2\u6570\u5B9E\u4F53\u5F15\u7528 \"%{0};\" \u5FC5\u987B\u4EE5 '';'' \u5206\u9694\u7B26\u7ED3\u5C3E\u3002
++ SemicolonRequiredInPEReference = \u53C2\u6570\u5B9E\u4F53\u5F15\u7528 "%{0};" \u5FC5\u987B\u4EE5 '';'' \u5206\u9694\u7B26\u7ED3\u5C3E\u3002
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \u5728\u5B9E\u4F53\u58F0\u660E\u4E2D\u7684 \"'' \u7ED3\u5C3E\u3002
+- MSG_DUPLICATE_ENTITY_DEFINITION = \u5B9E\u4F53 \"{0}\" \u58F0\u660E\u4E86\u591A\u6B21\u3002
++ MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = \u5728\u5B9E\u4F53\u58F0\u660E\u4E2D\u7684\u5B9E\u4F53\u540D\u79F0 "{0}" \u548C\u5B9A\u4E49\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
++ MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = \u5728\u5B9E\u4F53 "{0}" \u7684\u58F0\u660E\u4E2D\u7684 "NDATA" \u548C\u8BB0\u53F7\u540D\u79F0\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
++ MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = \u5728\u5B9E\u4F53 "{0}" \u7684\u58F0\u660E\u4E2D\u7684 "NDATA" \u524D\u9762\u9700\u8981\u6709\u7A7A\u683C\u3002
++ MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = \u5728\u5B9E\u4F53 "{0}" \u7684\u58F0\u660E\u4E2D\u7684 "NDATA" \u540E\u9762\u9700\u8981\u6709\u8BB0\u53F7\u540D\u79F0\u3002
++ EntityDeclUnterminated = \u5B9E\u4F53 "{0}" \u7684\u58F0\u660E\u5FC5\u987B\u4EE5 ''>'' \u7ED3\u5C3E\u3002
++ MSG_DUPLICATE_ENTITY_DEFINITION = \u5B9E\u4F53 "{0}" \u58F0\u660E\u4E86\u591A\u6B21\u3002
+ # 4.2.2 External Entities
+- ExternalIDRequired = \u5916\u90E8\u5B9E\u4F53\u58F0\u660E\u5FC5\u987B\u4EE5 \"SYSTEM\" \u6216 \"PUBLIC\" \u5F00\u5934\u3002
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \u5728 \"PUBLIC\" \u548C\u516C\u5171\u6807\u8BC6\u7B26\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
++ ExternalIDRequired = \u5916\u90E8\u5B9E\u4F53\u58F0\u660E\u5FC5\u987B\u4EE5 "SYSTEM" \u6216 "PUBLIC" \u5F00\u5934\u3002
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \u5728 "PUBLIC" \u548C\u516C\u5171\u6807\u8BC6\u7B26\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = \u5728\u516C\u5171\u6807\u8BC6\u7B26\u548C\u7CFB\u7EDF\u6807\u8BC6\u7B26\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \u5728 \"SYSTEM\" \u548C\u7CFB\u7EDF\u6807\u8BC6\u7B26\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
+- MSG_URI_FRAGMENT_IN_SYSTEMID = \u7247\u6BB5\u6807\u8BC6\u7B26\u4E0D\u80FD\u6307\u5B9A\u4E3A\u7CFB\u7EDF\u6807\u8BC6\u7B26 \"{0}\" \u7684\u4E00\u90E8\u5206\u3002
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \u5728 "SYSTEM" \u548C\u7CFB\u7EDF\u6807\u8BC6\u7B26\u4E4B\u95F4\u9700\u8981\u6709\u7A7A\u683C\u3002
++ MSG_URI_FRAGMENT_IN_SYSTEMID = \u7247\u6BB5\u6807\u8BC6\u7B26\u4E0D\u80FD\u6307\u5B9A\u4E3A\u7CFB\u7EDF\u6807\u8BC6\u7B26 "{0}" \u7684\u4E00\u90E8\u5206\u3002
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = \u5728\u8BB0\u53F7\u58F0\u660E\u4E2D\u7684 \"'' \u7ED3\u5C3E\u3002
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = \u5728\u8BB0\u53F7\u58F0\u660E\u4E2D\u7684\u8BB0\u53F7\u540D\u79F0 "{0}" \u540E\u9762\u9700\u8981\u6709\u7A7A\u683C\u3002
++ ExternalIDorPublicIDRequired = \u8BB0\u53F7 "{0}" \u7684\u58F0\u660E\u5FC5\u987B\u5305\u542B\u7CFB\u7EDF\u6807\u8BC6\u7B26\u6216\u516C\u5171\u6807\u8BC6\u7B26\u3002
++ NotationDeclUnterminated = \u8BB0\u53F7 "{0}" \u7684\u58F0\u660E\u5FC5\u987B\u4EE5 ''>'' \u7ED3\u5C3E\u3002
+
+ # Validation messages
+- DuplicateTypeInMixedContent = \u5728\u5143\u7D20\u58F0\u660E \"{0}\" \u7684\u5185\u5BB9\u6A21\u578B\u4E2D\u5DF2\u7ECF\u6307\u5B9A\u4E86\u5143\u7D20\u7C7B\u578B \"{1}\"\u3002
+- ENTITIESInvalid = \u7C7B\u578B\u4E3A ENTITIES \u7684\u5C5E\u6027\u503C \"{1}\" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u7684\u540D\u79F0\u3002
+- ENTITYInvalid = \u7C7B\u578B\u4E3A ENTITY \u7684\u5C5E\u6027\u503C \"{1}\" \u5FC5\u987B\u662F\u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u7684\u540D\u79F0\u3002
+- IDDefaultTypeInvalid = ID \u5C5E\u6027 \"{0}\" \u5FC5\u987B\u5177\u6709\u5DF2\u58F0\u660E\u7684\u9ED8\u8BA4\u503C \"#IMPLIED\" \u6216 \"#REQUIRED\"\u3002
+- IDInvalid = \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F\u540D\u79F0\u3002
+- IDInvalidWithNamespaces = \u542F\u7528\u540D\u79F0\u7A7A\u95F4\u65F6, \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F NCName\u3002
+- IDNotUnique = \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C \"{0}\" \u5728\u6587\u6863\u5185\u5FC5\u987B\u662F\u552F\u4E00\u7684\u3002
+- IDREFInvalid = \u7C7B\u578B\u4E3A IDREF \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F\u540D\u79F0\u3002
+- IDREFInvalidWithNamespaces = \u542F\u7528\u540D\u79F0\u7A7A\u95F4\u65F6, \u7C7B\u578B\u4E3A IDREF \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F NCName\u3002
+- IDREFSInvalid = \u7C7B\u578B\u4E3A IDREFS \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u540D\u79F0\u3002
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u5F53\u5B9E\u4F53\u5F15\u7528\u7528\u4F5C\u5B8C\u6574\u58F0\u660E\u65F6, \u53C2\u6570\u5B9E\u4F53 \"{0}\" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u58F0\u660E\u3002
+- ImproperDeclarationNesting = \u53C2\u6570\u5B9E\u4F53 \"{0}\" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u58F0\u660E\u3002
+- ImproperGroupNesting = \u53C2\u6570\u5B9E\u4F53 \"{0}\" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u62EC\u53F7\u5BF9\u3002
+- INVALID_PE_IN_CONDITIONAL = \u53C2\u6570\u5B9E\u4F53 \"{0}\" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6574\u4E2A\u6761\u4EF6\u8282, \u6216\u8005\u4EC5\u5305\u542B INCLUDE \u6216 IGNORE\u3002
+- MSG_ATTRIBUTE_NOT_DECLARED = \u5FC5\u987B\u4E3A\u5143\u7D20\u7C7B\u578B \"{0}\" \u58F0\u660E\u5C5E\u6027 \"{1}\"\u3002
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u503C\u4E3A \"{1}\" \u7684\u5C5E\u6027 \"{0}\" \u5FC5\u987B\u5177\u6709\u5217\u8868 \"{2}\" \u4E2D\u7684\u503C\u3002
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D, \u5C5E\u6027 \"{0}\" \u7684\u503C \"{1}\" \u4E0D\u80FD\u901A\u8FC7\u89C4\u8303\u5316\u8FDB\u884C\u66F4\u6539 (\u66F4\u6539\u4E3A \"{2}\")\u3002
+- MSG_CONTENT_INCOMPLETE = \u5143\u7D20\u7C7B\u578B\u4E3A \"{0}\" \u7684\u5185\u5BB9\u4E0D\u5B8C\u6574, \u5B83\u5FC5\u987B\u5339\u914D \"{1}\"\u3002
+- MSG_CONTENT_INVALID = \u5143\u7D20\u7C7B\u578B\u4E3A \"{0}\" \u7684\u5185\u5BB9\u5FC5\u987B\u5339\u914D \"{1}\"\u3002
+- MSG_CONTENT_INVALID_SPECIFIED = \u5143\u7D20\u7C7B\u578B\u4E3A \"{0}\" \u7684\u5185\u5BB9\u5FC5\u987B\u5339\u914D \"{1}\"\u3002\u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A \"{2}\" \u7684\u5B50\u7EA7\u3002
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u7C7B\u578B\u4E3A \"{0}\" \u7684\u5C5E\u6027 \"{1}\" \u5177\u6709\u9ED8\u8BA4\u503C, \u5E76\u4E14\u5FC5\u987B\u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u6307\u5B9A\u3002
+- MSG_DUPLICATE_ATTDEF = \u5DF2\u7ECF\u4E3A\u5143\u7D20\u7C7B\u578B \"{0}\" \u58F0\u660E\u5C5E\u6027 \"{1}\"\u3002
+- MSG_ELEMENT_ALREADY_DECLARED = \u5143\u7D20\u7C7B\u578B \"{0}\" \u4E0D\u80FD\u58F0\u660E\u591A\u6B21\u3002
+- MSG_ELEMENT_NOT_DECLARED = \u5FC5\u987B\u58F0\u660E\u5143\u7D20\u7C7B\u578B \"{0}\"\u3002
++ DuplicateTypeInMixedContent = \u5728\u5143\u7D20\u58F0\u660E "{0}" \u7684\u5185\u5BB9\u6A21\u578B\u4E2D\u5DF2\u7ECF\u6307\u5B9A\u4E86\u5143\u7D20\u7C7B\u578B "{1}"\u3002
++ ENTITIESInvalid = \u7C7B\u578B\u4E3A ENTITIES \u7684\u5C5E\u6027\u503C "{1}" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u89E3\u6790\u5B9E\u4F53\u7684\u540D\u79F0\u3002
++ ENTITYInvalid = \u7C7B\u578B\u4E3A ENTITY \u7684\u5C5E\u6027\u503C "{1}" \u5FC5\u987B\u662F\u672A\u89E3\u6790\u5B9E\u4F53\u7684\u540D\u79F0\u3002
++ IDDefaultTypeInvalid = ID \u5C5E\u6027 "{0}" \u5FC5\u987B\u5177\u6709\u5DF2\u58F0\u660E\u7684\u9ED8\u8BA4\u503C "#IMPLIED" \u6216 "#REQUIRED"\u3002
++ IDInvalid = \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F\u540D\u79F0\u3002
++ IDInvalidWithNamespaces = \u542F\u7528\u540D\u79F0\u7A7A\u95F4\u65F6, \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F NCName\u3002
++ IDNotUnique = \u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027\u503C "{0}" \u5728\u6587\u6863\u5185\u5FC5\u987B\u662F\u552F\u4E00\u7684\u3002
++ IDREFInvalid = \u7C7B\u578B\u4E3A IDREF \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F\u540D\u79F0\u3002
++ IDREFInvalidWithNamespaces = \u542F\u7528\u540D\u79F0\u7A7A\u95F4\u65F6, \u7C7B\u578B\u4E3A IDREF \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F NCName\u3002
++ IDREFSInvalid = \u7C7B\u578B\u4E3A IDREFS \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u540D\u79F0\u3002
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u5F53\u5B9E\u4F53\u5F15\u7528\u7528\u4F5C\u5B8C\u6574\u58F0\u660E\u65F6, \u53C2\u6570\u5B9E\u4F53 "{0}" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u58F0\u660E\u3002
++ ImproperDeclarationNesting = \u53C2\u6570\u5B9E\u4F53 "{0}" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u58F0\u660E\u3002
++ ImproperGroupNesting = \u53C2\u6570\u5B9E\u4F53 "{0}" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6B63\u786E\u5D4C\u5957\u7684\u62EC\u53F7\u5BF9\u3002
++ INVALID_PE_IN_CONDITIONAL = \u53C2\u6570\u5B9E\u4F53 "{0}" \u7684\u66FF\u6362\u6587\u672C\u5FC5\u987B\u5305\u542B\u6574\u4E2A\u6761\u4EF6\u8282, \u6216\u8005\u4EC5\u5305\u542B INCLUDE \u6216 IGNORE\u3002
++ MSG_ATTRIBUTE_NOT_DECLARED = \u5FC5\u987B\u4E3A\u5143\u7D20\u7C7B\u578B "{0}" \u58F0\u660E\u5C5E\u6027 "{1}"\u3002
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u503C\u4E3A "{1}" \u7684\u5C5E\u6027 "{0}" \u5FC5\u987B\u5177\u6709\u5217\u8868 "{2}" \u4E2D\u7684\u503C\u3002
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D, \u5C5E\u6027 "{0}" \u7684\u503C "{1}" \u4E0D\u80FD\u901A\u8FC7\u89C4\u8303\u5316\u8FDB\u884C\u66F4\u6539 (\u66F4\u6539\u4E3A "{2}")\u3002
++ MSG_CONTENT_INCOMPLETE = \u5143\u7D20\u7C7B\u578B\u4E3A "{0}" \u7684\u5185\u5BB9\u4E0D\u5B8C\u6574, \u5B83\u5FC5\u987B\u5339\u914D "{1}"\u3002
++ MSG_CONTENT_INVALID = \u5143\u7D20\u7C7B\u578B\u4E3A "{0}" \u7684\u5185\u5BB9\u5FC5\u987B\u5339\u914D "{1}"\u3002
++ MSG_CONTENT_INVALID_SPECIFIED = \u5143\u7D20\u7C7B\u578B\u4E3A "{0}" \u7684\u5185\u5BB9\u5FC5\u987B\u5339\u914D "{1}"\u3002\u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A "{2}" \u7684\u5B50\u7EA7\u3002
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u7C7B\u578B\u4E3A "{0}" \u7684\u5C5E\u6027 "{1}" \u5177\u6709\u9ED8\u8BA4\u503C, \u5E76\u4E14\u5FC5\u987B\u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u6307\u5B9A\u3002
++ MSG_DUPLICATE_ATTDEF = \u5DF2\u7ECF\u4E3A\u5143\u7D20\u7C7B\u578B "{0}" \u58F0\u660E\u5C5E\u6027 "{1}"\u3002
++ MSG_ELEMENT_ALREADY_DECLARED = \u5143\u7D20\u7C7B\u578B "{0}" \u4E0D\u80FD\u58F0\u660E\u591A\u6B21\u3002
++ MSG_ELEMENT_NOT_DECLARED = \u5FC5\u987B\u58F0\u660E\u5143\u7D20\u7C7B\u578B "{0}"\u3002
+ MSG_GRAMMAR_NOT_FOUND = \u6587\u6863\u65E0\u6548: \u627E\u4E0D\u5230\u8BED\u6CD5\u3002
+- MSG_ELEMENT_WITH_ID_REQUIRED = \u6587\u6863\u4E2D\u5FC5\u987B\u5305\u542B\u6807\u8BC6\u7B26\u4E3A \"{0}\" \u7684\u5143\u7D20\u3002
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u4E0D\u5141\u8BB8\u5F15\u7528\u5916\u90E8\u5B9E\u4F53 \"{0}\"\u3002
+- MSG_FIXED_ATTVALUE_INVALID = \u503C\u4E3A \"{2}\" \u7684\u5C5E\u6027 \"{1}\" \u5FC5\u987B\u5177\u6709 \"{3}\" \u7684\u503C\u3002
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u5143\u7D20\u7C7B\u578B \"{0}\" \u5DF2\u7ECF\u5177\u6709\u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027 \"{1}\", \u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A ID \u7684\u53E6\u4E00\u4E2A\u5C5E\u6027 \"{2}\"\u3002
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u5143\u7D20\u7C7B\u578B \"{0}\" \u5DF2\u7ECF\u5177\u6709\u7C7B\u578B\u4E3A NOTATION \u7684\u5C5E\u6027 \"{1}\", \u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A NOTATION \u7684\u53E6\u4E00\u4E2A\u5C5E\u6027 \"{2}\"\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u5728\u5C5E\u6027 \"{0}\" \u7684\u8BB0\u53F7\u7C7B\u578B\u5217\u8868\u4E2D\u5F15\u7528\u8BB0\u53F7 \"{1}\" \u65F6, \u5FC5\u987B\u58F0\u660E\u8BE5\u8BB0\u53F7\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \u5728 \"{0}\" \u7684\u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u58F0\u660E\u4E2D\u5F15\u7528\u8BB0\u53F7 \"{1}\" \u65F6, \u5FC5\u987B\u58F0\u660E\u8BE5\u8BB0\u53F7\u3002
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u4E0D\u5141\u8BB8\u5F15\u7528\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5916\u90E8\u5B9E\u4F53\u4E2D\u58F0\u660E\u7684\u5B9E\u4F53 \"{0}\"\u3002
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u9700\u8981\u5C5E\u6027 \"{1}\", \u5E76\u4E14\u5FC5\u987B\u4E3A\u5143\u7D20\u7C7B\u578B \"{0}\" \u6307\u5B9A\u8BE5\u5C5E\u6027\u3002
+- MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \u5BF9\u4E8E\u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u5177\u6709\u5143\u7D20\u5185\u5BB9\u7684\u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5916\u90E8\u5B9E\u4F53, \u5728\u8BE5\u5B9E\u4F53\u4E2D\u58F0\u660E\u7684\u5143\u7D20\u4E4B\u95F4\u4E0D\u80FD\u51FA\u73B0\u7A7A\u683C\u3002
+- NMTOKENInvalid = \u7C7B\u578B\u4E3A NMTOKEN \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F\u540D\u79F0\u6807\u8BB0\u3002
+- NMTOKENSInvalid = \u7C7B\u578B\u4E3A NMTOKENS \u7684\u5C5E\u6027\u503C \"{0}\" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u540D\u79F0\u6807\u8BB0\u3002
+- NoNotationOnEmptyElement = \u5DF2\u58F0\u660E\u4E3A EMPTY \u7684\u5143\u7D20\u7C7B\u578B \"{0}\" \u4E0D\u80FD\u58F0\u660E\u7C7B\u578B\u4E3A NOTATION \u7684\u5C5E\u6027 \"{1}\"\u3002
+- RootElementTypeMustMatchDoctypedecl = \u6587\u6863\u6839\u5143\u7D20 \"{1}\" \u5FC5\u987B\u5339\u914D DOCTYPE \u6839 \"{0}\"\u3002
+- UndeclaredElementInContentSpec = \u5143\u7D20 \"{0}\" \u7684\u5185\u5BB9\u6A21\u578B\u5F15\u7528\u672A\u58F0\u660E\u7684\u5143\u7D20 \"{1}\"\u3002
+- UniqueNotationName = \u8BB0\u53F7 \"{0}\" \u7684\u58F0\u660E\u4E0D\u662F\u552F\u4E00\u7684\u3002\u4E0D\u80FD\u5728\u591A\u4E2A\u8BB0\u53F7\u58F0\u660E\u4E2D\u58F0\u660E\u6307\u5B9A\u7684\u540D\u79F0\u3002
++ MSG_ELEMENT_WITH_ID_REQUIRED = \u6587\u6863\u4E2D\u5FC5\u987B\u5305\u542B\u6807\u8BC6\u7B26\u4E3A "{0}" \u7684\u5143\u7D20\u3002
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u4E0D\u5141\u8BB8\u5F15\u7528\u5916\u90E8\u5B9E\u4F53 "{0}"\u3002
++ MSG_FIXED_ATTVALUE_INVALID = \u503C\u4E3A "{2}" \u7684\u5C5E\u6027 "{1}" \u5FC5\u987B\u5177\u6709 "{3}" \u7684\u503C\u3002
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u5143\u7D20\u7C7B\u578B "{0}" \u5DF2\u7ECF\u5177\u6709\u7C7B\u578B\u4E3A ID \u7684\u5C5E\u6027 "{1}", \u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A ID \u7684\u53E6\u4E00\u4E2A\u5C5E\u6027 "{2}"\u3002
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u5143\u7D20\u7C7B\u578B "{0}" \u5DF2\u7ECF\u5177\u6709\u7C7B\u578B\u4E3A NOTATION \u7684\u5C5E\u6027 "{1}", \u4E0D\u5141\u8BB8\u4F7F\u7528\u7C7B\u578B\u4E3A NOTATION \u7684\u53E6\u4E00\u4E2A\u5C5E\u6027 "{2}"\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u5728\u5C5E\u6027 "{0}" \u7684\u8BB0\u53F7\u7C7B\u578B\u5217\u8868\u4E2D\u5F15\u7528\u8BB0\u53F7 "{1}" \u65F6, \u5FC5\u987B\u58F0\u660E\u8BE5\u8BB0\u53F7\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \u5728 "{0}" \u7684\u672A\u89E3\u6790\u5B9E\u4F53\u58F0\u660E\u4E2D\u5F15\u7528\u8BB0\u53F7 "{1}" \u65F6, \u5FC5\u987B\u58F0\u660E\u8BE5\u8BB0\u53F7\u3002
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u4E0D\u5141\u8BB8\u5F15\u7528\u5DF2\u89E3\u6790\u7684\u5916\u90E8\u5B9E\u4F53\u4E2D\u58F0\u660E\u7684\u5B9E\u4F53 "{0}"\u3002
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u9700\u8981\u5C5E\u6027 "{1}", \u5E76\u4E14\u5FC5\u987B\u4E3A\u5143\u7D20\u7C7B\u578B "{0}" \u6307\u5B9A\u8BE5\u5C5E\u6027\u3002
++ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \u5BF9\u4E8E\u5728\u72EC\u7ACB\u6587\u6863\u4E2D\u5177\u6709\u5143\u7D20\u5185\u5BB9\u7684\u5DF2\u89E3\u6790\u7684\u5916\u90E8\u5B9E\u4F53, \u5728\u8BE5\u5B9E\u4F53\u4E2D\u58F0\u660E\u7684\u5143\u7D20\u4E4B\u95F4\u4E0D\u80FD\u51FA\u73B0\u7A7A\u683C\u3002
++ NMTOKENInvalid = \u7C7B\u578B\u4E3A NMTOKEN \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F\u540D\u79F0\u6807\u8BB0\u3002
++ NMTOKENSInvalid = \u7C7B\u578B\u4E3A NMTOKENS \u7684\u5C5E\u6027\u503C "{0}" \u5FC5\u987B\u662F\u4E00\u4E2A\u6216\u591A\u4E2A\u540D\u79F0\u6807\u8BB0\u3002
++ NoNotationOnEmptyElement = \u5DF2\u58F0\u660E\u4E3A EMPTY \u7684\u5143\u7D20\u7C7B\u578B "{0}" \u4E0D\u80FD\u58F0\u660E\u7C7B\u578B\u4E3A NOTATION \u7684\u5C5E\u6027 "{1}"\u3002
++ RootElementTypeMustMatchDoctypedecl = \u6587\u6863\u6839\u5143\u7D20 "{1}" \u5FC5\u987B\u5339\u914D DOCTYPE \u6839 "{0}"\u3002
++ UndeclaredElementInContentSpec = \u5143\u7D20 "{0}" \u7684\u5185\u5BB9\u6A21\u578B\u5F15\u7528\u672A\u58F0\u660E\u7684\u5143\u7D20 "{1}"\u3002
++ UniqueNotationName = \u8BB0\u53F7 "{0}" \u7684\u58F0\u660E\u4E0D\u662F\u552F\u4E00\u7684\u3002\u4E0D\u80FD\u5728\u591A\u4E2A\u8BB0\u53F7\u58F0\u660E\u4E2D\u58F0\u660E\u6307\u5B9A\u7684\u540D\u79F0\u3002
+ ENTITYFailedInitializeGrammar = ENTITYDatatype \u9A8C\u8BC1\u7A0B\u5E8F: \u672A\u80FD\u4F7F\u7528\u6709\u6548\u7684\u8BED\u6CD5\u5F15\u7528\u8C03\u7528\u521D\u59CB\u5316\u65B9\u6CD5\u3002\t
+- ENTITYNotUnparsed = ENTITY \"{0}\" \u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u3002
+- ENTITYNotValid = ENTITY \"{0}\" \u65E0\u6548\u3002
++ ENTITYNotUnparsed = ENTITY "{0}" \u4E0D\u662F\u672A\u89E3\u6790\u7684\u3002
++ ENTITYNotValid = ENTITY "{0}" \u65E0\u6548\u3002
+ EmptyList = \u7C7B\u578B\u4E3A ENTITIES, IDREFS \u548C NMTOKENS \u7684\u503C\u4E0D\u80FD\u662F\u7A7A\u5217\u8868\u3002
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = \u5C5E\u6027\u503C\u4E2D\u4E0D\u5141\u8BB8\u91C7\u7528\u5916\u90E8\u5B9E\u4F53\u5F15\u7528 \"&{0};\"\u3002
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = \u5C5E\u6027\u503C\u4E2D\u4E0D\u5141\u8BB8\u91C7\u7528\u5916\u90E8\u5B9E\u4F53\u5F15\u7528 "&{0};"\u3002
++ AccessExternalDTD = \u5916\u90E8 DTD: \u65E0\u6CD5\u8BFB\u53D6\u5916\u90E8 DTD ''{0}'', \u56E0\u4E3A accessExternalDTD \u5C5E\u6027\u8BBE\u7F6E\u7684\u9650\u5236\u5BFC\u81F4\u4E0D\u5141\u8BB8 ''{1}'' \u8BBF\u95EE\u3002
++ AccessExternalEntity = \u5916\u90E8\u5B9E\u4F53: \u65E0\u6CD5\u8BFB\u53D6\u5916\u90E8\u6587\u6863 ''{0}'', \u56E0\u4E3A accessExternalDTD \u5C5E\u6027\u8BBE\u7F6E\u7684\u9650\u5236\u5BFC\u81F4\u4E0D\u5141\u8BB8 ''{1}'' \u8BBF\u95EE\u3002
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = \u5F15\u7528\u4E86\u5B9E\u4F53 \"{0}\", \u4F46\u672A\u58F0\u660E\u5B83\u3002
+- ReferenceToUnparsedEntity = \u4E0D\u5141\u8BB8\u4F7F\u7528\u672A\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u5F15\u7528 \"&{0};\"\u3002
+- RecursiveReference = \u9012\u5F52\u5B9E\u4F53\u5F15\u7528 \"{0}\"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
+- RecursiveGeneralReference = \u9012\u5F52\u4E00\u822C\u5B9E\u4F53\u5F15\u7528 \"&{0};\"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
+- RecursivePEReference = \u9012\u5F52\u53C2\u6570\u5B9E\u4F53\u5F15\u7528 \"%{0};\"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
++ EntityNotDeclared = \u5F15\u7528\u4E86\u5B9E\u4F53 "{0}", \u4F46\u672A\u58F0\u660E\u5B83\u3002
++ ReferenceToUnparsedEntity = \u4E0D\u5141\u8BB8\u4F7F\u7528\u672A\u89E3\u6790\u7684\u5B9E\u4F53\u5F15\u7528 "&{0};"\u3002
++ RecursiveReference = \u9012\u5F52\u5B9E\u4F53\u5F15\u7528 "{0}"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
++ RecursiveGeneralReference = \u9012\u5F52\u4E00\u822C\u5B9E\u4F53\u5F15\u7528 "&{0};"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
++ RecursivePEReference = \u9012\u5F52\u53C2\u6570\u5B9E\u4F53\u5F15\u7528 "%{0};"\u3002(\u5F15\u7528\u8DEF\u5F84: {1}),
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = \u4E0D\u652F\u6301\u7F16\u7801 \"{0}\"\u3002
+- EncodingRequired = \u5982\u679C\u5DF2\u8FDB\u884C\u8BED\u6CD5\u5206\u6790\u7684\u5B9E\u4F53\u672A\u4F7F\u7528 UTF-8 \u6216 UTF-16 \u8FDB\u884C\u7F16\u7801, \u5219\u8BE5\u5B9E\u4F53\u5FC5\u987B\u5305\u542B\u7F16\u7801\u58F0\u660E\u3002
++ EncodingNotSupported = \u4E0D\u652F\u6301\u7F16\u7801 "{0}"\u3002
++ EncodingRequired = \u5982\u679C\u5DF2\u89E3\u6790\u7684\u5B9E\u4F53\u672A\u4F7F\u7528 UTF-8 \u6216 UTF-16 \u8FDB\u884C\u7F16\u7801, \u5219\u8BE5\u5B9E\u4F53\u5FC5\u987B\u5305\u542B\u7F16\u7801\u58F0\u660E\u3002
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = \u5143\u7D20\u6216\u5C5E\u6027\u4E0D\u5339\u914D QName \u751F\u4EA7: QName::=(NCName':')?NCName\u3002
+- ElementXMLNSPrefix = \u5143\u7D20 \"{0}\" \u4E0D\u80FD\u4F7F\u7528 \"xmlns\" \u4F5C\u4E3A\u524D\u7F00\u3002
+- ElementPrefixUnbound = \u5143\u7D20 \"{1}\" \u7684\u524D\u7F00 \"{0}\" \u672A\u7ED1\u5B9A\u3002
+- AttributePrefixUnbound = \u4E0E\u5143\u7D20\u7C7B\u578B \"{0}\" \u76F8\u5173\u8054\u7684\u5C5E\u6027 \"{1}\" \u7684\u524D\u7F00 \"{2}\" \u672A\u7ED1\u5B9A\u3002
+- EmptyPrefixedAttName = \u5C5E\u6027 \"{0}\" \u7684\u503C\u65E0\u6548\u3002\u5E26\u524D\u7F00\u7684\u540D\u79F0\u7A7A\u95F4\u7ED1\u5B9A\u4E0D\u80FD\u4E3A\u7A7A\u3002
+- PrefixDeclared = \u672A\u58F0\u660E\u540D\u79F0\u7A7A\u95F4\u524D\u7F00 \"{0}\"\u3002
++ ElementXMLNSPrefix = \u5143\u7D20 "{0}" \u4E0D\u80FD\u4F7F\u7528 "xmlns" \u4F5C\u4E3A\u524D\u7F00\u3002
++ ElementPrefixUnbound = \u5143\u7D20 "{1}" \u7684\u524D\u7F00 "{0}" \u672A\u7ED1\u5B9A\u3002
++ AttributePrefixUnbound = \u4E0E\u5143\u7D20\u7C7B\u578B "{0}" \u76F8\u5173\u8054\u7684\u5C5E\u6027 "{1}" \u7684\u524D\u7F00 "{2}" \u672A\u7ED1\u5B9A\u3002
++ EmptyPrefixedAttName = \u5C5E\u6027 "{0}" \u7684\u503C\u65E0\u6548\u3002\u5E26\u524D\u7F00\u7684\u540D\u79F0\u7A7A\u95F4\u7ED1\u5B9A\u4E0D\u80FD\u4E3A\u7A7A\u3002
++ PrefixDeclared = \u672A\u58F0\u660E\u540D\u79F0\u7A7A\u95F4\u524D\u7F00 "{0}"\u3002
+ CantBindXMLNS = \u524D\u7F00 "xmlns" \u4E0D\u80FD\u663E\u5F0F\u7ED1\u5B9A\u5230\u4EFB\u4F55\u540D\u79F0\u7A7A\u95F4; "xmlns" \u7684\u540D\u79F0\u7A7A\u95F4\u4E5F\u4E0D\u80FD\u663E\u5F0F\u7ED1\u5B9A\u5230\u4EFB\u4F55\u524D\u7F00\u3002
+ CantBindXML = \u524D\u7F00 "xml" \u4E0D\u80FD\u7ED1\u5B9A\u5230\u9664\u5B83\u7684\u5E38\u7528\u540D\u79F0\u7A7A\u95F4\u5916\u7684\u4EFB\u4F55\u540D\u79F0\u7A7A\u95F4; "xml" \u7684\u540D\u79F0\u7A7A\u95F4\u4E5F\u4E0D\u80FD\u7ED1\u5B9A\u5230\u9664 "xml" \u5916\u7684\u4EFB\u4F55\u524D\u7F00\u3002
+- MSG_ATT_DEFAULT_INVALID = \u5C5E\u6027 \"{0}\" \u7684 defaultValue \"{1}\" \u975E\u6CD5, \u56E0\u4E3A\u6B64\u5C5E\u6027\u7C7B\u578B\u5177\u6709\u8BCD\u6C47\u7EA6\u675F\u6761\u4EF6\u3002
++ MSG_ATT_DEFAULT_INVALID = \u5C5E\u6027 "{0}" \u7684 defaultValue "{1}" \u975E\u6CD5, \u56E0\u4E3A\u6B64\u5C5E\u6027\u7C7B\u578B\u5177\u6709\u8BCD\u6C47\u7EA6\u675F\u6761\u4EF6\u3002
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +317,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=\u8BED\u6CD5\u5206\u6790\u5668\u5728\u6B64\u6587\u6863\u4E2D\u9047\u5230\u591A\u4E2A \"{0}\" \u5B9E\u4F53\u6269\u5C55; \u8FD9\u662F\u5E94\u7528\u7A0B\u5E8F\u65BD\u52A0\u7684\u9650\u5236\u3002
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: \u89E3\u6790\u5668\u5728\u6B64\u6587\u6863\u4E2D\u9047\u5230\u591A\u4E2A "{0}" \u5B9E\u4F53\u6269\u5C55; \u8FD9\u662F JDK \u65BD\u52A0\u7684\u9650\u5236\u3002
++ ElementAttributeLimit=JAXP00010002: \u5143\u7D20 "{0}" \u5177\u6709\u591A\u4E2A "{1}" \u5C5E\u6027, "{1}" \u662F JDK \u65BD\u52A0\u7684\u9650\u5236\u3002
++ MaxEntitySizeLimit=JAXP00010003: \u5B9E\u4F53 "{0}" \u7684\u957F\u5EA6\u4E3A "{1}", \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684 "{2}" \u9650\u5236\u3002
++ TotalEntitySizeLimit=JAXP00010004: \u5B9E\u4F53\u7684\u7D2F\u8BA1\u5927\u5C0F "{0}" \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684 "{1}" \u9650\u5236\u3002
++ MaxXMLNameLimit=JAXP00010005: \u540D\u79F0 "{0}" \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684 "{1}" \u9650\u5236\u3002
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= \u5143\u7D20 \"{0}\" \u5177\u6709\u591A\u4E2A \"{1}\" \u5C5E\u6027, \"{1}\" \u662F\u5E94\u7528\u7A0B\u5E8F\u65BD\u52A0\u7684\u9650\u5236\u3002
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties 2013-12-01 11:13:41.000000000 -0800
+@@ -1,30 +1,27 @@
+-/*
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation. Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-/*
+- * Copyright (c) 2009 by Oracle Corporation. 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
+
+ # This file contains error and warning messages related to XML
+ # The messages are arranged in key and value tuples in a ListResourceBundle.
+@@ -48,14 +45,14 @@
+ InvalidCharInProlog = \u5728\u6587\u4EF6\u5BA3\u544A\u96C6\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ # 2.4 Character Data and Markup
+- CDEndInContent = \u5B57\u5143\u9806\u5E8F \"]]>\" \u4E0D\u53EF\u51FA\u73FE\u5728\u5167\u5BB9\u4E2D\uFF0C\u9664\u975E\u7528\u65BC\u6A19\u793A CDATA \u6BB5\u843D\u7684\u7D50\u5C3E\u3002
++ CDEndInContent = \u5B57\u5143\u9806\u5E8F "]]>" \u4E0D\u53EF\u51FA\u73FE\u5728\u5167\u5BB9\u4E2D\uFF0C\u9664\u975E\u7528\u65BC\u6A19\u793A CDATA \u6BB5\u843D\u7684\u7D50\u5C3E\u3002
+ # 2.7 CDATA Sections
+- CDSectUnterminated = CDATA \u6BB5\u843D\u7D50\u5C3E\u5FC5\u9808\u662F \"]]>\"\u3002
++ CDSectUnterminated = CDATA \u6BB5\u843D\u7D50\u5C3E\u5FC5\u9808\u662F "]]>"\u3002
+ # 2.8 Prolog and Document Type Declaration
+ XMLDeclMustBeFirst = XML \u5BA3\u544A\u50C5\u80FD\u51FA\u73FE\u5728\u6587\u4EF6\u7684\u958B\u982D\u3002
+- EqRequiredInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C'' = '' \u5B57\u5143\u5FC5\u9808\u7DCA\u63A5\u5728 \"{0}\" \u4E4B\u5F8C\u3002
+- QuoteRequiredInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C\"{0}\" \u4E4B\u5F8C\u7684\u503C\u5FC5\u9808\u662F\u4EE5\u5F15\u865F\u62EC\u4F4F\u7684\u5B57\u4E32\u3002
+- XMLDeclUnterminated = XML \u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u662F \"?>\"\u3002
++ EqRequiredInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C'' = '' \u5B57\u5143\u5FC5\u9808\u7DCA\u63A5\u5728 "{0}" \u4E4B\u5F8C\u3002
++ QuoteRequiredInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C"{0}" \u4E4B\u5F8C\u7684\u503C\u5FC5\u9808\u662F\u4EE5\u5F15\u865F\u62EC\u4F4F\u7684\u5B57\u4E32\u3002
++ XMLDeclUnterminated = XML \u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u662F "?>"\u3002
+ VersionInfoRequired = XML \u5BA3\u544A\u4E2D\u9700\u8981\u7248\u672C\u3002
+ SpaceRequiredBeforeVersionInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C\u7248\u672C\u865B\u64EC\u5C6C\u6027\u4E4B\u524D\u9700\u8981\u6709\u7A7A\u683C\u3002
+ SpaceRequiredBeforeEncodingInXMLDecl = \u5728 XML \u5BA3\u544A\u4E2D\uFF0C\u7DE8\u78BC\u865B\u64EC\u5C6C\u6027\u4E4B\u524D\u9700\u8981\u6709\u7A7A\u683C\u3002
+@@ -71,90 +68,91 @@
+ ReferenceIllegalInTrailingMisc=\u5C3E\u7AEF\u6BB5\u843D\u4E2D\u4E0D\u5141\u8A31\u53C3\u7167\u3002
+
+ # 2.9 Standalone Document Declaration
+- SDDeclInvalid = \u7368\u7ACB\u6587\u4EF6\u5BA3\u544A\u503C\u5FC5\u9808\u662F \"yes\" \u6216 \"no\"\uFF0C\u800C\u975E \"{0}\"\u3002
++ SDDeclInvalid = \u7368\u7ACB\u6587\u4EF6\u5BA3\u544A\u503C\u5FC5\u9808\u662F "yes" \u6216 "no"\uFF0C\u800C\u975E "{0}"\u3002
++ SDDeclNameInvalid = XML \u5BA3\u544A\u4E2D\u7684\u7368\u7ACB\u540D\u7A31\u53EF\u80FD\u62FC\u932F\u4E86\u3002
+ # 2.12 Language Identification
+- XMLLangInvalid = xml:lang \u5C6C\u6027\u503C \"{0}\" \u70BA\u7121\u6548\u7684\u8A9E\u8A00 ID\u3002
++ XMLLangInvalid = xml:lang \u5C6C\u6027\u503C "{0}" \u70BA\u7121\u6548\u7684\u8A9E\u8A00 ID\u3002
+ # 3. Logical Structures
+- ETagRequired = \u5143\u7D20\u985E\u578B \"{0}\" \u5FC5\u9808\u7531\u914D\u5C0D\u7684\u7D50\u675F\u6A19\u8A18 \"{0}>\" \u7D42\u6B62\u3002
++ ETagRequired = \u5143\u7D20\u985E\u578B "{0}" \u5FC5\u9808\u7531\u914D\u5C0D\u7684\u7D50\u675F\u6A19\u8A18 "{0}>" \u7D42\u6B62\u3002
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ElementUnterminated = \u5143\u7D20\u985E\u578B \"{0}\" \u4E4B\u5F8C\u5FC5\u9808\u7DCA\u63A5\u5C6C\u6027\u8A2D\u5B9A \">\" \u6216 \"/>\"\u3002
+- EqRequiredInAttribute = \u95DC\u806F\u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5C6C\u6027\u540D\u7A31 \"{1}\" \u4E4B\u5F8C\u5FC5\u9808\u7DCA\u63A5 '' = '' \u5B57\u5143\u3002
+- OpenQuoteExpected = \u95DC\u806F\u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5C6C\u6027 \"{1}\" \u9810\u671F\u6709\u958B\u982D\u5F15\u865F\u3002
+- CloseQuoteExpected = \u95DC\u806F\u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5C6C\u6027 \"{1}\" \u9810\u671F\u6709\u7D50\u675F\u5F15\u865F\u3002
+- AttributeNotUnique = \u5DF2\u7D93\u70BA\u5143\u7D20 \"{0}\" \u6307\u5B9A\u5C6C\u6027 \"{1}\"\u3002
+- AttributeNSNotUnique = \u5DF2\u7D93\u70BA\u5143\u7D20 \"{0}\" \u6307\u5B9A\u9023\u7D50\u547D\u540D\u7A7A\u9593 \"{2}\" \u7684\u5C6C\u6027 \"{1}\"\u3002
+- ETagUnterminated = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u7D50\u675F\u6A19\u8A18\u7D50\u5C3E\u5FC5\u9808\u662F ''>'' \u5206\u754C\u5B57\u5143\u3002
++ ElementUnterminated = \u5143\u7D20\u985E\u578B "{0}" \u4E4B\u5F8C\u5FC5\u9808\u7DCA\u63A5\u5C6C\u6027\u8A2D\u5B9A ">" \u6216 "/>"\u3002
++ EqRequiredInAttribute = \u95DC\u806F\u5143\u7D20\u985E\u578B "{0}" \u7684\u5C6C\u6027\u540D\u7A31 "{1}" \u4E4B\u5F8C\u5FC5\u9808\u7DCA\u63A5 '' = '' \u5B57\u5143\u3002
++ OpenQuoteExpected = \u95DC\u806F\u5143\u7D20\u985E\u578B "{0}" \u7684\u5C6C\u6027 "{1}" \u9810\u671F\u6709\u958B\u982D\u5F15\u865F\u3002
++ CloseQuoteExpected = \u95DC\u806F\u5143\u7D20\u985E\u578B "{0}" \u7684\u5C6C\u6027 "{1}" \u9810\u671F\u6709\u7D50\u675F\u5F15\u865F\u3002
++ AttributeNotUnique = \u5DF2\u7D93\u70BA\u5143\u7D20 "{0}" \u6307\u5B9A\u5C6C\u6027 "{1}"\u3002
++ AttributeNSNotUnique = \u5DF2\u7D93\u70BA\u5143\u7D20 "{0}" \u6307\u5B9A\u9023\u7D50\u547D\u540D\u7A7A\u9593 "{2}" \u7684\u5C6C\u6027 "{1}"\u3002
++ ETagUnterminated = \u5143\u7D20\u985E\u578B "{0}" \u7684\u7D50\u675F\u6A19\u8A18\u7D50\u5C3E\u5FC5\u9808\u662F ''>'' \u5206\u754C\u5B57\u5143\u3002
+ MarkupNotRecognizedInContent = \u5143\u7D20\u7684\u5167\u5BB9\u5FC5\u9808\u7531\u683C\u5F0F\u6B63\u78BA\u7684\u4F4D\u63CF\u8FF0\u8CC7\u6599\u6216\u6A19\u8A18\u6240\u7D44\u6210\u3002
+ DoctypeIllegalInContent = \u5167\u5BB9\u4E0D\u5141\u8A31 DOCTYPE\u3002
+ # 4.1 Character and Entity References
+ ReferenceUnterminated = \u53C3\u7167\u5FC5\u9808\u7531 ';' \u5206\u754C\u5B57\u5143\u7D42\u6B62\u3002
+ # 4.3.2 Well-Formed Parsed Entities
+- ReferenceNotInOneEntity = \u53C3\u7167\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u500B\u9AD4\u5167\u3002
+- ElementEntityMismatch = \u5143\u7D20 \"{0}\" \u7684\u958B\u982D\u8207\u7D50\u5C3E\u5FC5\u9808\u5728\u76F8\u540C\u500B\u9AD4\u5167\u3002
+- MarkupEntityMismatch=XML \u6587\u4EF6\u7D50\u69CB\u7684\u958B\u982D\u8207\u7D50\u5C3E\u5FC5\u9808\u5728\u76F8\u540C\u500B\u9AD4\u5167\u3002
++ ReferenceNotInOneEntity = \u53C3\u7167\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u5BE6\u9AD4\u5167\u3002
++ ElementEntityMismatch = \u5143\u7D20 "{0}" \u7684\u958B\u982D\u8207\u7D50\u5C3E\u5FC5\u9808\u5728\u76F8\u540C\u5BE6\u9AD4\u5167\u3002
++ MarkupEntityMismatch=XML \u6587\u4EF6\u7D50\u69CB\u7684\u958B\u982D\u8207\u7D50\u5C3E\u5FC5\u9808\u5728\u76F8\u540C\u5BE6\u9AD4\u5167\u3002
+
+ # Messages common to Document and DTD
+ # 2.2 Characters
+- InvalidCharInAttValue = \u5728\u5C6C\u6027 \"{1}\" \u7684\u503C\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{2}) \u4E14\u5143\u7D20\u70BA \"{0}\"\u3002
++ InvalidCharInAttValue = \u5728\u5C6C\u6027 "{1}" \u7684\u503C\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{2}) \u4E14\u5143\u7D20\u70BA "{0}"\u3002
+ InvalidCharInComment = \u5728\u8A3B\u89E3\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInPI = \u5728\u8655\u7406\u6307\u793A\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInInternalSubset = \u5728 DTD \u5167\u90E8\u5B50\u96C6\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInTextDecl = \u5728\u6587\u5B57\u5BA3\u544A\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ # 2.3 Common Syntactic Constructs
+- QuoteRequiredInAttValue = \u5C6C\u6027 \"{1}\" \u7684\u503C\u958B\u982D\u5FC5\u9808\u70BA\u55AE\u5F15\u865F\u6216\u96D9\u5F15\u865F\u5B57\u5143\u3002
+- LessthanInAttValue = \u95DC\u806F\u5143\u7D20\u985E\u578B \"{0}\" \u4E4B\u5C6C\u6027 \"{1}\" \u7684\u503C\u4E0D\u53EF\u5305\u542B ''<'' \u5B57\u5143\u3002
+- AttributeValueUnterminated = \u5C6C\u6027 \"{1}\" \u7684\u503C\u7D50\u5C3E\u5FC5\u9808\u662F\u914D\u5C0D\u7684\u5F15\u865F\u5B57\u5143\u3002
++ QuoteRequiredInAttValue = \u5C6C\u6027 "{1}" \u7684\u503C\u958B\u982D\u5FC5\u9808\u70BA\u55AE\u5F15\u865F\u6216\u96D9\u5F15\u865F\u5B57\u5143\u3002
++ LessthanInAttValue = \u95DC\u806F\u5143\u7D20\u985E\u578B "{0}" \u4E4B\u5C6C\u6027 "{1}" \u7684\u503C\u4E0D\u53EF\u5305\u542B ''<'' \u5B57\u5143\u3002
++ AttributeValueUnterminated = \u5C6C\u6027 "{1}" \u7684\u503C\u7D50\u5C3E\u5FC5\u9808\u662F\u914D\u5C0D\u7684\u5F15\u865F\u5B57\u5143\u3002
+ # 2.5 Comments
+- InvalidCommentStart = \u8A3B\u89E3\u958B\u982D\u5FC5\u9808\u70BA \"\"\u3002
+- COMMENT_NOT_IN_ONE_ENTITY = \u8A3B\u89E3\u672A\u5305\u542B\u5728\u76F8\u540C\u500B\u9AD4\u5167\u3002
++ InvalidCommentStart = \u8A3B\u89E3\u958B\u982D\u5FC5\u9808\u70BA ""\u3002
++ COMMENT_NOT_IN_ONE_ENTITY = \u8A3B\u89E3\u672A\u5305\u542B\u5728\u76F8\u540C\u5BE6\u9AD4\u5167\u3002
+ # 2.6 Processing Instructions
+ PITargetRequired = \u8655\u7406\u6307\u793A\u7684\u958B\u982D\u5FC5\u9808\u662F\u76EE\u6A19\u7684\u540D\u7A31\u3002
+ SpaceRequiredInPI = \u8655\u7406\u6307\u793A\u76EE\u6A19\u8207\u8CC7\u6599\u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
+- PIUnterminated = \u8655\u7406\u6307\u793A\u7D50\u5C3E\u5FC5\u9808\u662F \"?>\"\u3002
+- ReservedPITarget = \u4E0D\u5141\u8A31\u7B26\u5408 \"[xX][mM][lL]\" \u7684\u8655\u7406\u6307\u793A\u76EE\u6A19\u3002
+- PI_NOT_IN_ONE_ENTITY = \u8655\u7406\u6307\u793A\u672A\u5305\u542B\u5728\u76F8\u540C\u500B\u9AD4\u5167\u3002
++ PIUnterminated = \u8655\u7406\u6307\u793A\u7D50\u5C3E\u5FC5\u9808\u662F "?>"\u3002
++ ReservedPITarget = \u4E0D\u5141\u8A31\u7B26\u5408 "[xX][mM][lL]" \u7684\u8655\u7406\u6307\u793A\u76EE\u6A19\u3002
++ PI_NOT_IN_ONE_ENTITY = \u8655\u7406\u6307\u793A\u672A\u5305\u542B\u5728\u76F8\u540C\u5BE6\u9AD4\u5167\u3002
+ # 2.8 Prolog and Document Type Declaration
+- VersionInfoInvalid = \u7121\u6548\u7684\u7248\u672C \"{0}\"\u3002
+- VersionNotSupported = \u4E0D\u652F\u63F4 XML \u7248\u672C \"{0}\"\uFF0C\u50C5\u652F\u63F4 XML 1.0\u3002
+- VersionNotSupported11 = \u4E0D\u652F\u63F4 XML \u7248\u672C \"{0}\"\uFF0C\u50C5\u652F\u63F4 XML 1.0 \u8207 XML 1.1\u3002
+- VersionMismatch= \u500B\u9AD4\u4E0D\u53EF\u5305\u542B\u8F03\u65B0\u7248\u672C\u7684\u5176\u4ED6\u500B\u9AD4\u3002
++ VersionInfoInvalid = \u7121\u6548\u7684\u7248\u672C "{0}"\u3002
++ VersionNotSupported = \u4E0D\u652F\u63F4 XML \u7248\u672C "{0}"\uFF0C\u50C5\u652F\u63F4 XML 1.0\u3002
++ VersionNotSupported11 = \u4E0D\u652F\u63F4 XML \u7248\u672C "{0}"\uFF0C\u50C5\u652F\u63F4 XML 1.0 \u8207 XML 1.1\u3002
++ VersionMismatch= \u5BE6\u9AD4\u4E0D\u53EF\u5305\u542B\u8F03\u65B0\u7248\u672C\u7684\u5176\u4ED6\u5BE6\u9AD4\u3002
+ # 4.1 Character and Entity References
+- DigitRequiredInCharRef = \u5728\u5B57\u5143\u53C3\u7167\u4E2D\uFF0C\u5341\u9032\u4F4D\u8868\u793A\u6CD5\u5FC5\u9808\u7DCA\u63A5\u5728 \"\" \u4E4B\u5F8C\u3002
+- HexdigitRequiredInCharRef = \u5728\u5B57\u5143\u53C3\u7167\u4E2D\uFF0C\u5341\u516D\u9032\u4F4D\u8868\u793A\u6CD5\u5FC5\u9808\u7DCA\u63A5\u5728 \"\" \u4E4B\u5F8C\u3002
++ DigitRequiredInCharRef = \u5728\u5B57\u5143\u53C3\u7167\u4E2D\uFF0C\u5341\u9032\u4F4D\u8868\u793A\u6CD5\u5FC5\u9808\u7DCA\u63A5\u5728 "" \u4E4B\u5F8C\u3002
++ HexdigitRequiredInCharRef = \u5728\u5B57\u5143\u53C3\u7167\u4E2D\uFF0C\u5341\u516D\u9032\u4F4D\u8868\u793A\u6CD5\u5FC5\u9808\u7DCA\u63A5\u5728 "" \u4E4B\u5F8C\u3002
+ SemicolonRequiredInCharRef = \u5B57\u5143\u53C3\u7167\u7684\u7D50\u5C3E\u5FC5\u9808\u662F ';' \u5206\u754C\u5B57\u5143\u3002
+- InvalidCharRef = \u5B57\u5143\u53C3\u7167 \"{0}\" \u70BA\u7121\u6548\u7684 XML \u5B57\u5143\u3002
+- NameRequiredInReference = \u5728\u500B\u9AD4\u53C3\u7167\u4E2D\uFF0C\u500B\u9AD4\u540D\u7A31\u5FC5\u9808\u7DCA\u63A5\u5728 '&' \u4E4B\u5F8C\u3002
+- SemicolonRequiredInReference = \u500B\u9AD4 \"{0}\" \u7684\u53C3\u7167\u7D50\u5C3E\u5FC5\u9808\u70BA '';'' \u5206\u754C\u5B57\u5143\u3002
++ InvalidCharRef = \u5B57\u5143\u53C3\u7167 "{0}" \u70BA\u7121\u6548\u7684 XML \u5B57\u5143\u3002
++ NameRequiredInReference = \u5728\u5BE6\u9AD4\u53C3\u7167\u4E2D\uFF0C\u5BE6\u9AD4\u540D\u7A31\u5FC5\u9808\u7DCA\u63A5\u5728 '&' \u4E4B\u5F8C\u3002
++ SemicolonRequiredInReference = \u5BE6\u9AD4 "{0}" \u7684\u53C3\u7167\u7D50\u5C3E\u5FC5\u9808\u70BA '';'' \u5206\u754C\u5B57\u5143\u3002
+ # 4.3.1 The Text Declaration
+- TextDeclMustBeFirst = \u6587\u5B57\u5BA3\u544A\u50C5\u80FD\u51FA\u73FE\u5728\u5916\u90E8\u5256\u6790\u500B\u9AD4\u7684\u958B\u982D\u3002
+- EqRequiredInTextDecl = \u5728\u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C'' = '' \u5B57\u5143\u5FC5\u9808\u7DCA\u63A5\u5728 \"{0}\" \u4E4B\u5F8C\u3002
+- QuoteRequiredInTextDecl = \u6587\u5B57\u5BA3\u544A\u4E2D \"{0}\" \u4E4B\u5F8C\u7684\u503C\u5FC5\u9808\u662F\u4EE5\u5F15\u865F\u62EC\u4F4F\u7684\u5B57\u4E32\u3002
+- CloseQuoteMissingInTextDecl = \u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C\u907A\u6F0F \"{0}\" \u4E4B\u5F8C\u7684\u503C\u7684\u7D50\u675F\u5F15\u865F\u3002
++ TextDeclMustBeFirst = \u6587\u5B57\u5BA3\u544A\u50C5\u80FD\u51FA\u73FE\u5728\u5916\u90E8\u5256\u6790\u5BE6\u9AD4\u7684\u958B\u982D\u3002
++ EqRequiredInTextDecl = \u5728\u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C'' = '' \u5B57\u5143\u5FC5\u9808\u7DCA\u63A5\u5728 "{0}" \u4E4B\u5F8C\u3002
++ QuoteRequiredInTextDecl = \u6587\u5B57\u5BA3\u544A\u4E2D "{0}" \u4E4B\u5F8C\u7684\u503C\u5FC5\u9808\u662F\u4EE5\u5F15\u865F\u62EC\u4F4F\u7684\u5B57\u4E32\u3002
++ CloseQuoteMissingInTextDecl = \u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C\u907A\u6F0F "{0}" \u4E4B\u5F8C\u7684\u503C\u7684\u7D50\u675F\u5F15\u865F\u3002
+ SpaceRequiredBeforeVersionInTextDecl = \u5728\u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C\u7248\u672C\u865B\u64EC\u5C6C\u6027\u4E4B\u524D\u9700\u8981\u6709\u7A7A\u683C\u3002
+ SpaceRequiredBeforeEncodingInTextDecl = \u5728\u6587\u5B57\u5BA3\u544A\u4E2D\uFF0C\u7DE8\u78BC\u865B\u64EC\u5C6C\u6027\u4E4B\u524D\u9700\u8981\u6709\u7A7A\u683C\u3002
+- TextDeclUnterminated = \u6587\u5B57\u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u662F \"?>\"\u3002
++ TextDeclUnterminated = \u6587\u5B57\u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u662F "?>"\u3002
+ EncodingDeclRequired = \u6587\u5B57\u5BA3\u544A\u4E2D\u9700\u8981\u7DE8\u78BC\u5BA3\u544A\u3002
+ NoMorePseudoAttributes = \u4E0D\u5141\u8A31\u66F4\u591A\u7684\u865B\u64EC\u5C6C\u6027\u3002
+ MorePseudoAttributes = \u9810\u671F\u66F4\u591A\u7684\u865B\u64EC\u5C6C\u6027\u3002
+ PseudoAttrNameExpected = \u9810\u671F\u4E00\u500B\u865B\u64EC\u5C6C\u6027\u540D\u7A31\u3002
+ # 4.3.2 Well-Formed Parsed Entities
+- CommentNotInOneEntity = \u8A3B\u89E3\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u500B\u9AD4\u5167\u3002
+- PINotInOneEntity = \u8655\u7406\u6307\u793A\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u500B\u9AD4\u5167\u3002
++ CommentNotInOneEntity = \u8A3B\u89E3\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u5BE6\u9AD4\u5167\u3002
++ PINotInOneEntity = \u8655\u7406\u6307\u793A\u5FC5\u9808\u6574\u500B\u5305\u542B\u5728\u76F8\u540C\u7684\u5256\u6790\u5BE6\u9AD4\u5167\u3002
+ # 4.3.3 Character Encoding in Entities
+- EncodingDeclInvalid = \u7121\u6548\u7684\u7DE8\u78BC\u540D\u7A31 \"{0}\"\u3002
+- EncodingByteOrderUnsupported = \u4E0D\u652F\u63F4\u7DE8\u78BC \"{0}\" \u7684\u6307\u5B9A\u4F4D\u5143\u7D44\u9806\u5E8F\u3002
++ EncodingDeclInvalid = \u7121\u6548\u7684\u7DE8\u78BC\u540D\u7A31 "{0}"\u3002
++ EncodingByteOrderUnsupported = \u4E0D\u652F\u63F4\u7DE8\u78BC "{0}" \u7684\u6307\u5B9A\u4F4D\u5143\u7D44\u9806\u5E8F\u3002
+ InvalidByte = {1}-byte UTF-8 \u5E8F\u5217\u7684\u7121\u6548\u4F4D\u5143\u7D44 {0}\u3002
+ ExpectedByte = {1}-byte UTF-8 \u5E8F\u5217\u9810\u671F\u7684\u4F4D\u5143\u7D44 {0}\u3002
+ InvalidHighSurrogate = UTF-8 \u5E8F\u5217\u4E2D\u9AD8\u66FF\u4EE3\u4F4D\u5143\u4E0D\u53EF\u8D85\u904E 0x10\uFF0C\u4F46\u627E\u5230 0x{0}\u3002
+- OperationNotSupported = {1} \u8B80\u53D6\u5668\u4E0D\u652F\u63F4\u4F5C\u696D \"{0}\"\u3002
+- InvalidASCII = \u7D44\u5143\u7D44 \"{0}\" \u4E0D\u662F (7 \u4F4D\u5143) ASCII \u5B57\u5143\u96C6\u7684\u6210\u54E1\u3002
+- CharConversionFailure = \u6C7A\u5B9A\u4F7F\u7528\u7279\u5B9A\u7DE8\u78BC\u7684\u500B\u9AD4\uFF0C\u5728\u8A72\u7DE8\u78BC\u4E2D\u4E0D\u53EF\u5305\u542B\u7121\u6548\u7684\u5E8F\u5217\u3002
++ OperationNotSupported = {1} \u8B80\u53D6\u5668\u4E0D\u652F\u63F4\u4F5C\u696D "{0}"\u3002
++ InvalidASCII = \u7D44\u5143\u7D44 "{0}" \u4E0D\u662F (7 \u4F4D\u5143) ASCII \u5B57\u5143\u96C6\u7684\u6210\u54E1\u3002
++ CharConversionFailure = \u6C7A\u5B9A\u4F7F\u7528\u7279\u5B9A\u7DE8\u78BC\u7684\u5BE6\u9AD4\uFF0C\u5728\u8A72\u7DE8\u78BC\u4E2D\u4E0D\u53EF\u5305\u542B\u7121\u6548\u7684\u5E8F\u5217\u3002
+
+ # DTD Messages
+ # 2.2 Characters
+- InvalidCharInEntityValue = \u5728\u6587\u5B57\u500B\u9AD4\u503C\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
++ InvalidCharInEntityValue = \u5728\u6587\u5B57\u5BE6\u9AD4\u503C\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInExternalSubset = \u5728 DTD \u5916\u90E8\u5B50\u96C6\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInIgnoreSect = \u5728\u6392\u9664\u7684\u689D\u4EF6\u6027\u6BB5\u843D\u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+ InvalidCharInPublicID = \u5728\u516C\u7528 ID \u4E2D\u627E\u5230\u7121\u6548\u7684 XML \u5B57\u5143 (Unicode: 0x{0})\u3002
+@@ -169,150 +167,150 @@
+ PubidCharIllegal = \u516C\u7528 ID \u4E2D\u4E0D\u5141\u8A31\u5B57\u5143 (Unicode: 0x{0})\u3002
+ SpaceRequiredBetweenPublicAndSystem = publicId \u8207 systemId \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
+ # 2.8 Prolog and Document Type Declaration
+- MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u5728\u6587\u4EF6\u985E\u578B\u5BA3\u544A\u4E2D \"''\u3002
+- PEReferenceWithinMarkup = DTD \u5167\u90E8\u5B57\u96C6\u7684\u6A19\u8A18\u5167\u4E0D\u80FD\u51FA\u73FE\u53C3\u6578\u500B\u9AD4\u53C3\u7167 \"%{0};\"\u3002
++ MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = \u5728\u6587\u4EF6\u985E\u578B\u5BA3\u544A\u4E2D "''\u3002
++ PEReferenceWithinMarkup = DTD \u5167\u90E8\u5B57\u96C6\u7684\u6A19\u8A18\u5167\u4E0D\u80FD\u51FA\u73FE\u53C3\u6578\u5BE6\u9AD4\u53C3\u7167 "%{0};"\u3002
+ MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = \u6587\u4EF6\u985E\u578B\u5BA3\u544A\u5305\u542B\u6216\u6307\u5411\u7684\u6A19\u8A18\u5BA3\u544A\u5FC5\u9808\u683C\u5F0F\u6B63\u78BA\u3002
+ # 2.10 White Space Handling
+- MSG_XML_SPACE_DECLARATION_ILLEGAL = \"xml:space\" \u7684\u5C6C\u6027\u5BA3\u544A\u5FC5\u9808\u6307\u5B9A\u70BA\u5217\u8209\u985E\u578B\uFF0C\u5176\u53EF\u80FD\u7684\u503C\u70BA \"default\" \u8207 \"preserve\"\u3002
++ MSG_XML_SPACE_DECLARATION_ILLEGAL = "xml:space" \u7684\u5C6C\u6027\u5BA3\u544A\u5FC5\u9808\u6307\u5B9A\u70BA\u5217\u8209\u985E\u578B\uFF0C\u5176\u53EF\u80FD\u7684\u503C\u70BA "default" \u8207 "preserve"\u3002
+ # 3.2 Element Type Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = \u5728\u5143\u7D20\u985E\u578B\u5BA3\u544A\u4E2D \"''\u3002
++ MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = \u5728\u5143\u7D20\u985E\u578B\u5BA3\u544A\u4E2D\u5143\u7D20\u985E\u578B "{0}" \u4E4B\u5F8C\u9700\u8981\u7A7A\u683C\u3002
++ MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = \u5728\u5143\u7D20\u985E\u578B\u5BA3\u544A\u4E2D\u5143\u7D20\u985E\u578B "{0}" \u4E4B\u5F8C\u9700\u8981\u9650\u5236\u689D\u4EF6\u3002
++ ElementDeclUnterminated = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u70BA ''>''\u3002
+ # 3.2.1 Element Content
+- MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B ''('' \u5B57\u5143\u6216\u5143\u7D20\u985E\u578B\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B '')''\u3002
++ MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B ''('' \u5B57\u5143\u6216\u5143\u7D20\u985E\u578B\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B '')''\u3002
+ # 3.2.2 Mixed Content
+- MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B\u5143\u7D20\u985E\u578B\u3002
+- MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B '')''\u3002
+- MixedContentUnterminated = \u5B50\u9805\u5143\u7D20\u7684\u985E\u578B\u53D7\u5230\u9650\u5236\u6642\uFF0C\u6DF7\u5408\u5167\u5BB9\u6A21\u578B \"{0}\" \u7684\u7D50\u5C3E\u5FC5\u9808\u70BA \")*\"\u3002
++ MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B\u5143\u7D20\u985E\u578B\u3002
++ MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5BA3\u544A\u4E2D\u9700\u8981\u4E00\u500B '')''\u3002
++ MixedContentUnterminated = \u5B50\u9805\u5143\u7D20\u7684\u985E\u578B\u53D7\u5230\u9650\u5236\u6642\uFF0C\u6DF7\u5408\u5167\u5BB9\u6A21\u578B "{0}" \u7684\u7D50\u5C3E\u5FC5\u9808\u70BA ")*"\u3002
+ # 3.3 Attribute-List Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = \u5728 attribute-list \u5BA3\u544A\u4E2D \"\"\u3002
+- IgnoreSectUnterminated = \u6392\u9664\u689D\u4EF6\u6027\u6BB5\u843D\u7D50\u5C3E\u5FC5\u9808\u662F \"]]>\"\u3002
++ IncludeSectUnterminated = \u5305\u542B\u689D\u4EF6\u6027\u6BB5\u843D\u7D50\u5C3E\u5FC5\u9808\u662F "]]>"\u3002
++ IgnoreSectUnterminated = \u6392\u9664\u689D\u4EF6\u6027\u6BB5\u843D\u7D50\u5C3E\u5FC5\u9808\u662F "]]>"\u3002
+ # 4.1 Character and Entity References
+- NameRequiredInPEReference = \u5728\u53C3\u6578\u500B\u9AD4\u53C3\u7167\u4E2D\uFF0C\u500B\u9AD4\u540D\u7A31\u5FC5\u9808\u7DCA\u63A5\u5728 '%' \u4E4B\u5F8C\u3002
+- SemicolonRequiredInPEReference = \u53C3\u6578\u500B\u9AD4\u53C3\u7167 \"%{0};\" \u7684\u7D50\u5C3E\u5FC5\u9808\u70BA '';'' \u5206\u754C\u5B57\u5143\u3002
++ NameRequiredInPEReference = \u5728\u53C3\u6578\u5BE6\u9AD4\u53C3\u7167\u4E2D\uFF0C\u5BE6\u9AD4\u540D\u7A31\u5FC5\u9808\u7DCA\u63A5\u5728 '%' \u4E4B\u5F8C\u3002
++ SemicolonRequiredInPEReference = \u53C3\u6578\u5BE6\u9AD4\u53C3\u7167 "%{0};" \u7684\u7D50\u5C3E\u5FC5\u9808\u70BA '';'' \u5206\u754C\u5B57\u5143\u3002
+ # 4.2 Entity Declarations
+- MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \u5728\u500B\u9AD4\u5BA3\u544A\u4E2D \"''\u3002
+- MSG_DUPLICATE_ENTITY_DEFINITION = \u500B\u9AD4 \"{0}\" \u5BA3\u544A\u8D85\u904E\u4E00\u6B21\u4EE5\u4E0A\u3002
++ MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = \u5728\u5BE6\u9AD4\u5BA3\u544A\u4E2D "''\u3002
++ MSG_DUPLICATE_ENTITY_DEFINITION = \u5BE6\u9AD4 "{0}" \u5BA3\u544A\u8D85\u904E\u4E00\u6B21\u4EE5\u4E0A\u3002
+ # 4.2.2 External Entities
+- ExternalIDRequired = \u5916\u90E8\u500B\u9AD4\u5BA3\u544A\u7684\u958B\u982D\u5FC5\u9808\u70BA \"SYSTEM\" \u6216 \"PUBLIC\"\u3002
+- MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = \"PUBLIC\" \u8207\u516C\u7528 ID \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
++ ExternalIDRequired = \u5916\u90E8\u5BE6\u9AD4\u5BA3\u544A\u7684\u958B\u982D\u5FC5\u9808\u70BA "SYSTEM" \u6216 "PUBLIC"\u3002
++ MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = "PUBLIC" \u8207\u516C\u7528 ID \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
+ MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = \u516C\u7528 ID \u8207\u7CFB\u7D71 ID \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
+- MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = \"SYSTEM\" \u8207\u7CFB\u7D71 ID \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
+- MSG_URI_FRAGMENT_IN_SYSTEMID = \u7247\u6BB5 ID \u4E0D\u61C9\u6307\u5B9A\u70BA\u7CFB\u7D71 ID \"{0}\" \u7684\u4E00\u90E8\u5206\u3002
++ MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = "SYSTEM" \u8207\u7CFB\u7D71 ID \u4E4B\u9593\u9700\u8981\u7A7A\u683C\u3002
++ MSG_URI_FRAGMENT_IN_SYSTEMID = \u7247\u6BB5 ID \u4E0D\u61C9\u6307\u5B9A\u70BA\u7CFB\u7D71 ID "{0}" \u7684\u4E00\u90E8\u5206\u3002
+ # 4.7 Notation Declarations
+- MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = \u5728\u8868\u793A\u6CD5\u5BA3\u544A\u4E2D \"''\u3002
++ MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = \u5728\u8868\u793A\u6CD5\u5BA3\u544A\u4E2D\u8868\u793A\u6CD5\u540D\u7A31 "{0}" \u4E4B\u5F8C\u9700\u8981\u7A7A\u683C\u3002
++ ExternalIDorPublicIDRequired = \u8868\u793A\u6CD5 "{0}" \u7684\u5BA3\u544A\u5FC5\u9808\u5305\u542B\u7CFB\u7D71\u6216\u516C\u7528 ID\u3002
++ NotationDeclUnterminated = \u8868\u793A\u6CD5 "{0}" \u7684\u5BA3\u544A\u7D50\u5C3E\u5FC5\u9808\u70BA ''>''\u3002
+
+ # Validation messages
+- DuplicateTypeInMixedContent = \u5143\u7D20\u5BA3\u544A \"{0}\" \u7684\u5167\u5BB9\u6A21\u578B\u4E2D\u5DF2\u7D93\u6307\u5B9A\u5143\u7D20\u985E\u578B \"{1}\"\u3002
+- ENTITIESInvalid = \u985E\u578B ENTITIES \u7684\u5C6C\u6027\u503C \"{1}\" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u672A\u5256\u6790\u500B\u9AD4\u7684\u540D\u7A31\u3002
+- ENTITYInvalid = \u985E\u578B ENTITY \u7684\u5C6C\u6027\u503C \"{1}\" \u5FC5\u9808\u662F\u4E00\u500B\u672A\u5256\u6790\u500B\u9AD4\u7684\u540D\u7A31\u3002
+- IDDefaultTypeInvalid = ID \u5C6C\u6027 \"{0}\" \u5FC5\u9808\u5177\u6709 \"#IMPLIED\" \u6216 \"#REQUIRED\" \u7684\u5BA3\u544A\u9810\u8A2D\u3002
+- IDInvalid = \u985E\u578B ID \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u540D\u7A31\u3002
+- IDInvalidWithNamespaces = \u555F\u7528\u547D\u540D\u7A7A\u9593\u6642\uFF0C\u985E\u578B ID \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F NCName\u3002
+- IDNotUnique = \u985E\u578B ID \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u6587\u4EF6\u5167\u7684\u552F\u4E00\u503C\u3002
+- IDREFInvalid = \u985E\u578B IDREF \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u540D\u7A31\u3002
+- IDREFInvalidWithNamespaces = \u555F\u7528\u547D\u540D\u7A7A\u9593\u6642\uFF0C\u985E\u578B IDREF \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F NCName\u3002
+- IDREFSInvalid = \u985E\u578B IDREFS \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u540D\u7A31\u3002
+- ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u7576\u500B\u9AD4\u53C3\u7167\u7576\u4F5C\u5B8C\u6574\u5BA3\u544A\u6642\uFF0C\u53C3\u6578\u500B\u9AD4 \"{0}\" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u5BA3\u544A\u3002
+- ImproperDeclarationNesting = \u53C3\u6578\u500B\u9AD4 \"{0}\" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u5BA3\u544A\u3002
+- ImproperGroupNesting = \u53C3\u6578\u500B\u9AD4 \"{0}\" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u6210\u5C0D\u62EC\u865F\u3002
+- INVALID_PE_IN_CONDITIONAL = \u53C3\u6578\u500B\u9AD4 \"{0}\" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6574\u500B\u689D\u4EF6\u6027\u6BB5\u843D\u6216\u50C5\u5305\u542B INCLUDE \u6216 IGNORE\u3002
+- MSG_ATTRIBUTE_NOT_DECLARED = \u5143\u7D20\u985E\u578B \"{0}\" \u5FC5\u9808\u5BA3\u544A\u5C6C\u6027 \"{1}\"\u3002
+- MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u5177\u6709\u503C \"{1}\" \u7684\u5C6C\u6027 \"{0}\" \u5FC5\u9808\u5177\u6709\u4F86\u81EA\u6E05\u55AE \"{2}\" \u7684\u503C\u3002
+- MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u5C6C\u6027 \"{0}\" \u7684\u503C \"{1}\" \u4E0D\u53EF\u900F\u904E\u6B63\u898F\u5316\u9032\u884C\u8B8A\u66F4 (\u6210\u70BA \"{2}\")\u3002
+- MSG_CONTENT_INCOMPLETE = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5167\u5BB9\u4E0D\u5B8C\u6574\uFF0C\u5B83\u5FC5\u9808\u914D\u5C0D \"{1}\"\u3002
+- MSG_CONTENT_INVALID = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5167\u5BB9\u5FC5\u9808\u914D\u5C0D \"{1}\"\u3002
+- MSG_CONTENT_INVALID_SPECIFIED = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5167\u5BB9\u5FC5\u9808\u914D\u5C0D \"{1}\"\u3002\u4E0D\u5141\u8A31\u985E\u578B \"{2}\" \u7684\u5B50\u9805\u3002
+- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u985E\u578B \"{0}\" \u7684\u5C6C\u6027 \"{1}\" \u5177\u6709\u9810\u8A2D\u503C\uFF0C\u4E14\u5FC5\u9808\u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\u6307\u5B9A\u3002
+- MSG_DUPLICATE_ATTDEF = \u5143\u7D20\u985E\u578B \"{0}\" \u5DF2\u7D93\u5BA3\u544A\u5C6C\u6027 \"{1}\"\u3002
+- MSG_ELEMENT_ALREADY_DECLARED = \u5143\u7D20\u985E\u578B \"{0}\" \u4E0D\u53EF\u5BA3\u544A\u8D85\u904E\u4E00\u6B21\u4EE5\u4E0A\u3002
+- MSG_ELEMENT_NOT_DECLARED = \u5FC5\u9808\u5BA3\u544A\u5143\u7D20\u985E\u578B \"{0}\"\u3002
++ DuplicateTypeInMixedContent = \u5143\u7D20\u5BA3\u544A "{0}" \u7684\u5167\u5BB9\u6A21\u578B\u4E2D\u5DF2\u7D93\u6307\u5B9A\u5143\u7D20\u985E\u578B "{1}"\u3002
++ ENTITIESInvalid = \u985E\u578B ENTITIES \u7684\u5C6C\u6027\u503C "{1}" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u672A\u5256\u6790\u5BE6\u9AD4\u7684\u540D\u7A31\u3002
++ ENTITYInvalid = \u985E\u578B ENTITY \u7684\u5C6C\u6027\u503C "{1}" \u5FC5\u9808\u662F\u4E00\u500B\u672A\u5256\u6790\u5BE6\u9AD4\u7684\u540D\u7A31\u3002
++ IDDefaultTypeInvalid = ID \u5C6C\u6027 "{0}" \u5FC5\u9808\u5177\u6709 "#IMPLIED" \u6216 "#REQUIRED" \u7684\u5BA3\u544A\u9810\u8A2D\u3002
++ IDInvalid = \u985E\u578B ID \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u540D\u7A31\u3002
++ IDInvalidWithNamespaces = \u555F\u7528\u547D\u540D\u7A7A\u9593\u6642\uFF0C\u985E\u578B ID \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F NCName\u3002
++ IDNotUnique = \u985E\u578B ID \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u6587\u4EF6\u5167\u7684\u552F\u4E00\u503C\u3002
++ IDREFInvalid = \u985E\u578B IDREF \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u540D\u7A31\u3002
++ IDREFInvalidWithNamespaces = \u555F\u7528\u547D\u540D\u7A7A\u9593\u6642\uFF0C\u985E\u578B IDREF \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F NCName\u3002
++ IDREFSInvalid = \u985E\u578B IDREFS \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u540D\u7A31\u3002
++ ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = \u7576\u5BE6\u9AD4\u53C3\u7167\u7576\u4F5C\u5B8C\u6574\u5BA3\u544A\u6642\uFF0C\u53C3\u6578\u5BE6\u9AD4 "{0}" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u5BA3\u544A\u3002
++ ImproperDeclarationNesting = \u53C3\u6578\u5BE6\u9AD4 "{0}" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u5BA3\u544A\u3002
++ ImproperGroupNesting = \u53C3\u6578\u5BE6\u9AD4 "{0}" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6B63\u78BA\u5DE2\u72C0\u7D50\u69CB\u7684\u6210\u5C0D\u62EC\u865F\u3002
++ INVALID_PE_IN_CONDITIONAL = \u53C3\u6578\u5BE6\u9AD4 "{0}" \u7684\u53D6\u4EE3\u6587\u5B57\u5FC5\u9808\u5305\u542B\u6574\u500B\u689D\u4EF6\u6027\u6BB5\u843D\u6216\u50C5\u5305\u542B INCLUDE \u6216 IGNORE\u3002
++ MSG_ATTRIBUTE_NOT_DECLARED = \u5143\u7D20\u985E\u578B "{0}" \u5FC5\u9808\u5BA3\u544A\u5C6C\u6027 "{1}"\u3002
++ MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = \u5177\u6709\u503C "{1}" \u7684\u5C6C\u6027 "{0}" \u5FC5\u9808\u5177\u6709\u4F86\u81EA\u6E05\u55AE "{2}" \u7684\u503C\u3002
++ MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u5C6C\u6027 "{0}" \u7684\u503C "{1}" \u4E0D\u53EF\u900F\u904E\u6B63\u898F\u5316\u9032\u884C\u8B8A\u66F4 (\u6210\u70BA "{2}")\u3002
++ MSG_CONTENT_INCOMPLETE = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5167\u5BB9\u4E0D\u5B8C\u6574\uFF0C\u5B83\u5FC5\u9808\u914D\u5C0D "{1}"\u3002
++ MSG_CONTENT_INVALID = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5167\u5BB9\u5FC5\u9808\u914D\u5C0D "{1}"\u3002
++ MSG_CONTENT_INVALID_SPECIFIED = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5167\u5BB9\u5FC5\u9808\u914D\u5C0D "{1}"\u3002\u4E0D\u5141\u8A31\u985E\u578B "{2}" \u7684\u5B50\u9805\u3002
++ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u985E\u578B "{0}" \u7684\u5C6C\u6027 "{1}" \u5177\u6709\u9810\u8A2D\u503C\uFF0C\u4E14\u5FC5\u9808\u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\u6307\u5B9A\u3002
++ MSG_DUPLICATE_ATTDEF = \u5143\u7D20\u985E\u578B "{0}" \u5DF2\u7D93\u5BA3\u544A\u5C6C\u6027 "{1}"\u3002
++ MSG_ELEMENT_ALREADY_DECLARED = \u5143\u7D20\u985E\u578B "{0}" \u4E0D\u53EF\u5BA3\u544A\u8D85\u904E\u4E00\u6B21\u4EE5\u4E0A\u3002
++ MSG_ELEMENT_NOT_DECLARED = \u5FC5\u9808\u5BA3\u544A\u5143\u7D20\u985E\u578B "{0}"\u3002
+ MSG_GRAMMAR_NOT_FOUND = \u6587\u4EF6\u7121\u6548: \u627E\u4E0D\u5230\u6587\u6CD5\u3002
+- MSG_ELEMENT_WITH_ID_REQUIRED = ID \u70BA \"{0}\" \u7684\u5143\u7D20\u5FC5\u9808\u51FA\u73FE\u5728\u6587\u4EF6\u4E2D\u3002
+- MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u7368\u7ACB\u6587\u4EF6\u4E2D\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u500B\u9AD4 \"{0}\"\u3002
+- MSG_FIXED_ATTVALUE_INVALID = \u5177\u6709\u503C \"{2}\" \u7684\u5C6C\u6027 \"{1}\" \u5FC5\u9808\u5177\u6709 \"{3}\" \u7684\u503C\u3002
+- MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u5143\u7D20\u985E\u578B \"{0}\" \u5DF2\u7D93\u5177\u6709\u985E\u578B ID \u7684\u5C6C\u6027 \"{1}\"\uFF0C\u4E0D\u5141\u8A31\u8A72\u985E\u578B ID \u7684\u7B2C\u4E8C\u500B\u5C6C\u6027 \"{2}\"\u3002
+- MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u5143\u7D20\u985E\u578B \"{0}\" \u5DF2\u7D93\u5177\u6709\u985E\u578B NOTATION \u7684\u5C6C\u6027 \"{1}\"\uFF0C\u4E0D\u5141\u8A31\u8A72\u985E\u578B NOTATION \u7684\u7B2C\u4E8C\u500B\u5C6C\u6027 \"{2}\"\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u82E5\u8981\u5728\u5C6C\u6027 \"{0}\" \u7684\u8868\u793A\u6CD5\u985E\u578B\u6E05\u55AE\u4E2D\u53C3\u7167\u8868\u793A\u6CD5 \"{1}\"\uFF0C\u5FC5\u9808\u4E88\u4EE5\u5BA3\u544A\u3002
+- MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \u82E5\u8981\u5728 \"{0}\" \u7684\u672A\u5256\u6790\u500B\u9AD4\u5BA3\u544A\u4E2D\u53C3\u7167\u8868\u793A\u6CD5 \"{1}\"\uFF0C\u5FC5\u9808\u4E88\u4EE5\u5BA3\u544A\u3002
+- MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u5256\u6790\u500B\u9AD4\u4E2D\u5BA3\u544A\u7684\u500B\u9AD4 \"{0}\"\u3002
+- MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u985E\u578B \"{0}\" \u9700\u8981\u5C6C\u6027 \"{1}\" \u4E14\u5FC5\u9808\u4E88\u4EE5\u6307\u5B9A\u3002
+- MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u5177\u6709\u5143\u7D20\u5167\u5BB9\u7684\u5916\u90E8\u5256\u6790\u500B\u9AD4\u4E2D\u5BA3\u544A\u7684\u5143\u7D20\u4E4B\u9593\uFF0C\u4E0D\u53EF\u6709\u7A7A\u683C\u3002
+- NMTOKENInvalid = \u985E\u578B NMTOKEN \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u540D\u7A31\u8A18\u865F\u3002
+- NMTOKENSInvalid = \u985E\u578B NMTOKENS \u7684\u5C6C\u6027\u503C \"{0}\" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u540D\u7A31\u8A18\u865F\u3002
+- NoNotationOnEmptyElement = \u5BA3\u544A EMPTY \u7684\u5143\u7D20\u985E\u578B \"{0}\" \u4E0D\u53EF\u5BA3\u544A\u985E\u578B NOTATION \u7684\u5C6C\u6027 \"{1}\"\u3002
+- RootElementTypeMustMatchDoctypedecl = \u6587\u4EF6\u6839\u5143\u7D20 \"{1}\" \u5FC5\u9808\u914D\u5C0D DOCTYPE \u6839 \"{0}\"\u3002
+- UndeclaredElementInContentSpec = \u5143\u7D20 \"{0}\" \u7684\u5167\u5BB9\u6A21\u578B\u53C3\u7167\u672A\u5BA3\u544A\u7684\u5143\u7D20 \"{1}\"\u3002
+- UniqueNotationName = \u8868\u793A\u6CD5 \"{0}\" \u7684\u5BA3\u544A\u4E26\u975E\u552F\u4E00\u3002\u6307\u5B9A\u7684 Name \u4E0D\u80FD\u5728\u4E00\u500B\u4EE5\u4E0A\u7684\u8868\u793A\u6CD5\u5BA3\u544A\u4E2D\u5BA3\u544A\u3002
++ MSG_ELEMENT_WITH_ID_REQUIRED = ID \u70BA "{0}" \u7684\u5143\u7D20\u5FC5\u9808\u51FA\u73FE\u5728\u6587\u4EF6\u4E2D\u3002
++ MSG_EXTERNAL_ENTITY_NOT_PERMITTED = \u7368\u7ACB\u6587\u4EF6\u4E2D\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u5BE6\u9AD4 "{0}"\u3002
++ MSG_FIXED_ATTVALUE_INVALID = \u5177\u6709\u503C "{2}" \u7684\u5C6C\u6027 "{1}" \u5FC5\u9808\u5177\u6709 "{3}" \u7684\u503C\u3002
++ MSG_MORE_THAN_ONE_ID_ATTRIBUTE = \u5143\u7D20\u985E\u578B "{0}" \u5DF2\u7D93\u5177\u6709\u985E\u578B ID \u7684\u5C6C\u6027 "{1}"\uFF0C\u4E0D\u5141\u8A31\u8A72\u985E\u578B ID \u7684\u7B2C\u4E8C\u500B\u5C6C\u6027 "{2}"\u3002
++ MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = \u5143\u7D20\u985E\u578B "{0}" \u5DF2\u7D93\u5177\u6709\u985E\u578B NOTATION \u7684\u5C6C\u6027 "{1}"\uFF0C\u4E0D\u5141\u8A31\u8A72\u985E\u578B NOTATION \u7684\u7B2C\u4E8C\u500B\u5C6C\u6027 "{2}"\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = \u82E5\u8981\u5728\u5C6C\u6027 "{0}" \u7684\u8868\u793A\u6CD5\u985E\u578B\u6E05\u55AE\u4E2D\u53C3\u7167\u8868\u793A\u6CD5 "{1}"\uFF0C\u5FC5\u9808\u4E88\u4EE5\u5BA3\u544A\u3002
++ MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = \u82E5\u8981\u5728 "{0}" \u7684\u672A\u5256\u6790\u5BE6\u9AD4\u5BA3\u544A\u4E2D\u53C3\u7167\u8868\u793A\u6CD5 "{1}"\uFF0C\u5FC5\u9808\u4E88\u4EE5\u5BA3\u544A\u3002
++ MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u5256\u6790\u5BE6\u9AD4\u4E2D\u5BA3\u544A\u7684\u5BE6\u9AD4 "{0}"\u3002
++ MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = \u5143\u7D20\u985E\u578B "{0}" \u9700\u8981\u5C6C\u6027 "{1}" \u4E14\u5FC5\u9808\u4E88\u4EE5\u6307\u5B9A\u3002
++ MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = \u5728\u7368\u7ACB\u6587\u4EF6\u4E2D\uFF0C\u5177\u6709\u5143\u7D20\u5167\u5BB9\u7684\u5916\u90E8\u5256\u6790\u5BE6\u9AD4\u4E2D\u5BA3\u544A\u7684\u5143\u7D20\u4E4B\u9593\uFF0C\u4E0D\u53EF\u6709\u7A7A\u683C\u3002
++ NMTOKENInvalid = \u985E\u578B NMTOKEN \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u540D\u7A31\u8A18\u865F\u3002
++ NMTOKENSInvalid = \u985E\u578B NMTOKENS \u7684\u5C6C\u6027\u503C "{0}" \u5FC5\u9808\u662F\u4E00\u6216\u591A\u500B\u540D\u7A31\u8A18\u865F\u3002
++ NoNotationOnEmptyElement = \u5BA3\u544A EMPTY \u7684\u5143\u7D20\u985E\u578B "{0}" \u4E0D\u53EF\u5BA3\u544A\u985E\u578B NOTATION \u7684\u5C6C\u6027 "{1}"\u3002
++ RootElementTypeMustMatchDoctypedecl = \u6587\u4EF6\u6839\u5143\u7D20 "{1}" \u5FC5\u9808\u914D\u5C0D DOCTYPE \u6839 "{0}"\u3002
++ UndeclaredElementInContentSpec = \u5143\u7D20 "{0}" \u7684\u5167\u5BB9\u6A21\u578B\u53C3\u7167\u672A\u5BA3\u544A\u7684\u5143\u7D20 "{1}"\u3002
++ UniqueNotationName = \u8868\u793A\u6CD5 "{0}" \u7684\u5BA3\u544A\u4E26\u975E\u552F\u4E00\u3002\u6307\u5B9A\u7684 Name \u4E0D\u80FD\u5728\u4E00\u500B\u4EE5\u4E0A\u7684\u8868\u793A\u6CD5\u5BA3\u544A\u4E2D\u5BA3\u544A\u3002
+ ENTITYFailedInitializeGrammar = ENTITYDatatype \u9A57\u8B49\u7A0B\u5F0F: \u5931\u6557\u3002\u9700\u8981\u4F7F\u7528\u6709\u6548\u7684\u6587\u6CD5\u53C3\u7167\u4F86\u547C\u53EB\u8D77\u59CB\u65B9\u6CD5\u3002 \t
+- ENTITYNotUnparsed = ENTITY \"{0}\" \u4E26\u975E\u672A\u7D93\u5256\u6790\u3002
+- ENTITYNotValid = ENTITY \"{0}\" \u7121\u6548\u3002
++ ENTITYNotUnparsed = ENTITY "{0}" \u4E26\u975E\u672A\u7D93\u5256\u6790\u3002
++ ENTITYNotValid = ENTITY "{0}" \u7121\u6548\u3002
+ EmptyList = \u985E\u578B ENTITIES\u3001IDREFS \u8207 NMTOKENS \u7684\u503C\u4E0D\u53EF\u70BA\u7A7A\u767D\u6E05\u55AE\u3002
+
+ # Entity related messages
+ # 3.1 Start-Tags, End-Tags, and Empty-Element Tags
+- ReferenceToExternalEntity = \u5C6C\u6027\u503C\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u500B\u9AD4 \"&{0};\"\u3002
+- AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
+- AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
++ ReferenceToExternalEntity = \u5C6C\u6027\u503C\u4E0D\u5141\u8A31\u53C3\u7167\u5916\u90E8\u5BE6\u9AD4 "&{0};"\u3002
++ AccessExternalDTD = \u5916\u90E8 DTD: \u7121\u6CD5\u8B80\u53D6\u5916\u90E8 DTD ''{0}''\uFF0C\u56E0\u70BA accessExternalDTD \u5C6C\u6027\u8A2D\u5B9A\u7684\u9650\u5236\uFF0C\u6240\u4EE5\u4E0D\u5141\u8A31 ''{1}'' \u5B58\u53D6\u3002
++ AccessExternalEntity = \u5916\u90E8\u5BE6\u9AD4: \u7121\u6CD5\u8B80\u53D6\u5916\u90E8\u6587\u4EF6 ''{0}''\uFF0C\u56E0\u70BA accessExternalDTD \u5C6C\u6027\u8A2D\u5B9A\u7684\u9650\u5236\uFF0C\u6240\u4EE5\u4E0D\u5141\u8A31 ''{1}'' \u5B58\u53D6\u3002
+
+ # 4.1 Character and Entity References
+- EntityNotDeclared = \u53C3\u7167\u4E86\u500B\u9AD4 \"{0}\"\uFF0C\u4F46\u662F\u672A\u5BA3\u544A\u3002
+- ReferenceToUnparsedEntity = \u4E0D\u5141\u8A31\u672A\u5256\u6790\u7684\u500B\u9AD4\u53C3\u7167 \"&{0};\"\u3002
+- RecursiveReference = \u905E\u8FF4\u500B\u9AD4\u53C3\u7167 \"{0}\"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
+- RecursiveGeneralReference = \u905E\u8FF4\u4E00\u822C\u500B\u9AD4\u53C3\u7167 \"&{0};\"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
+- RecursivePEReference = \u905E\u8FF4\u53C3\u6578\u500B\u9AD4\u53C3\u7167 \"%{0};\"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
++ EntityNotDeclared = \u53C3\u7167\u4E86\u5BE6\u9AD4 "{0}"\uFF0C\u4F46\u662F\u672A\u5BA3\u544A\u3002
++ ReferenceToUnparsedEntity = \u4E0D\u5141\u8A31\u672A\u5256\u6790\u7684\u5BE6\u9AD4\u53C3\u7167 "&{0};"\u3002
++ RecursiveReference = \u905E\u8FF4\u5BE6\u9AD4\u53C3\u7167 "{0}"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
++ RecursiveGeneralReference = \u905E\u8FF4\u4E00\u822C\u5BE6\u9AD4\u53C3\u7167 "&{0};"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
++ RecursivePEReference = \u905E\u8FF4\u53C3\u6578\u5BE6\u9AD4\u53C3\u7167 "%{0};"\u3002(\u53C3\u7167\u8DEF\u5F91: {1})\uFF0C
+ # 4.3.3 Character Encoding in Entities
+- EncodingNotSupported = \u4E0D\u652F\u63F4\u7DE8\u78BC \"{0}\"\u3002
+- EncodingRequired = \u672A\u4F7F\u7528 UTF-8 \u6216 UTF-16 \u7DE8\u78BC\u7684\u5256\u6790\u500B\u9AD4\uFF0C\u5FC5\u9808\u5305\u542B\u7DE8\u78BC\u5BA3\u544A\u3002
++ EncodingNotSupported = \u4E0D\u652F\u63F4\u7DE8\u78BC "{0}"\u3002
++ EncodingRequired = \u672A\u4F7F\u7528 UTF-8 \u6216 UTF-16 \u7DE8\u78BC\u7684\u5256\u6790\u5BE6\u9AD4\uFF0C\u5FC5\u9808\u5305\u542B\u7DE8\u78BC\u5BA3\u544A\u3002
+
+ # Namespaces support
+ # 4. Using Qualified Names
+ IllegalQName = \u5143\u7D20\u6216\u5C6C\u6027\u4E0D\u7B26\u5408 QName \u7522\u751F: QName::=(NCName':')?NCName\u3002
+- ElementXMLNSPrefix = \u5143\u7D20 \"{0}\" \u4E0D\u80FD\u4F7F\u7528 \"xmlns\" \u4F5C\u70BA\u524D\u7F6E\u78BC\u3002
+- ElementPrefixUnbound = \u5143\u7D20 \"{1}\" \u7684\u524D\u7F6E\u78BC \"{0}\" \u672A\u9023\u7D50\u3002
+- AttributePrefixUnbound = \u95DC\u806F\u5143\u7D20\u985E\u578B \"{0}\" \u4E4B\u5C6C\u6027 \"{1}\" \u7684\u524D\u7F6E\u78BC \"{2}\" \u672A\u9023\u7D50\u3002
+- EmptyPrefixedAttName = \u5C6C\u6027 \"{0}\" \u7684\u503C\u7121\u6548\u3002\u524D\u7F6E\u7684\u547D\u540D\u7A7A\u9593\u9023\u7D50\u4E0D\u53EF\u70BA\u7A7A\u767D\u3002
+- PrefixDeclared = \u672A\u5BA3\u544A\u547D\u540D\u7A7A\u9593\u524D\u7F6E\u78BC \"{0}\"\u3002
++ ElementXMLNSPrefix = \u5143\u7D20 "{0}" \u4E0D\u80FD\u4F7F\u7528 "xmlns" \u4F5C\u70BA\u524D\u7F6E\u78BC\u3002
++ ElementPrefixUnbound = \u5143\u7D20 "{1}" \u7684\u524D\u7F6E\u78BC "{0}" \u672A\u9023\u7D50\u3002
++ AttributePrefixUnbound = \u95DC\u806F\u5143\u7D20\u985E\u578B "{0}" \u4E4B\u5C6C\u6027 "{1}" \u7684\u524D\u7F6E\u78BC "{2}" \u672A\u9023\u7D50\u3002
++ EmptyPrefixedAttName = \u5C6C\u6027 "{0}" \u7684\u503C\u7121\u6548\u3002\u524D\u7F6E\u7684\u547D\u540D\u7A7A\u9593\u9023\u7D50\u4E0D\u53EF\u70BA\u7A7A\u767D\u3002
++ PrefixDeclared = \u672A\u5BA3\u544A\u547D\u540D\u7A7A\u9593\u524D\u7F6E\u78BC "{0}"\u3002
+ CantBindXMLNS = \u524D\u7F6E\u78BC "xmlns" \u7121\u6CD5\u660E\u78BA\u9023\u7D50\u4EFB\u4F55\u547D\u540D\u7A7A\u9593; "xmlns" \u7684\u547D\u540D\u7A7A\u9593\u4E5F\u7121\u6CD5\u660E\u78BA\u9023\u7D50\u4EFB\u4F55\u524D\u7F6E\u78BC\u3002
+ CantBindXML = \u524D\u7F6E\u78BC "xml" \u7121\u6CD5\u9023\u7D50\u4E00\u822C\u547D\u540D\u7A7A\u9593\u4E4B\u5916\u7684\u4EFB\u4F55\u547D\u540D\u7A7A\u9593; "xml" \u7684\u547D\u540D\u7A7A\u9593\u4E5F\u7121\u6CD5\u9023\u7D50 "xml" \u4E4B\u5916\u7684\u4EFB\u4F55\u547D\u540D\u7A7A\u9593\u3002
+- MSG_ATT_DEFAULT_INVALID = \u7531\u65BC\u6B64\u5C6C\u6027\u985E\u578B\u7684\u8A9E\u5F59\u9650\u5236\u689D\u4EF6\uFF0C\u5C6C\u6027 \"{0}\" \u7684 defaultValue \"{1}\" \u7121\u6548\u3002
++ MSG_ATT_DEFAULT_INVALID = \u7531\u65BC\u6B64\u5C6C\u6027\u985E\u578B\u7684\u8A9E\u5F59\u9650\u5236\u689D\u4EF6\uFF0C\u5C6C\u6027 "{0}" \u7684 defaultValue "{1}" \u7121\u6548\u3002
+
+ # REVISIT: These need messages
+ MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
+@@ -320,8 +318,10 @@
+ InvalidCharInLiteral=InvalidCharInLiteral
+
+
+-#Application can set the limit of number of entities that should be expanded by the parser.
+-EntityExpansionLimitExceeded=\u5256\u6790\u5668\u5728\u6B64\u6587\u4EF6\u4E2D\u906D\u9047 \"{0}\" \u500B\u4EE5\u4E0A\u7684\u500B\u9AD4\u64F4\u5145; \u6B64\u70BA\u61C9\u7528\u7A0B\u5F0F\u6240\u898F\u5B9A\u7684\u9650\u5236\u3002
++# Implementation limits
++ EntityExpansionLimitExceeded=JAXP00010001: \u5256\u6790\u5668\u5728\u6B64\u6587\u4EF6\u4E2D\u9047\u5230 "{0}" \u500B\u4EE5\u4E0A\u7684\u5BE6\u9AD4\u64F4\u5145; \u9019\u662F JDK \u6240\u898F\u5B9A\u7684\u9650\u5236\u3002
++ ElementAttributeLimit=JAXP00010002: \u5143\u7D20 "{0}" \u5177\u6709\u8D85\u904E "{1}" \u500B\u4EE5\u4E0A\u7684\u5C6C\u6027\uFF0C"{1}" \u662F JDK \u6240\u898F\u5B9A\u7684\u9650\u5236\u3002
++ MaxEntitySizeLimit=JAXP00010003: \u5BE6\u9AD4 "{0}" \u7684\u9577\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u6240\u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002
++ TotalEntitySizeLimit=JAXP00010004: \u5BE6\u9AD4\u7684\u7D2F\u7A4D\u5927\u5C0F "{0}" \u8D85\u904E "{2}" \u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002
++ MaxXMLNameLimit=JAXP00010005: \u540D\u7A31 "{0}" \u8D85\u904E "{2}" \u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002
+
+-# Application can set the limit of number of attributes of entity that should be expanded by the parser.
+-ElementAttributeLimit= \u5143\u7D20 \"{0}\" \u5177\u6709\u8D85\u904E \"{1}\" \u500B\u4EE5\u4E0A\u7684\u5C6C\u6027\uFF0C\"{1}\" \u70BA\u61C9\u7528\u7A0B\u5F0F\u6240\u898F\u5B9A\u7684\u9650\u5236\u3002
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java 2013-12-01 11:13:41.000000000 -0800
+@@ -21,13 +21,13 @@
+
+ package com.sun.org.apache.xerces.internal.impl.xs.models;
+
++import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;
+-import com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager ;
+ import com.sun.org.apache.xerces.internal.impl.dtd.models.CMNode;
+-import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException;
+ import com.sun.org.apache.xerces.internal.impl.xs.XSMessageFormatter;
+-import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
++import com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager;
++import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException;
+
+ /**
+ *
+@@ -68,7 +68,7 @@
+
+ // stores defaults for different security holes (maxOccurLimit in current context) if it has
+ // been set on the configuration.
+- private SecurityManager fSecurityManager = null;
++ private XMLSecurityManager fSecurityManager = null;
+
+ /** default constructor */
+ public CMNodeFactory() {
+@@ -77,10 +77,10 @@
+ public void reset(XMLComponentManager componentManager){
+ fErrorReporter = (XMLErrorReporter)componentManager.getProperty(ERROR_REPORTER);
+ try {
+- fSecurityManager = (SecurityManager)componentManager.getProperty(SECURITY_MANAGER);
++ fSecurityManager = (XMLSecurityManager)componentManager.getProperty(SECURITY_MANAGER);
+ //we are setting the limit of number of nodes to 3times the maxOccur value..
+ if(fSecurityManager != null){
+- maxNodeLimit = fSecurityManager.getMaxOccurNodeLimit() * MULTIPLICITY ;
++ maxNodeLimit = fSecurityManager.getLimit(XMLSecurityManager.Limit.MAX_OCCUR_NODE_LIMIT) * MULTIPLICITY ;
+ }
+ }
+ catch (XMLConfigurationException e) {
+@@ -109,7 +109,8 @@
+ }
+
+ public void nodeCountCheck(){
+- if( fSecurityManager != null && nodeCount++ > maxNodeLimit){
++ if( fSecurityManager != null && !fSecurityManager.isNoLimit(maxNodeLimit) &&
++ nodeCount++ > maxNodeLimit){
+ if(DEBUG){
+ System.out.println("nodeCount = " + nodeCount ) ;
+ System.out.println("nodeLimit = " + maxNodeLimit ) ;
+@@ -150,8 +151,9 @@
+
+ if (suffixLength == Constants.SECURITY_MANAGER_PROPERTY.length() &&
+ propertyId.endsWith(Constants.SECURITY_MANAGER_PROPERTY)) {
+- fSecurityManager = (SecurityManager)value;
+- maxNodeLimit = (fSecurityManager != null) ? fSecurityManager.getMaxOccurNodeLimit() * MULTIPLICITY : 0 ;
++ fSecurityManager = (XMLSecurityManager)value;
++ maxNodeLimit = (fSecurityManager != null) ?
++ fSecurityManager.getLimit(XMLSecurityManager.Limit.MAX_OCCUR_NODE_LIMIT) * MULTIPLICITY : 0 ;
+ return;
+ }
+ if (suffixLength == Constants.ERROR_REPORTER_PROPERTY.length() &&
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java 2013-12-01 11:13:41.000000000 -0800
+@@ -40,6 +40,7 @@
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+ import com.sun.org.apache.xerces.internal.util.XMLChar;
+ import com.sun.org.apache.xerces.internal.util.XMLSymbols;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.xni.QName;
+ import com.sun.org.apache.xerces.internal.xs.XSConstants;
+ import java.util.HashMap;
+@@ -1194,8 +1195,8 @@
+ if (!optimize) {
+ //Revisit :: IMO this is not right place to check
+ // maxOccurNodeLimit.
+- int maxOccurNodeLimit = fSchemaHandler.fSecureProcessing.getMaxOccurNodeLimit();
+- if (max > maxOccurNodeLimit) {
++ int maxOccurNodeLimit = fSchemaHandler.fSecureProcessing.getLimit(XMLSecurityManager.Limit.MAX_OCCUR_NODE_LIMIT);
++ if (max > maxOccurNodeLimit && !fSchemaHandler.fSecureProcessing.isNoLimit(maxOccurNodeLimit)) {
+ reportSchemaFatalError("maxOccurLimit", new Object[] {new Integer(maxOccurNodeLimit)}, element);
+
+ // reset max values in case processing continues on error
+--- jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java 2013-09-06 11:22:59.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java 2013-12-01 11:13:41.000000000 -0800
+@@ -70,7 +70,6 @@
+ import com.sun.org.apache.xerces.internal.util.DefaultErrorHandler;
+ import com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper;
+ import com.sun.org.apache.xerces.internal.util.SAXInputSource;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.StAXInputSource;
+ import com.sun.org.apache.xerces.internal.util.StAXLocationWrapper;
+ import com.sun.org.apache.xerces.internal.util.SymbolHash;
+@@ -78,6 +77,7 @@
+ import com.sun.org.apache.xerces.internal.util.XMLSymbols;
+ import com.sun.org.apache.xerces.internal.util.URI.MalformedURIException;
+ import com.sun.org.apache.xerces.internal.utils.SecuritySupport;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.QName;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+@@ -257,7 +257,7 @@
+ *
+ *
Protected to allow access by any traverser.
+ */
+- protected SecurityManager fSecureProcessing = null;
++ protected XMLSecurityManager fSecureProcessing = null;
+
+ private String fAccessExternalSchema;
+ private String fAccessExternalDTD;
+@@ -2251,12 +2251,12 @@
+ }
+ catch (SAXException se) {}
+
+- try {
+- parser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, fAccessExternalDTD);
+- } catch (SAXNotRecognizedException exc) {
+- System.err.println("Warning: " + parser.getClass().getName() + ": " +
+- exc.getMessage());
+- }
++ try {
++ parser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, fAccessExternalDTD);
++ } catch (SAXNotRecognizedException exc) {
++ System.err.println("Warning: " + parser.getClass().getName() + ": " +
++ exc.getMessage());
++ }
+ }
+ // If XML names and Namespace URIs are already internalized we
+ // can avoid running them through the SymbolTable.
+@@ -3509,7 +3509,7 @@
+
+ fSecureProcessing = null;
+ if( componentManager!=null ) {
+- fSecureProcessing = (SecurityManager) componentManager.getProperty(SECURE_PROCESSING, null);
++ fSecureProcessing = (XMLSecurityManager) componentManager.getProperty(SECURE_PROCESSING, null);
+ }
+
+ //set entity resolver
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -36,7 +36,7 @@
+ import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator;
+ import com.sun.org.apache.xerces.internal.jaxp.validation.XSGrammarPoolContainer;
+ import com.sun.org.apache.xerces.internal.parsers.DOMParser;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager.Property;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager.State;
+@@ -46,7 +46,6 @@
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLDocumentSource;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
+-import javax.xml.XMLConstants;
+ import org.w3c.dom.DOMImplementation;
+ import org.w3c.dom.Document;
+ import org.xml.sax.EntityResolver;
+@@ -110,7 +109,6 @@
+ /** Property identifier: access to external schema */
+ public static final String ACCESS_EXTERNAL_SCHEMA = XMLConstants.ACCESS_EXTERNAL_SCHEMA;
+
+-
+ private final DOMParser domParser;
+ private final Schema grammar;
+
+@@ -125,6 +123,7 @@
+ /** Initial EntityResolver */
+ private final EntityResolver fInitEntityResolver;
+
++ private XMLSecurityManager fSecurityManager;
+ private XMLSecurityPropertyManager fSecurityPropertyMgr;
+
+ DocumentBuilderImpl(DocumentBuilderFactoryImpl dbf, Hashtable dbfAttrs, Hashtable features)
+@@ -173,10 +172,10 @@
+ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
+ domParser.setProperty(XML_SECURITY_PROPERTY_MANAGER, fSecurityPropertyMgr);
+
+- // If the secure processing feature is on set a security manager.
+- if (secureProcessing) {
+- domParser.setProperty(SECURITY_MANAGER, new SecurityManager());
++ fSecurityManager = new XMLSecurityManager(secureProcessing);
++ domParser.setProperty(SECURITY_MANAGER, fSecurityManager);
+
++ if (secureProcessing) {
+ /**
+ * If secure processing is explicitly set on the factory, the
+ * access properties will be set unless the corresponding
+@@ -250,9 +249,9 @@
+ String feature = (String) entry.getKey();
+ boolean value = ((Boolean) entry.getValue()).booleanValue();
+ domParser.setFeature(feature, value);
+- }
+ }
+ }
++ }
+
+ /**
+ * Set any DocumentBuilderFactory attributes of our underlying DOMParser
+@@ -289,30 +288,33 @@
+ // spec when schema validation is enabled
+ domParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
+ }
+- }
+- } else if(JAXP_SCHEMA_SOURCE.equals(name)){
+- if( isValidating() ) {
+- String value=(String)dbfAttrs.get(JAXP_SCHEMA_LANGUAGE);
+- if(value !=null && W3C_XML_SCHEMA.equals(value)){
+- domParser.setProperty(name, val);
+- }else{
++ }
++ } else if(JAXP_SCHEMA_SOURCE.equals(name)){
++ if( isValidating() ) {
++ String value=(String)dbfAttrs.get(JAXP_SCHEMA_LANGUAGE);
++ if(value !=null && W3C_XML_SCHEMA.equals(value)){
++ domParser.setProperty(name, val);
++ }else{
+ throw new IllegalArgumentException(
+ DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN,
+ "jaxp-order-not-supported",
+ new Object[] {JAXP_SCHEMA_LANGUAGE, JAXP_SCHEMA_SOURCE}));
++ }
++ }
++ } else {
++ //check if the property is managed by security manager
++ if (fSecurityManager == null ||
++ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, val)) {
++ //check if the property is managed by security property manager
++ if (fSecurityPropertyMgr == null ||
++ !fSecurityPropertyMgr.setValue(name, XMLSecurityPropertyManager.State.APIPROPERTY, val)) {
++ //fall back to the existing property manager
++ domParser.setProperty(name, val);
+ }
+- }
+- } else {
+- int index = fSecurityPropertyMgr.getIndex(name);
+- if (index > -1) {
+- fSecurityPropertyMgr.setValue(index,
+- XMLSecurityPropertyManager.State.APIPROPERTY, (String)val);
+- } else {
+- // Let Xerces code handle the property
+- domParser.setProperty(name, val);
+ }
+- }
+- }
++
++ }
++ }
}
}
---- 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;
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -34,8 +34,8 @@
+ import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator;
+ import com.sun.org.apache.xerces.internal.jaxp.validation.XSGrammarPoolContainer;
+ import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.Status;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XMLDocumentHandler;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLComponent;
+@@ -112,6 +112,7 @@
+ /** Initial EntityResolver */
+ private final EntityResolver fInitEntityResolver;
-@@ -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 @@
++ private final XMLSecurityManager fSecurityManager;
+ private final XMLSecurityPropertyManager fSecurityPropertyMgr;
- 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 @@
+@@ -130,10 +131,10 @@
+ SAXParserImpl(SAXParserFactoryImpl spf, Hashtable features, boolean secureProcessing)
+ throws SAXException
+ {
++ fSecurityManager = new XMLSecurityManager(secureProcessing);
+ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
+-
+ // Instantiate a SAXParser directly and not through SAX so that we use the right ClassLoader
+- xmlReader = new JAXPSAXParser(this, fSecurityPropertyMgr);
++ xmlReader = new JAXPSAXParser(this, fSecurityPropertyMgr, fSecurityManager);
- 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;
+ // JAXP "namespaceAware" == SAX Namespaces feature
+ // Note: there is a compatibility problem here with default values:
+@@ -154,9 +155,9 @@
+
+ xmlReader.setProperty0(XML_SECURITY_PROPERTY_MANAGER, fSecurityPropertyMgr);
+
+- // If the secure processing feature is on set a security manager.
++ xmlReader.setProperty0(SECURITY_MANAGER, fSecurityManager);
++
+ if (secureProcessing) {
+- xmlReader.setProperty0(SECURITY_MANAGER, new SecurityManager());
+ /**
+ * By default, secure processing is set, no external access is allowed.
+ * However, we need to check if it is actively set on the factory since we
+@@ -164,6 +165,7 @@
+ * the default value
+ */
+ if (features != null) {
++
+ Object temp = features.get(XMLConstants.FEATURE_SECURE_PROCESSING);
+ if (temp != null) {
+ boolean value = ((Boolean) temp).booleanValue();
+@@ -172,7 +174,6 @@
+ XMLSecurityPropertyManager.State.FSP, Constants.EXTERNAL_ACCESS_DEFAULT_FSP);
+ fSecurityPropertyMgr.setValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_SCHEMA,
+ XMLSecurityPropertyManager.State.FSP, Constants.EXTERNAL_ACCESS_DEFAULT_FSP);
+-
+ }
+ }
}
- 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");
+@@ -398,22 +399,34 @@
+ private final HashMap fInitFeatures = new HashMap();
+ private final HashMap fInitProperties = new HashMap();
+ private final SAXParserImpl fSAXParser;
++ private XMLSecurityManager fSecurityManager;
+ private XMLSecurityPropertyManager fSecurityPropertyMgr;
+
+
+ public JAXPSAXParser() {
+- this(null, null);
++ this(null, null, null);
}
- 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 @@
+- JAXPSAXParser(SAXParserImpl saxParser, XMLSecurityPropertyManager spm) {
++ JAXPSAXParser(SAXParserImpl saxParser, XMLSecurityPropertyManager securityPropertyMgr,
++ XMLSecurityManager securityManager) {
+ super();
+ fSAXParser = saxParser;
+- fSecurityPropertyMgr = spm;
+-
++ fSecurityManager = securityManager;
++ fSecurityPropertyMgr = securityPropertyMgr;
+ /**
+ * This class may be used directly. So initialize the security manager if
+ * it is null.
+ */
++ if (fSecurityManager == null) {
++ fSecurityManager = new XMLSecurityManager(true);
++ try {
++ super.setProperty(SECURITY_MANAGER, fSecurityManager);
++ } catch (SAXException e) {
++ throw new UnsupportedOperationException(
++ SAXMessageFormatter.formatMessage(fConfiguration.getLocale(),
++ "property-not-recognized", new Object [] {SECURITY_MANAGER}), e);
++ }
++ }
+ if (fSecurityPropertyMgr == null) {
+ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
+ try {
+@@ -421,7 +434,7 @@
+ } catch (SAXException e) {
+ throw new UnsupportedOperationException(
+ SAXMessageFormatter.formatMessage(fConfiguration.getLocale(),
+- "property-not-recognized", new Object [] {SECURITY_MANAGER}), e);
++ "property-not-recognized", new Object [] {XML_SECURITY_PROPERTY_MANAGER}), e);
+ }
+ }
+ }
+@@ -439,7 +452,8 @@
+ }
+ if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
+ try {
+- setProperty(SECURITY_MANAGER, value ? new SecurityManager() : null);
++ fSecurityManager.setSecureProcessing(value);
++ setProperty(SECURITY_MANAGER, fSecurityManager);
+ }
+ catch (SAXNotRecognizedException exc) {
+ // If the property is not supported
+@@ -475,13 +489,7 @@
+ throw new NullPointerException();
+ }
+ if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
+- try {
+- return (super.getProperty(SECURITY_MANAGER) != null);
+- }
+- // If the property is not supported the value must be false.
+- catch (SAXException exc) {
+- return false;
+- }
++ return fSecurityManager.isSecureProcessing();
+ }
+ return super.getFeature(name);
+ }
+@@ -560,17 +568,21 @@
+ if (fSAXParser != null && fSAXParser.fSchemaValidator != null) {
+ setSchemaValidatorProperty(name, value);
+ }
+- /** Check to see if the property is managed by the property manager **/
+- int index = (fSecurityPropertyMgr != null) ? fSecurityPropertyMgr.getIndex(name) : -1;
+- if (index > -1) {
+- fSecurityPropertyMgr.setValue(index,
+- XMLSecurityPropertyManager.State.APIPROPERTY, (String)value);
+- } else {
+- if (!fInitProperties.containsKey(name)) {
+- fInitProperties.put(name, super.getProperty(name));
++
++ //check if the property is managed by security manager
++ if (fSecurityManager == null ||
++ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) {
++ //check if the property is managed by security property manager
++ if (fSecurityPropertyMgr == null ||
++ !fSecurityPropertyMgr.setValue(name, XMLSecurityPropertyManager.State.APIPROPERTY, value)) {
++ //fall back to the existing property manager
++ if (!fInitProperties.containsKey(name)) {
++ fInitProperties.put(name, super.getProperty(name));
++ }
++ super.setProperty(name, value);
+ }
+- super.setProperty(name, value);
+ }
++
+ }
+
+ public synchronized Object getProperty(String name)
+@@ -583,9 +595,18 @@
+ // JAXP 1.2 support
+ return fSAXParser.schemaLanguage;
+ }
+- int index = (fSecurityPropertyMgr != null) ? fSecurityPropertyMgr.getIndex(name) : -1;
+- if (index > -1) {
+- return fSecurityPropertyMgr.getValueByIndex(index);
++
++ /** Check to see if the property is managed by the security manager **/
++ String propertyValue = (fSecurityManager != null) ?
++ fSecurityManager.getLimitAsString(name) : null;
++ if (propertyValue != null) {
++ return propertyValue;
++ } else {
++ propertyValue = (fSecurityPropertyMgr != null) ?
++ fSecurityPropertyMgr.getValue(name) : null;
++ if (propertyValue != null) {
++ return propertyValue;
++ }
+ }
+
+ return super.getProperty(name);
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java 2013-12-01 11:13:41.000000000 -0800
+@@ -26,6 +26,7 @@
+ package com.sun.org.apache.xerces.internal.jaxp.validation;
+
+ import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import java.io.IOException;
+
+ import javax.xml.transform.Result;
+@@ -73,6 +74,19 @@
+ SAXTransformerFactory tf = fComponentManager.getFeature(Constants.ORACLE_FEATURE_SERVICE_MECHANISM) ?
+ (SAXTransformerFactory)SAXTransformerFactory.newInstance()
+ : (SAXTransformerFactory) TransformerFactory.newInstance(DEFAULT_TRANSFORMER_IMPL, StAXValidatorHelper.class.getClassLoader());
++ XMLSecurityManager securityManager = (XMLSecurityManager)fComponentManager.getProperty(Constants.SECURITY_MANAGER);
++ if (securityManager != null) {
++ for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) {
++ if (securityManager.isSet(limit.ordinal())){
++ tf.setAttribute(limit.apiProperty(),
++ securityManager.getLimitValueAsString(limit));
++ }
++ }
++ if (securityManager.printEntityCountInfo()) {
++ tf.setAttribute(Constants.JDK_ENTITY_COUNT_INFO, "yes");
++ }
++ }
++
+ identityTransformer1 = tf.newTransformer();
+ identityTransformer2 = tf.newTransformerHandler();
+ } catch (TransformerConfigurationException e) {
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java 2013-12-01 11:13:41.000000000 -0800
+@@ -20,28 +20,27 @@
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;
+-import java.lang.ref.SoftReference;
+-import java.io.IOException;
+-
+-import javax.xml.transform.Result;
+-import javax.xml.transform.Source;
+-import javax.xml.transform.sax.SAXTransformerFactory;
+-import javax.xml.transform.sax.TransformerHandler;
+-import javax.xml.transform.stream.StreamSource;
+-import javax.xml.transform.stream.StreamResult;
+-import javax.xml.transform.TransformerConfigurationException;
+-import javax.xml.transform.TransformerFactory;
+-import javax.xml.transform.TransformerFactoryConfigurationError;
+-import javax.xml.XMLConstants;
+-
+ import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;
+ import com.sun.org.apache.xerces.internal.impl.msg.XMLMessageFormatter;
+ import com.sun.org.apache.xerces.internal.parsers.XML11Configuration;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParseException;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
++import java.io.IOException;
++import java.lang.ref.SoftReference;
++import javax.xml.XMLConstants;
++import javax.xml.transform.Result;
++import javax.xml.transform.Source;
++import javax.xml.transform.TransformerConfigurationException;
++import javax.xml.transform.TransformerFactory;
++import javax.xml.transform.TransformerFactoryConfigurationError;
++import javax.xml.transform.sax.SAXTransformerFactory;
++import javax.xml.transform.sax.TransformerHandler;
++import javax.xml.transform.stream.StreamResult;
++import javax.xml.transform.stream.StreamSource;
+ import org.xml.sax.SAXException;
/**
- *
Used to format JAXP Validation API error messages using a specified locale.
- *
- * @author Michael Glavassevich, IBM
-+ * @version $Id: JAXPValidationMessageFormatter.java,v 1.5 2010-11-01 04:40:08 joehw Exp $
- */
- final class JAXPValidationMessageFormatter {
+@@ -86,6 +85,11 @@
+ Constants.XERCES_PROPERTY_PREFIX + Constants.VALIDATION_MANAGER_PROPERTY;
-@@ -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);
+ private static final String DEFAULT_TRANSFORMER_IMPL = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl";
++
++ /** Property id: security manager. */
++ private static final String SECURITY_MANAGER =
++ Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY;
++
+ //
+ // Data
+ //
+@@ -165,6 +169,9 @@
+
+ private XMLParserConfiguration initialize() {
+ XML11Configuration config = new XML11Configuration();
++ if (fComponentManager.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING)) {
++ config.setProperty(SECURITY_MANAGER, new XMLSecurityManager());
++ }
+ config.setProperty(ENTITY_RESOLVER, fComponentManager.getProperty(ENTITY_RESOLVER));
+ config.setProperty(ERROR_HANDLER, fComponentManager.getProperty(ERROR_HANDLER));
+ XMLErrorReporter errorReporter = (XMLErrorReporter) fComponentManager.getProperty(ERROR_REPORTER);
+@@ -182,6 +189,8 @@
+ config.setDTDContentModelHandler(null);
+ config.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER,
+ fComponentManager.getProperty(Constants.XML_SECURITY_PROPERTY_MANAGER));
++ config.setProperty(Constants.SECURITY_MANAGER,
++ fComponentManager.getProperty(Constants.SECURITY_MANAGER));
+ fConfiguration = new SoftReference(config);
+ return config;
+ }
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java 2013-12-01 11:13:41.000000000 -0800
+@@ -49,10 +49,10 @@
+ import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.URI;
+ import com.sun.org.apache.xerces.internal.util.XMLAttributesImpl;
+ import com.sun.org.apache.xerces.internal.util.XMLSymbols;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
+@@ -679,10 +679,12 @@
+ SAXParserFactory.newInstance() : new SAXParserFactoryImpl();
+ spf.setNamespaceAware(true);
+ try {
++ spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,
++ fComponentManager.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING));
+ reader = spf.newSAXParser().getXMLReader();
+ // If this is a Xerces SAX parser, set the security manager if there is one
+ if (reader instanceof com.sun.org.apache.xerces.internal.parsers.SAXParser) {
+- SecurityManager securityManager = (SecurityManager) fComponentManager.getProperty(SECURITY_MANAGER);
++ XMLSecurityManager securityManager = (XMLSecurityManager) fComponentManager.getProperty(SECURITY_MANAGER);
+ if (securityManager != null) {
+ try {
+ reader.setProperty(SECURITY_MANAGER, securityManager);
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java 2013-12-01 11:13:41.000000000 -0800
+@@ -41,10 +41,10 @@
+ import com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper;
+ import com.sun.org.apache.xerces.internal.util.SAXInputSource;
+ import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.StAXInputSource;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.XMLGrammarPoolImpl;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.grammars.Grammar;
+@@ -79,7 +79,7 @@
+ private static final String XMLGRAMMAR_POOL =
+ Constants.XERCES_PROPERTY_PREFIX + Constants.XMLGRAMMAR_POOL_PROPERTY;
+
+- /** Property identifier: SecurityManager. */
++ /** Property identifier: XMLSecurityManager. */
+ private static final String SECURITY_MANAGER =
+ Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY;
+
+@@ -87,7 +87,6 @@
+ private static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+
+-
+ //
+ // Data
+ //
+@@ -108,7 +107,7 @@
+ private ErrorHandlerWrapper fErrorHandlerWrapper;
+
+ /** The SecurityManager. */
+- private SecurityManager fSecurityManager;
++ private XMLSecurityManager fSecurityManager;
+
+ /** The Security property manager. */
+ private XMLSecurityPropertyManager fSecurityPropertyMgr;
+@@ -122,8 +121,6 @@
+ * Note the default value (false) is the safe option..
+ */
+ private final boolean fUseServicesMechanism;
+-
+-
+ public XMLSchemaFactory() {
+ this(true);
+ }
+@@ -141,7 +138,7 @@
+ fXMLSchemaLoader.setErrorHandler(fErrorHandlerWrapper);
+
+ // Enable secure processing feature by default
+- fSecurityManager = new SecurityManager();
++ fSecurityManager = new XMLSecurityManager(true);
+ fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager);
+
+ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
+@@ -301,7 +298,7 @@
+ "FeatureNameNull", null));
}
- else {
- resourceBundle =
-- PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages");
-+ SecuritySupport.getResourceBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages");
+ if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
+- return (fSecurityManager != null);
++ return (fSecurityManager !=null && fSecurityManager.isSecureProcessing());
}
+ try {
+ return fXMLSchemaLoader.getFeature(name);
+@@ -365,17 +362,15 @@
+ SAXMessageFormatter.formatMessage(null,
+ "jaxp-secureprocessing-feature", null));
+ }
+- if (value) {
+- fSecurityManager = new SecurityManager();
- // 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 @@
++ fSecurityManager.setSecureProcessing(value);
++ if (value) {
+ if (Constants.IS_JDK8_OR_ABOVE) {
+ fSecurityPropertyMgr.setValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD,
+ XMLSecurityPropertyManager.State.FSP, Constants.EXTERNAL_ACCESS_DEFAULT_FSP);
+ fSecurityPropertyMgr.setValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_SCHEMA,
+ XMLSecurityPropertyManager.State.FSP, Constants.EXTERNAL_ACCESS_DEFAULT_FSP);
+ }
+- } else {
+- fSecurityManager = null;
+ }
- package com.sun.org.apache.xerces.internal.util;
+ fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager);
+@@ -410,9 +405,17 @@
+ "ProperyNameNull", null));
+ }
+ if (name.equals(SECURITY_MANAGER)) {
+- fSecurityManager = (SecurityManager) object;
++ fSecurityManager = XMLSecurityManager.convert(object, fSecurityManager);
+ fXMLSchemaLoader.setProperty(SECURITY_MANAGER, fSecurityManager);
+ return;
++ } else if (name.equals(Constants.XML_SECURITY_PROPERTY_MANAGER)) {
++ if (object == null) {
++ fSecurityPropertyMgr = new XMLSecurityPropertyManager();
++ } else {
++ fSecurityPropertyMgr = (XMLSecurityPropertyManager)object;
++ }
++ fXMLSchemaLoader.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER, fSecurityPropertyMgr);
++ return;
+ }
+ else if (name.equals(XMLGRAMMAR_POOL)) {
+ throw new SAXNotSupportedException(
+@@ -420,12 +423,15 @@
+ "property-not-supported", new Object [] {name}));
+ }
+ try {
+- int index = fSecurityPropertyMgr.getIndex(name);
+- if (index > -1) {
+- fSecurityPropertyMgr.setValue(index,
+- XMLSecurityPropertyManager.State.APIPROPERTY, (String)object);
+- } else {
+- fXMLSchemaLoader.setProperty(name, object);
++ //check if the property is managed by security manager
++ if (fSecurityManager == null ||
++ !fSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, object)) {
++ //check if the property is managed by security property manager
++ if (fSecurityPropertyMgr == null ||
++ !fSecurityPropertyMgr.setValue(name, XMLSecurityPropertyManager.State.APIPROPERTY, object)) {
++ //fall back to the existing property manager
++ fXMLSchemaLoader.setProperty(name, object);
++ }
+ }
+ }
+ catch (XMLConfigurationException e) {
+--- jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -39,9 +39,9 @@
+ import com.sun.org.apache.xerces.internal.util.NamespaceSupport;
+ import com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings;
+ import com.sun.org.apache.xerces.internal.util.PropertyState;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+@@ -181,7 +181,7 @@
+ private final HashMap fInitProperties = new HashMap();
-+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;
+ /** Stores the initial security manager. */
+- private final SecurityManager fInitSecurityManager;
++ private XMLSecurityManager fInitSecurityManager;
+
+ /** Stores the initial security property manager. */
+ private final XMLSecurityPropertyManager fSecurityPropertyMgr;
+@@ -221,12 +221,6 @@
+ fComponents.put(ENTITY_RESOLVER, null);
+ fComponents.put(ERROR_HANDLER, null);
+
+- if (System.getSecurityManager() != null) {
+- _isSecureMode = true;
+- setProperty(SECURITY_MANAGER, new SecurityManager());
+- } else {
+- fComponents.put(SECURITY_MANAGER, null);
+- }
+ fComponents.put(SYMBOL_TABLE, new SymbolTable());
+
+ // setup grammar pool
+@@ -241,15 +235,21 @@
+ addRecognizedParamsAndSetDefaults(fErrorReporter, grammarContainer);
+ addRecognizedParamsAndSetDefaults(fSchemaValidator, grammarContainer);
+
+- // if the secure processing feature is set to true, add a security manager to the configuration
+- Boolean secureProcessing = grammarContainer.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING);
+- if (Boolean.TRUE.equals(secureProcessing)) {
+- fInitSecurityManager = new SecurityManager();
++ boolean secureProcessing = grammarContainer.getFeature(XMLConstants.FEATURE_SECURE_PROCESSING);
++ if (System.getSecurityManager() != null) {
++ _isSecureMode = true;
++ secureProcessing = true;
+ }
+- else {
+- fInitSecurityManager = null;
++
++ fInitSecurityManager = (XMLSecurityManager)
++ grammarContainer.getProperty(SECURITY_MANAGER);
++ if (fInitSecurityManager != null ) {
++ fInitSecurityManager.setSecureProcessing(secureProcessing);
++ } else {
++ fInitSecurityManager = new XMLSecurityManager(secureProcessing);
+ }
+- fComponents.put(SECURITY_MANAGER, fInitSecurityManager);
++
++ setProperty(SECURITY_MANAGER, fInitSecurityManager);
+
+ //pass on properties set on SchemaFactory
+ fSecurityPropertyMgr = (XMLSecurityPropertyManager)
+@@ -281,7 +281,7 @@
+ return FeatureState.is(fUseGrammarPoolOnly);
+ }
+ else if (XMLConstants.FEATURE_SECURE_PROCESSING.equals(featureId)) {
+- return FeatureState.is(getProperty(SECURITY_MANAGER) != null);
++ return FeatureState.is(fInitSecurityManager.isSecureProcessing());
+ }
+ else if (SCHEMA_ELEMENT_DEFAULT.equals(featureId)) {
+ return FeatureState.is(true); //pre-condition: VALIDATION and SCHEMA_VALIDATION are always true
+@@ -311,7 +311,8 @@
+ if (_isSecureMode && !value) {
+ throw new XMLConfigurationException(Status.NOT_ALLOWED, XMLConstants.FEATURE_SECURE_PROCESSING);
+ }
+- setProperty(SECURITY_MANAGER, value ? new SecurityManager() : null);
++ fInitSecurityManager.setSecureProcessing(value);
++ setProperty(SECURITY_MANAGER, fInitSecurityManager);
+
+ if (value && Constants.IS_JDK8_OR_ABOVE) {
+ fSecurityPropertyMgr.setValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD,
+@@ -390,10 +391,20 @@
+ fComponents.put(propertyId, value);
+ return;
+ }
+- if (!fInitProperties.containsKey(propertyId)) {
+- fInitProperties.put(propertyId, super.getProperty(propertyId));
++
++ //check if the property is managed by security manager
++ if (fInitSecurityManager == null ||
++ !fInitSecurityManager.setLimit(propertyId, XMLSecurityManager.State.APIPROPERTY, value)) {
++ //check if the property is managed by security property manager
++ if (fSecurityPropertyMgr == null ||
++ !fSecurityPropertyMgr.setValue(propertyId, XMLSecurityPropertyManager.State.APIPROPERTY, value)) {
++ //fall back to the existing property manager
++ if (!fInitProperties.containsKey(propertyId)) {
++ fInitProperties.put(propertyId, super.getProperty(propertyId));
++ }
++ super.setProperty(propertyId, value);
++ }
+ }
+- super.setProperty(propertyId, value);
+ }
+
+ /**
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java 2013-12-01 11:13:41.000000000 -0800
+@@ -20,18 +20,15 @@
+
+ package com.sun.org.apache.xerces.internal.parsers;
+
+-import java.io.IOException;
+-import java.util.Locale;
+-
+ import com.sun.org.apache.xerces.internal.impl.Constants;
+-import com.sun.org.apache.xerces.internal.util.Status;
+-import com.sun.org.apache.xerces.internal.xs.PSVIProvider;
+-import com.sun.org.apache.xerces.internal.util.EntityResolverWrapper;
+ import com.sun.org.apache.xerces.internal.util.EntityResolver2Wrapper;
++import com.sun.org.apache.xerces.internal.util.EntityResolverWrapper;
+ import com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper;
+ import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
++import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolHash;
+ import com.sun.org.apache.xerces.internal.util.XMLSymbols;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
+ import com.sun.org.apache.xerces.internal.xni.QName;
+@@ -48,15 +45,17 @@
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
+ import com.sun.org.apache.xerces.internal.xs.AttributePSVI;
+ import com.sun.org.apache.xerces.internal.xs.ElementPSVI;
++import com.sun.org.apache.xerces.internal.xs.PSVIProvider;
++import java.io.IOException;
++import java.util.Locale;
++import javax.xml.XMLConstants;
+ import org.xml.sax.AttributeList;
+-import org.xml.sax.Attributes;
+ import org.xml.sax.ContentHandler;
+ import org.xml.sax.DTDHandler;
+ import org.xml.sax.DocumentHandler;
+ import org.xml.sax.EntityResolver;
+ import org.xml.sax.ErrorHandler;
+ import org.xml.sax.InputSource;
+-import org.xml.sax.Locator;
+ import org.xml.sax.Parser;
+ import org.xml.sax.SAXException;
+ import org.xml.sax.SAXNotRecognizedException;
+@@ -131,6 +130,10 @@
+ protected static final String DOM_NODE =
+ Constants.SAX_PROPERTY_PREFIX + Constants.DOM_NODE_PROPERTY;
+
++ /** Property id: security manager. */
++ private static final String SECURITY_MANAGER =
++ Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY;
++
+ /** Recognized properties. */
+ private static final String[] RECOGNIZED_PROPERTIES = {
+ LEXICAL_HANDLER,
+@@ -1645,19 +1648,13 @@
+ // Drop through and perform default processing
+ //
+ }
+-
+- //
+- // Xerces Features
+- //
+-
+- /*
+- else if (featureId.startsWith(XERCES_FEATURES_PREFIX)) {
+- String feature = featureId.substring(XERCES_FEATURES_PREFIX.length());
+- //
+- // Drop through and perform default processing
+- //
++ else if (featureId.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
++ if (state) {
++ if (fConfiguration.getProperty(SECURITY_MANAGER )==null) {
++ fConfiguration.setProperty(SECURITY_MANAGER, new XMLSecurityManager());
++ }
++ }
+ }
+- */
+
+ //
+ // Default handling
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java 2013-12-01 11:13:41.000000000 -0800
+@@ -29,6 +29,7 @@
+ import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
+@@ -531,7 +532,54 @@
+ */
+ public void setProperty(String propertyId, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException {
++ /**
++ * It's possible for users to set a security manager through the interface.
++ * If it's the old SecurityManager, convert it to the new XMLSecurityManager
++ */
++ if (propertyId.equals(Constants.SECURITY_MANAGER)) {
++ securityManager = XMLSecurityManager.convert(value, securityManager);
++ setProperty0(Constants.SECURITY_MANAGER, securityManager);
++ return;
++ }
++ if (propertyId.equals(Constants.XML_SECURITY_PROPERTY_MANAGER)) {
++ if (value == null) {
++ securityPropertyManager = new XMLSecurityPropertyManager();
++ } else {
++ securityPropertyManager = (XMLSecurityPropertyManager)value;
++ }
++ setProperty0(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
++ return;
++ }
++
++ if (securityManager == null) {
++ securityManager = new XMLSecurityManager(true);
++ setProperty0(Constants.SECURITY_MANAGER, securityManager);
++ }
++
++ if (securityPropertyManager == null) {
++ securityPropertyManager = new XMLSecurityPropertyManager();
++ setProperty0(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
++ }
++ int index = securityPropertyManager.getIndex(propertyId);
++
++ if (index > -1) {
++ /**
++ * this is a direct call to this parser, not a subclass since
++ * internally the support of this property is done through
++ * XMLSecurityPropertyManager
++ */
++ securityPropertyManager.setValue(index, XMLSecurityPropertyManager.State.APIPROPERTY, (String)value);
++ } else {
++ //check if the property is managed by security manager
++ if (!securityManager.setLimit(propertyId, XMLSecurityManager.State.APIPROPERTY, value)) {
++ //fall back to the default configuration to handle the property
++ setProperty0(propertyId, value);
++ }
++ }
++ }
+
++ public void setProperty0(String propertyId, Object value)
++ throws SAXNotRecognizedException, SAXNotSupportedException {
+ try {
+ fConfiguration.setProperty(propertyId, value);
+ }
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java 2013-12-01 11:13:41.000000000 -0800
+@@ -38,7 +38,6 @@
+ import com.sun.org.apache.xerces.internal.util.PropertyState;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+-import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XMLLocator;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
+@@ -189,6 +188,9 @@
+ protected static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
++
+ // debugging
+
+ /** Set to true and recompile to print exception stack trace. */
+@@ -334,6 +336,7 @@
+ JAXP_SCHEMA_SOURCE,
+ JAXP_SCHEMA_LANGUAGE,
+ LOCALE,
++ SECURITY_MANAGER,
+ XML_SECURITY_PROPERTY_MANAGER
+ };
+ addRecognizedProperties(recognizedProperties);
+@@ -411,8 +414,6 @@
+ // do nothing
+ // REVISIT: What is the right thing to do? -Ac
+ }
+-
+- setProperty(XML_SECURITY_PROPERTY_MANAGER, new XMLSecurityPropertyManager());
+ } // (SymbolTable,XMLGrammarPool)
+
+ //
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java 2013-12-01 11:13:41.000000000 -0800
+@@ -36,7 +36,6 @@
+ import com.sun.org.apache.xerces.internal.util.PropertyState;
+ import com.sun.org.apache.xerces.internal.util.Status;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+-import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XMLLocator;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
+@@ -162,6 +161,9 @@
+ protected static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
++
+ // debugging
+
+ /** Set to true and recompile to print exception stack trace. */
+@@ -316,6 +318,7 @@
+ DATATYPE_VALIDATOR_FACTORY,
+ VALIDATION_MANAGER,
+ LOCALE,
++ SECURITY_MANAGER,
+ XML_SECURITY_PROPERTY_MANAGER
+ };
+ addRecognizedProperties(recognizedProperties);
+@@ -372,8 +375,6 @@
+ // do nothing
+ // REVISIT: What is the right thing to do? -Ac
+ }
+-
+- setProperty(XML_SECURITY_PROPERTY_MANAGER, new XMLSecurityPropertyManager());
+ } // (SymbolTable,XMLGrammarPool)
+
+ //
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java 2013-12-01 11:13:41.000000000 -0800
+@@ -22,6 +22,7 @@
+
+ import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
+@@ -76,7 +77,7 @@
+ XMLGRAMMAR_POOL,
+ };
+
+- XMLSecurityPropertyManager securityPropertyManager;
++
+ //
+ // Constructors
+ //
+@@ -130,11 +131,36 @@
+ */
+ public void setProperty(String name, Object value)
+ throws SAXNotRecognizedException, SAXNotSupportedException {
++ /**
++ * It's possible for users to set a security manager through the interface.
++ * If it's the old SecurityManager, convert it to the new XMLSecurityManager
++ */
++ if (name.equals(Constants.SECURITY_MANAGER)) {
++ securityManager = XMLSecurityManager.convert(value, securityManager);
++ super.setProperty(Constants.SECURITY_MANAGER, securityManager);
++ return;
++ }
++ if (name.equals(Constants.XML_SECURITY_PROPERTY_MANAGER)) {
++ if (value == null) {
++ securityPropertyManager = new XMLSecurityPropertyManager();
++ } else {
++ securityPropertyManager = (XMLSecurityPropertyManager)value;
++ }
++ super.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
++ return;
++ }
++
++ if (securityManager == null) {
++ securityManager = new XMLSecurityManager(true);
++ super.setProperty(Constants.SECURITY_MANAGER, securityManager);
++ }
++
+ if (securityPropertyManager == null) {
+ securityPropertyManager = new XMLSecurityPropertyManager();
++ super.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
+ }
+- int index = securityPropertyManager.getIndex(name);
+
++ int index = securityPropertyManager.getIndex(name);
+ if (index > -1) {
+ /**
+ * this is a direct call to this parser, not a subclass since
+@@ -142,9 +168,12 @@
+ * XMLSecurityPropertyManager
+ */
+ securityPropertyManager.setValue(index, XMLSecurityPropertyManager.State.APIPROPERTY, (String)value);
+- super.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
+ } else {
+- super.setProperty(name, value);
++ //check if the property is managed by security manager
++ if (!securityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) {
++ //fall back to the default configuration to handle the property
++ super.setProperty(name, value);
++ }
+ }
+ }
+ } // class SAXParser
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java 2013-12-01 11:13:41.000000000 -0800
+@@ -23,8 +23,8 @@
+ import com.sun.org.apache.xerces.internal.impl.Constants;
+ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
/**
- *
Used to format JAXP 1.3 Datatype API error messages using a specified locale.
+ * This configuration allows Xerces to behave in a security-conscious manner; that is,
+@@ -44,6 +44,7 @@
*
- * @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 Neil Graham, IBM
*
- * @author Michael Glavassevich, IBM
- *
-+ * @version $Id: SAXMessageFormatter.java,v 1.6 2010-11-01 04:40:14 joehw Exp $
++ * @version $Id: SecurityConfiguration.java,v 1.6 2010-11-01 04:40:09 joehw Exp $
*/
- public class SAXMessageFormatter {
+ public class SecurityConfiguration extends XIncludeAwareParserConfiguration
+ {
+@@ -107,7 +108,7 @@
+ super(symbolTable, grammarPool, parentSettings);
-@@ -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");
+ // create the SecurityManager property:
+- setProperty(SECURITY_MANAGER_PROPERTY, new SecurityManager());
++ setProperty(SECURITY_MANAGER_PROPERTY, new XMLSecurityManager(true));
+ } // (SymbolTable,XMLGrammarPool)
+
+ } // class SecurityConfiguration
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java 2013-12-01 11:13:41.000000000 -0800
+@@ -52,6 +52,7 @@
+ import com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings;
+ import com.sun.org.apache.xerces.internal.util.PropertyState;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XMLDTDContentModelHandler;
+ import com.sun.org.apache.xerces.internal.xni.XMLDTDHandler;
+@@ -279,6 +280,8 @@
+ private static final String XML_SECURITY_PROPERTY_MANAGER =
+ Constants.XML_SECURITY_PROPERTY_MANAGER;
+
++ /** Property identifier: Security manager. */
++ private static final String SECURITY_MANAGER = Constants.SECURITY_MANAGER;
+
+ // debugging
+
+@@ -289,33 +292,33 @@
+ // Data
+ //
+
+- protected SymbolTable fSymbolTable;
++ protected SymbolTable fSymbolTable;
+ protected XMLInputSource fInputSource;
+ protected ValidationManager fValidationManager;
+- protected XMLVersionDetector fVersionDetector;
++ protected XMLVersionDetector fVersionDetector;
+ protected XMLLocator fLocator;
+- protected Locale fLocale;
++ protected Locale fLocale;
+
+- /** XML 1.0 Components. */
+- protected ArrayList fComponents;
++ /** XML 1.0 Components. */
++ protected ArrayList fComponents;
+
+- /** XML 1.1. Components. */
+- protected ArrayList fXML11Components = null;
++ /** XML 1.1. Components. */
++ protected ArrayList fXML11Components = null;
+
+- /** Common components: XMLEntityManager, XMLErrorReporter, XMLSchemaValidator */
+- protected ArrayList fCommonComponents = null;
++ /** Common components: XMLEntityManager, XMLErrorReporter, XMLSchemaValidator */
++ protected ArrayList fCommonComponents = null;
+
+- /** The document handler. */
+- protected XMLDocumentHandler fDocumentHandler;
++ /** The document handler. */
++ protected XMLDocumentHandler fDocumentHandler;
+
+- /** The DTD handler. */
+- protected XMLDTDHandler fDTDHandler;
++ /** The DTD handler. */
++ protected XMLDTDHandler fDTDHandler;
+
+- /** The DTD content model handler. */
+- protected XMLDTDContentModelHandler fDTDContentModelHandler;
++ /** The DTD content model handler. */
++ protected XMLDTDContentModelHandler fDTDContentModelHandler;
+
+- /** Last component in the document pipeline */
+- protected XMLDocumentSource fLastComponent;
++ /** Last component in the document pipeline */
++ protected XMLDocumentSource fLastComponent;
+
+ /**
+ * True if a parse is in progress. This state is needed because
+@@ -495,31 +498,31 @@
+ fFeatures.put(SCHEMA_ELEMENT_DEFAULT, Boolean.TRUE);
+ fFeatures.put(NORMALIZE_DATA, Boolean.TRUE);
+ fFeatures.put(SCHEMA_AUGMENT_PSVI, Boolean.TRUE);
+- fFeatures.put(GENERATE_SYNTHETIC_ANNOTATIONS, Boolean.FALSE);
+- fFeatures.put(VALIDATE_ANNOTATIONS, Boolean.FALSE);
+- fFeatures.put(HONOUR_ALL_SCHEMALOCATIONS, Boolean.FALSE);
+- fFeatures.put(NAMESPACE_GROWTH, Boolean.FALSE);
+- fFeatures.put(TOLERATE_DUPLICATES, Boolean.FALSE);
+- fFeatures.put(USE_GRAMMAR_POOL_ONLY, Boolean.FALSE);
++ fFeatures.put(GENERATE_SYNTHETIC_ANNOTATIONS, Boolean.FALSE);
++ fFeatures.put(VALIDATE_ANNOTATIONS, Boolean.FALSE);
++ fFeatures.put(HONOUR_ALL_SCHEMALOCATIONS, Boolean.FALSE);
++ fFeatures.put(NAMESPACE_GROWTH, Boolean.FALSE);
++ fFeatures.put(TOLERATE_DUPLICATES, Boolean.FALSE);
++ fFeatures.put(USE_GRAMMAR_POOL_ONLY, Boolean.FALSE);
+ fFeatures.put(PARSER_SETTINGS, Boolean.TRUE);
+ fFeatures.put(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
+
+ // add default recognized properties
+ final String[] recognizedProperties =
+ {
+- SYMBOL_TABLE,
+- ERROR_HANDLER,
+- ENTITY_RESOLVER,
++ SYMBOL_TABLE,
++ ERROR_HANDLER,
++ ENTITY_RESOLVER,
+ ERROR_REPORTER,
+ ENTITY_MANAGER,
+ DOCUMENT_SCANNER,
+ DTD_SCANNER,
+ DTD_PROCESSOR,
+ DTD_VALIDATOR,
+- DATATYPE_VALIDATOR_FACTORY,
+- VALIDATION_MANAGER,
+- SCHEMA_VALIDATOR,
+- XML_STRING,
++ DATATYPE_VALIDATOR_FACTORY,
++ VALIDATION_MANAGER,
++ SCHEMA_VALIDATOR,
++ XML_STRING,
+ XMLGRAMMAR_POOL,
+ JAXP_SCHEMA_SOURCE,
+ JAXP_SCHEMA_LANGUAGE,
+@@ -531,19 +534,20 @@
+ SCHEMA_NONS_LOCATION,
+ LOCALE,
+ SCHEMA_DV_FACTORY,
++ SECURITY_MANAGER,
+ XML_SECURITY_PROPERTY_MANAGER
+ };
+ addRecognizedProperties(recognizedProperties);
+
+- if (symbolTable == null) {
+- symbolTable = new SymbolTable();
+- }
+- fSymbolTable = symbolTable;
+- fProperties.put(SYMBOL_TABLE, fSymbolTable);
++ if (symbolTable == null) {
++ symbolTable = new SymbolTable();
++ }
++ fSymbolTable = symbolTable;
++ fProperties.put(SYMBOL_TABLE, fSymbolTable);
+
+ fGrammarPool = grammarPool;
+ if (fGrammarPool != null) {
+- fProperties.put(XMLGRAMMAR_POOL, fGrammarPool);
++ fProperties.put(XMLGRAMMAR_POOL, fGrammarPool);
}
- // 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 @@
+ fEntityManager = new XMLEntityManager();
+@@ -579,8 +583,6 @@
+
+ fVersionDetector = new XMLVersionDetector();
+
+- fProperties.put(XML_SECURITY_PROPERTY_MANAGER, new XMLSecurityPropertyManager());
+-
+ // add message formatters
+ if (fErrorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) {
+ XMLMessageFormatter xmft = new XMLMessageFormatter();
+--- jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java 2013-12-01 11:13:41.000000000 -0800
+@@ -23,6 +23,8 @@
+ import java.io.IOException;
+
+ import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager;
+ import com.sun.org.apache.xerces.internal.xni.XNIException;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource;
+ import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
+@@ -78,6 +80,13 @@
+ /** The parser configuration. */
+ protected XMLParserConfiguration fConfiguration;
+
++ /** The XML Security Manager. */
++ XMLSecurityManager securityManager;
++
++ /** The XML Security Property Manager. */
++ XMLSecurityPropertyManager securityPropertyManager;
++
++
+ //
+ // Constructors
+ //
+@@ -118,6 +127,15 @@
+ */
+ public void parse(XMLInputSource inputSource)
+ throws XNIException, IOException {
++ // null indicates that the parser is called directly, initialize them
++ if (securityManager == null) {
++ securityManager = new XMLSecurityManager(true);
++ fConfiguration.setProperty(Constants.SECURITY_MANAGER, securityManager);
++ }
++ if (securityPropertyManager == null) {
++ securityPropertyManager = new XMLSecurityPropertyManager();
++ fConfiguration.setProperty(Constants.XML_SECURITY_PROPERTY_MANAGER, securityPropertyManager);
++ }
+
+ reset();
+ fConfiguration.parse(inputSource);
+--- jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -61,8 +61,6 @@
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;
+-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 @@
+@@ -79,7 +77,6 @@
*
* @author Neil Graham, IBM
*
-+ * @version $Id: SecurityManager.java,v 1.5 2010-11-01 04:40:14 joehw Exp $
+- * @version $Id: SecurityManager.java,v 1.5 2010-11-01 04:40:14 joehw Exp $
*/
public final class SecurityManager {
-@@ -176,41 +179,48 @@
+@@ -179,48 +176,40 @@
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){}
+- //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 = 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 = 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 = 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.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;
++ 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 = 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 = 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 = 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;
++ try {
++ String value = System.getProperty(Constants.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() {
-+ public String run() {
-+ return System.getProperty(propName);
-+ }
-+ });
-+ }
+- private String getSystemProperty(final String propName) {
+- return AccessController.doPrivileged(new PrivilegedAction() {
+- 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);
-+ }
+--- jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java 2013-12-01 11:13:41.000000000 -0800
+@@ -173,7 +173,7 @@
+ for (int i = 0; i < length; i++) {
+ code = code * 37 + symbol.charAt(i);
}
- 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;
+- return code & 0x7FFFFFF;
++ return code & 0x7FFFFFFF;
- /**
- * This class is duplicated for each subpackage so keep it in sync.
-@@ -141,6 +145,38 @@
- });
- }
+ } // hash(String):int
-+ /**
-+ * 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() {
-+ 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");
+@@ -194,7 +194,7 @@
+ for (int i = 0; i < length; i++) {
+ code = code * 37 + buffer[offset + i];
}
+- return code & 0x7FFFFFF;
++ return code & 0x7FFFFFFF;
- 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;
+ } // hash(char[],int,int):int
- /**
- * 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 null, 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 ClassLoader used to load the factory class. If null
-+ * current Thread'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
-+ * getProviderClass() 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;
-
- /**
- *
Implements pluggable Datatypes.
-@@ -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 null, 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 ClassLoader used to load the factory class. If null
-+ * current Thread'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
-+ * getProviderClass() in order to load the class.
-+ *
-+ * @param className Name of the concrete class corresponding to the
-+ * service provider
-+ *
-+ * @param cl ClassLoader used to load the factory class. If null
-+ * current Thread'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 @@
- *
Take care of restrictions imposed by java security model
- */
- private static SecuritySupport ss = new SecuritySupport();
-+ private static final String DEFAULT_PACKAGE = "com.sun.org.apache.xerces.internal";
- /**
- *
- *
- * @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 @@
+--- jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java 2013-12-01 11:13:41.000000000 -0800
+@@ -0,0 +1,239 @@
+/*
-+ * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
++ *
++ * Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
++ *
++ * The contents of this file are subject to the terms of either the GNU
++ * General Public License Version 2 only ("GPL") or the Common Development
++ * and Distribution License("CDDL") (collectively, the "License"). You
++ * may not use this file except in compliance with the License. You can
++ * obtain a copy of the License at
++ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
++ * or packager/legal/LICENSE.txt. See the License for the specific
++ * language governing permissions and limitations under the License.
++ *
++ * When distributing the software, include this License Header Notice in each
++ * file and include the License file at packager/legal/LICENSE.txt.
++ *
++ * GPL Classpath Exception:
++ * Oracle designates this particular file as subject to the "Classpath"
++ * exception as provided by Oracle in the GPL Version 2 section of the License
++ * file that accompanied this code.
++ *
++ * Modifications:
++ * If applicable, add the following below the License Header, with the fields
++ * enclosed by brackets [] replaced by your own identifying information:
++ * "Portions Copyright [year] [name of copyright owner]"
++ *
++ * Contributor(s):
++ * If you wish your version of this file to be governed by only the CDDL or
++ * only the GPL Version 2, indicate your decision by adding "[Contributor]
++ * elects to include this software in this distribution under the [CDDL or GPL
++ * Version 2] license." If you don't indicate a single choice of license, a
++ * recipient has the option to distribute your version of this file under
++ * either the CDDL, the GPL Version 2 or to extend the choice of license to
++ * its licensees as provided above. However, if you add GPL Version 2 code
++ * and therefore, elected the GPL Version 2 license, then the option applies
++ * only if the new code is made subject to such option by the copyright
++ * holder.
++ */
++package com.sun.org.apache.xerces.internal.utils;
++
++import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager.Limit;
++import java.util.Formatter;
++import java.util.HashMap;
++import java.util.Map;
++
++/**
++ * A helper for analyzing entity expansion limits
++ *
++ * @author Joe Wang Oracle Corp.
++ *
++ */
++public final class XMLLimitAnalyzer {
++
++ /**
++ * Map old property names with the new ones
++ */
++ public static enum NameMap {
++ ENTITY_EXPANSION_LIMIT(Constants.SP_ENTITY_EXPANSION_LIMIT, Constants.ENTITY_EXPANSION_LIMIT),
++ MAX_OCCUR_NODE_LIMIT(Constants.SP_MAX_OCCUR_LIMIT, Constants.MAX_OCCUR_LIMIT),
++ ELEMENT_ATTRIBUTE_LIMIT(Constants.SP_ELEMENT_ATTRIBUTE_LIMIT, Constants.ELEMENT_ATTRIBUTE_LIMIT);
++
++ final String newName;
++ final String oldName;
++
++ NameMap(String newName, String oldName) {
++ this.newName = newName;
++ this.oldName = oldName;
++ }
++
++ String getOldName(String newName) {
++ if (newName.equals(this.newName)) {
++ return oldName;
++ }
++ return null;
++ }
++ }
++
++ private XMLSecurityManager securityManager;
++ /**
++ * Max value accumulated for each property
++ */
++ private final int[] values;
++ /**
++ * Names of the entities corresponding to their max values
++ */
++ private final String[] names;
++ /**
++ * Total value of accumulated entities
++ */
++ private final int[] totalValue;
++
++ /**
++ * Maintain values of the top 10 elements in the process of parsing
++ */
++ private final Map[] caches;
++
++ private String entityStart, entityEnd;
++ /**
++ * Default constructor. Establishes default values for known security
++ * vulnerabilities.
++ */
++ public XMLLimitAnalyzer(XMLSecurityManager securityManager) {
++ this.securityManager = securityManager;
++ values = new int[Limit.values().length];
++ totalValue = new int[Limit.values().length];
++ names = new String[Limit.values().length];
++ caches = new Map[Limit.values().length];
++ }
++
++ /**
++ * Add the value to the current max count for the specified property
++ * To find the max value of all entities, set no limit
++ *
++ * @param limit the type of the property
++ * @param entityName the name of the entity
++ * @param value the value of the entity
++ */
++ public void addValue(Limit limit, String entityName, int value) {
++ addValue(limit.ordinal(), entityName, value);
++ }
++
++ /**
++ * Add the value to the current count by the index of the property
++ * @param index the index of the property
++ * @param entityName the name of the entity
++ * @param value the value of the entity
++ */
++ public void addValue(int index, String entityName, int value) {
++ if (index == Limit.ENTITY_EXPANSION_LIMIT.ordinal() ||
++ index == Limit.MAX_OCCUR_NODE_LIMIT.ordinal() ||
++ index == Limit.ELEMENT_ATTRIBUTE_LIMIT.ordinal()) {
++ totalValue[index] += value;
++ return;
++ }
++
++ Map cache;
++ if (caches[index] == null) {
++ cache = new HashMap(10);
++ caches[index] = cache;
++ } else {
++ cache = caches[index];
++ }
++
++ int accumulatedValue = value;
++ if (cache.containsKey(entityName)) {
++ accumulatedValue += cache.get(entityName).intValue();
++ cache.put(entityName, Integer.valueOf(accumulatedValue));
++ } else {
++ cache.put(entityName, Integer.valueOf(value));
++ }
++
++ if (accumulatedValue > values[index]) {
++ values[index] = accumulatedValue;
++ names[index] = entityName;
++ }
++
++
++ if (index == Limit.GENEAL_ENTITY_SIZE_LIMIT.ordinal() ||
++ index == Limit.PARAMETER_ENTITY_SIZE_LIMIT.ordinal()) {
++ totalValue[Limit.TOTAL_ENTITY_SIZE_LIMIT.ordinal()] += value;
++ }
++ }
++
++ /**
++ * Return the value of the current max count for the specified property
++ *
++ * @param limit the property
++ * @return the value of the property
++ */
++ public int getValue(Limit limit) {
++ return values[limit.ordinal()];
++ }
++
++ public int getValue(int index) {
++ return values[index];
++ }
++ /**
++ * Return the total value accumulated so far
++ *
++ * @param limit the property
++ * @return the accumulated value of the property
++ */
++ public int getTotalValue(Limit limit) {
++ return totalValue[limit.ordinal()];
++ }
++
++ public int getTotalValue(int index) {
++ return totalValue[index];
++ }
++ /**
++ * Return the current max value (count or length) by the index of a property
++ * @param index the index of a property
++ * @return count of a property
++ */
++ public int getValueByIndex(int index) {
++ return values[index];
++ }
++
++ public void startEntity(String name) {
++ entityStart = name;
++ }
++
++ public boolean isTracking(String name) {
++ if (entityStart == null) {
++ return false;
++ }
++ return entityStart.equals(name);
++ }
++ /**
++ * Stop tracking the entity
++ * @param limit the limit property
++ * @param name the name of an entity
++ */
++ public void endEntity(Limit limit, String name) {
++ entityStart = "";
++ Map cache = caches[limit.ordinal()];
++ if (cache != null) {
++ cache.remove(name);
++ }
++ }
++
++ public void debugPrint() {
++ Formatter formatter = new Formatter();
++ System.out.println(formatter.format("%30s %15s %15s %15s %30s",
++ "Property","Limit","Total size","Size","Entity Name"));
++
++ for (Limit limit : Limit.values()) {
++ formatter = new Formatter();
++ System.out.println(formatter.format("%30s %15d %15d %15d %30s",
++ limit.name(),
++ securityManager.getLimit(limit),
++ totalValue[limit.ordinal()],
++ values[limit.ordinal()],
++ names[limit.ordinal()]));
++ }
++ }
++}
+--- jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -0,0 +1,555 @@
++/*
++ * 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
@@ -15909,203 +10396,947 @@
+ * questions.
+ */
+
-+package org.xml.sax.helpers;
++package com.sun.org.apache.xerces.internal.utils;
+
-+import java.io.*;
-+import java.security.*;
++import com.sun.org.apache.xerces.internal.impl.Constants;
++import com.sun.org.apache.xerces.internal.util.SecurityManager;
+
+/**
-+ * 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.
++ * This class manages standard and implementation-specific limitations.
+ *
-+ * Security related methods that only work on J2SE 1.2 and newer.
+ */
-+class SecuritySupport {
++public final class XMLSecurityManager {
+
++ /**
++ * States of the settings of a property, in the order: default value, value
++ * set by FEATURE_SECURE_PROCESSING, jaxp.properties file, jaxp system
++ * properties, and jaxp api properties
++ */
++ public static enum State {
++ //this order reflects the overriding order
+
-+ ClassLoader getContextClassLoader() throws SecurityException{
-+ return (ClassLoader)
-+ AccessController.doPrivileged(new PrivilegedAction() {
-+ public Object run() {
-+ ClassLoader cl = null;
-+ //try {
-+ cl = Thread.currentThread().getContextClassLoader();
-+ //} catch (SecurityException ex) { }
++ DEFAULT("default"), FSP("FEATURE_SECURE_PROCESSING"),
++ JAXPDOTPROPERTIES("jaxp.properties"), SYSTEMPROPERTY("system property"),
++ APIPROPERTY("property");
+
-+ if (cl == null)
-+ cl = ClassLoader.getSystemClassLoader();
++ final String literal;
++ State(String literal) {
++ this.literal = literal;
++ }
+
-+ 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();
++ String literal() {
++ return literal;
+ }
+ }
+
-+ 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);
++ /**
++ * Limits managed by the security manager
++ */
++ public static enum Limit {
++
++ ENTITY_EXPANSION_LIMIT(Constants.JDK_ENTITY_EXPANSION_LIMIT, Constants.SP_ENTITY_EXPANSION_LIMIT, 0, 64000),
++ MAX_OCCUR_NODE_LIMIT(Constants.JDK_MAX_OCCUR_LIMIT, Constants.SP_MAX_OCCUR_LIMIT, 0, 5000),
++ ELEMENT_ATTRIBUTE_LIMIT(Constants.JDK_ELEMENT_ATTRIBUTE_LIMIT, Constants.SP_ELEMENT_ATTRIBUTE_LIMIT, 0, 10000),
++ TOTAL_ENTITY_SIZE_LIMIT(Constants.JDK_TOTAL_ENTITY_SIZE_LIMIT, Constants.SP_TOTAL_ENTITY_SIZE_LIMIT, 0, 50000000),
++ GENEAL_ENTITY_SIZE_LIMIT(Constants.JDK_GENEAL_ENTITY_SIZE_LIMIT, Constants.SP_GENEAL_ENTITY_SIZE_LIMIT, 0, 0),
++ PARAMETER_ENTITY_SIZE_LIMIT(Constants.JDK_PARAMETER_ENTITY_SIZE_LIMIT, Constants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000);
++
++ final String apiProperty;
++ final String systemProperty;
++ final int defaultValue;
++ final int secureValue;
++
++ Limit(String apiProperty, String systemProperty, int value, int secureValue) {
++ this.apiProperty = apiProperty;
++ this.systemProperty = systemProperty;
++ this.defaultValue = value;
++ this.secureValue = secureValue;
++ }
++
++ public boolean equalsAPIPropertyName(String propertyName) {
++ return (propertyName == null) ? false : apiProperty.equals(propertyName);
++ }
++
++ public boolean equalsSystemPropertyName(String propertyName) {
++ return (propertyName == null) ? false : systemProperty.equals(propertyName);
++ }
++
++ public String apiProperty() {
++ return apiProperty;
++ }
++
++ String systemProperty() {
++ return systemProperty;
++ }
++
++ int defaultValue() {
++ return defaultValue;
++ }
++
++ int secureValue() {
++ return secureValue;
++ }
++ }
++
++ /**
++ * Map old property names with the new ones
++ */
++ public static enum NameMap {
++
++ ENTITY_EXPANSION_LIMIT(Constants.SP_ENTITY_EXPANSION_LIMIT, Constants.ENTITY_EXPANSION_LIMIT),
++ MAX_OCCUR_NODE_LIMIT(Constants.SP_MAX_OCCUR_LIMIT, Constants.MAX_OCCUR_LIMIT),
++ ELEMENT_ATTRIBUTE_LIMIT(Constants.SP_ELEMENT_ATTRIBUTE_LIMIT, Constants.ELEMENT_ATTRIBUTE_LIMIT);
++ final String newName;
++ final String oldName;
++
++ NameMap(String newName, String oldName) {
++ this.newName = newName;
++ this.oldName = oldName;
++ }
++
++ String getOldName(String newName) {
++ if (newName.equals(this.newName)) {
++ return oldName;
++ }
++ return null;
++ }
++ }
++ private static final int NO_LIMIT = 0;
++ /**
++ * Values of the properties
++ */
++ private final int[] values;
++ /**
++ * States of the settings for each property
++ */
++ private State[] states;
++ /**
++ * Flag indicating if secure processing is set
++ */
++ boolean secureProcessing;
++
++ /**
++ * States that determine if properties are set explicitly
++ */
++ private boolean[] isSet;
++
++
++ private XMLLimitAnalyzer limitAnalyzer;
++ /**
++ * Index of the special entityCountInfo property
++ */
++ private int indexEntityCountInfo = 10000;
++ private String printEntityCountInfo = "";
++
++ /**
++ * Default constructor. Establishes default values for known security
++ * vulnerabilities.
++ */
++ public XMLSecurityManager() {
++ this(false);
++ }
++
++ /**
++ * Instantiate Security Manager in accordance with the status of
++ * secure processing
++ * @param secureProcessing
++ */
++ public XMLSecurityManager(boolean secureProcessing) {
++ limitAnalyzer = new XMLLimitAnalyzer(this);
++ values = new int[Limit.values().length];
++ states = new State[Limit.values().length];
++ isSet = new boolean[Limit.values().length];
++ this.secureProcessing = secureProcessing;
++ for (Limit limit : Limit.values()) {
++ if (secureProcessing) {
++ values[limit.ordinal()] = limit.secureValue;
++ states[limit.ordinal()] = State.FSP;
++ } else {
++ values[limit.ordinal()] = limit.defaultValue();
++ states[limit.ordinal()] = State.DEFAULT;
++ }
++ }
++ //read system properties or jaxp.properties
++ readSystemProperties();
++ }
++
++ /**
++ * Setting FEATURE_SECURE_PROCESSING explicitly
++ */
++ public void setSecureProcessing(boolean secure) {
++ secureProcessing = secure;
++ for (Limit limit : Limit.values()) {
++ if (secure) {
++ setLimit(limit.ordinal(), State.FSP, limit.secureValue());
++ } else {
++ setLimit(limit.ordinal(), State.FSP, limit.defaultValue());
++ }
++ }
++ }
++
++ /**
++ * Return the state of secure processing
++ * @return the state of secure processing
++ */
++ public boolean isSecureProcessing() {
++ return secureProcessing;
++ }
++
++
++ /**
++ * Set limit by property name and state
++ * @param propertyName property name
++ * @param state the state of the property
++ * @param value the value of the property
++ * @return true if the property is managed by the security manager; false
++ * if otherwise.
++ */
++ public boolean setLimit(String propertyName, State state, Object value) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ setLimit(index, state, value);
++ return true;
++ }
++ return false;
++ }
++
++ /**
++ * Set the value for a specific limit.
++ *
++ * @param limit the limit
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(Limit limit, State state, int value) {
++ setLimit(limit.ordinal(), state, value);
++ }
++
++ /**
++ * Set the value of a property by its index
++ *
++ * @param index the index of the property
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(int index, State state, Object value) {
++ if (index == indexEntityCountInfo) {
++ printEntityCountInfo = (String)value;
++ } else {
++ int temp = 0;
++ try {
++ temp = Integer.parseInt((String) value);
++ if (temp < 0) {
++ temp = 0;
++ }
++ } catch (NumberFormatException e) {}
++ setLimit(index, state, temp);
++ }
++ }
++
++ /**
++ * Set the value of a property by its index
++ *
++ * @param index the index of the property
++ * @param state the state of the property
++ * @param value the value of the property
++ */
++ public void setLimit(int index, State state, int value) {
++ if (index == indexEntityCountInfo) {
++ //if it's explicitly set, it's treated as yes no matter the value
++ printEntityCountInfo = Constants.JDK_YES;
++ } else {
++ //only update if it shall override
++ if (state.compareTo(states[index]) >= 0) {
++ values[index] = value;
++ states[index] = state;
++ isSet[index] = true;
++ }
++ }
++ }
++
++ /**
++ * Return the value of the specified property
++ *
++ * @param propertyName the property name
++ * @return the value of the property as a string. If a property is managed
++ * by this manager, its value shall not be null.
++ */
++ public String getLimitAsString(String propertyName) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ return getLimitValueByIndex(index);
++ }
++
++ return null;
++ }
++ /**
++ * Return the value of the specified property
++ *
++ * @param limit the property
++ * @return the value of the property
++ */
++ public int getLimit(Limit limit) {
++ return values[limit.ordinal()];
++ }
++
++ /**
++ * Return the value of a property by its ordinal
++ *
++ * @param limit the property
++ * @return value of a property
++ */
++ public String getLimitValueAsString(Limit limit) {
++ return Integer.toString(values[limit.ordinal()]);
++ }
++
++ /**
++ * Return the value of a property by its ordinal
++ *
++ * @param index the index of a property
++ * @return limit of a property as a string
++ */
++ public String getLimitValueByIndex(int index) {
++ if (index == indexEntityCountInfo) {
++ return printEntityCountInfo;
++ }
++
++ return Integer.toString(values[index]);
++ }
++
++ /**
++ * Return the state of the limit property
++ *
++ * @param limit the limit
++ * @return the state of the limit property
++ */
++ public State getState(Limit limit) {
++ return states[limit.ordinal()];
++ }
++
++ /**
++ * Return the state of the limit property
++ *
++ * @param limit the limit
++ * @return the state of the limit property
++ */
++ public String getStateLiteral(Limit limit) {
++ return states[limit.ordinal()].literal();
++ }
++
++ /**
++ * Get the index by property name
++ *
++ * @param propertyName property name
++ * @return the index of the property if found; return -1 if not
++ */
++ public int getIndex(String propertyName) {
++ for (Limit limit : Limit.values()) {
++ if (limit.equalsAPIPropertyName(propertyName)) {
++ //internally, ordinal is used as index
++ return limit.ordinal();
++ }
++ }
++ //special property to return entity count info
++ if (propertyName.equals(Constants.JDK_ENTITY_COUNT_INFO)) {
++ return indexEntityCountInfo;
++ }
++ return -1;
++ }
++
++ /**
++ * Check if there's no limit defined by the Security Manager
++ * @param limit
++ * @return
++ */
++ public boolean isNoLimit(int limit) {
++ return limit==NO_LIMIT;
++ }
++ /**
++ * Check if the size (length or count) of the specified limit property is
++ * over the limit
++ *
++ * @param limit the type of the limit property
++ * @param entityName the name of the entity
++ * @param size the size (count or length) of the entity
++ * @return true if the size is over the limit, false otherwise
++ */
++ public boolean isOverLimit(Limit limit, String entityName, int size) {
++ return isOverLimit(limit.ordinal(), entityName, size);
++ }
++
++ /**
++ * Check if the value (length or count) of the specified limit property is
++ * over the limit
++ *
++ * @param index the index of the limit property
++ * @param entityName the name of the entity
++ * @param size the size (count or length) of the entity
++ * @return true if the size is over the limit, false otherwise
++ */
++ public boolean isOverLimit(int index, String entityName, int size) {
++ if (values[index] == NO_LIMIT) {
++ return false;
++ }
++ if (size > values[index]) {
++ limitAnalyzer.addValue(index, entityName, size);
++ return true;
++ }
++ return false;
++ }
++
++ /**
++ * Check against cumulated value
++ *
++ * @param limit the type of the limit property
++ * @param size the size (count or length) of the entity
++ * @return true if the size is over the limit, false otherwise
++ */
++ public boolean isOverLimit(Limit limit) {
++ return isOverLimit(limit.ordinal());
++ }
++
++ public boolean isOverLimit(int index) {
++ if (values[index] == NO_LIMIT) {
++ return false;
++ }
++
++ if (index==Limit.ELEMENT_ATTRIBUTE_LIMIT.ordinal() ||
++ index==Limit.ENTITY_EXPANSION_LIMIT.ordinal() ||
++ index==Limit.TOTAL_ENTITY_SIZE_LIMIT.ordinal()) {
++ return (limitAnalyzer.getTotalValue(index) > values[index]);
++ } else {
++ return (limitAnalyzer.getValue(index) > values[index]);
++ }
++ }
++
++ public void debugPrint() {
++ if (printEntityCountInfo.equals(Constants.JDK_YES)) {
++ limitAnalyzer.debugPrint();
++ }
++ }
++
++ /**
++ * Return the limit analyzer
++ *
++ * @return the limit analyzer
++ */
++ public XMLLimitAnalyzer getLimitAnalyzer() {
++ return limitAnalyzer;
++ }
++
++ /**
++ * Set limit analyzer
++ *
++ * @param analyzer a limit analyzer
++ */
++ public void setLimitAnalyzer(XMLLimitAnalyzer analyzer) {
++ limitAnalyzer = analyzer;
++ }
++
++ /**
++ * Indicate if a property is set explicitly
++ * @param index
++ * @return
++ */
++ public boolean isSet(int index) {
++ return isSet[index];
++ }
++
++ public boolean printEntityCountInfo() {
++ return printEntityCountInfo.equals(Constants.JDK_YES);
++ }
++
++ /**
++ * Read from system properties, or those in jaxp.properties
++ */
++ private void readSystemProperties() {
++
++ for (Limit limit : Limit.values()) {
++ if (!getSystemProperty(limit, limit.systemProperty())) {
++ //if system property is not found, try the older form if any
++ for (NameMap nameMap : NameMap.values()) {
++ String oldName = nameMap.getOldName(limit.systemProperty());
++ if (oldName != null) {
++ getSystemProperty(limit, oldName);
+ }
-+ return ris;
+ }
-+ });
++ }
++ }
++
+ }
+
-+ boolean doesFileExist(final File f) {
-+ return ((Boolean)
-+ AccessController.doPrivileged(new PrivilegedAction() {
-+ public Object run() {
-+ return new Boolean(f.exists());
-+ }
-+ })).booleanValue();
++ /**
++ * Read from system properties, or those in jaxp.properties
++ *
++ * @param property the type of the property
++ * @param sysPropertyName the name of system property
++ */
++ private boolean getSystemProperty(Limit limit, String sysPropertyName) {
++ try {
++ String value = SecuritySupport.getSystemProperty(sysPropertyName);
++ if (value != null && !value.equals("")) {
++ values[limit.ordinal()] = Integer.parseInt(value);
++ states[limit.ordinal()] = State.SYSTEMPROPERTY;
++ return true;
++ }
++
++ value = SecuritySupport.readJAXPProperty(sysPropertyName);
++ if (value != null && !value.equals("")) {
++ values[limit.ordinal()] = Integer.parseInt(value);
++ states[limit.ordinal()] = State.JAXPDOTPROPERTIES;
++ return true;
++ }
++ } catch (NumberFormatException e) {
++ //invalid setting
++ throw new NumberFormatException("Invalid setting for system property: " + limit.systemProperty());
++ }
++ return false;
+ }
+
++
++ /**
++ * Convert a value set through setProperty to XMLSecurityManager.
++ * If the value is an instance of XMLSecurityManager, use it to override the default;
++ * If the value is an old SecurityManager, convert to the new XMLSecurityManager.
++ *
++ * @param value user specified security manager
++ * @param securityManager an instance of XMLSecurityManager
++ * @return an instance of the new security manager XMLSecurityManager
++ */
++ static public XMLSecurityManager convert(Object value, XMLSecurityManager securityManager) {
++ if (value == null) {
++ if (securityManager == null) {
++ securityManager = new XMLSecurityManager(true);
++ }
++ return securityManager;
++ }
++ if (XMLSecurityManager.class.isAssignableFrom(value.getClass())) {
++ return (XMLSecurityManager)value;
++ } else {
++ if (securityManager == null) {
++ securityManager = new XMLSecurityManager(true);
++ }
++ if (SecurityManager.class.isAssignableFrom(value.getClass())) {
++ SecurityManager origSM = (SecurityManager)value;
++ securityManager.setLimit(Limit.MAX_OCCUR_NODE_LIMIT, State.APIPROPERTY, origSM.getMaxOccurNodeLimit());
++ securityManager.setLimit(Limit.ENTITY_EXPANSION_LIMIT, State.APIPROPERTY, origSM.getEntityExpansionLimit());
++ securityManager.setLimit(Limit.ELEMENT_ATTRIBUTE_LIMIT, State.APIPROPERTY, origSM.getElementAttrLimit());
++ }
++ return securityManager;
++ }
++ }
+}
---- 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 @@
+--- jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -91,6 +91,24 @@
+ readSystemProperties();
}
- 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);
++
++ /**
++ * Set limit by property name and state
++ * @param propertyName property name
++ * @param state the state of the property
++ * @param value the value of the property
++ * @return true if the property is managed by the security property manager;
++ * false if otherwise.
++ */
++ public boolean setValue(String propertyName, State state, Object value) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ setValue(index, state, (String)value);
++ return true;
+ }
-+ catch (RuntimeException e) { /* continue searching */ }
++ return false;
++ }
++
+ /**
+ * Set the value for a specific property.
+ *
+@@ -119,6 +137,23 @@
+ states[index] = state;
+ }
+ }
++
++
++ /**
++ * Return the value of the specified property
++ *
++ * @param propertyName the property name
++ * @return the value of the property as a string
++ */
++ public String getValue(String propertyName) {
++ int index = getIndex(propertyName);
++ if (index > -1) {
++ return getValueByIndex(index);
++ }
++
++ return null;
++ }
++
+ /**
+ * Return the value of the specified property
+ *
+--- jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java 2013-09-06 11:23:00.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java 2013-12-01 11:13:41.000000000 -0800
+@@ -37,7 +37,6 @@
+ import com.sun.org.apache.xerces.internal.util.HTTPInputSource;
+ import com.sun.org.apache.xerces.internal.util.IntStack;
+ import com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings;
+-import com.sun.org.apache.xerces.internal.util.SecurityManager;
+ import com.sun.org.apache.xerces.internal.util.SymbolTable;
+ import com.sun.org.apache.xerces.internal.util.URI;
+ import com.sun.org.apache.xerces.internal.util.XMLAttributesImpl;
+@@ -45,6 +44,7 @@
+ import com.sun.org.apache.xerces.internal.util.XMLChar;
+ import com.sun.org.apache.xerces.internal.util.XMLSymbols;
+ import com.sun.org.apache.xerces.internal.util.URI.MalformedURIException;
++import com.sun.org.apache.xerces.internal.utils.XMLSecurityManager;
+ import com.sun.org.apache.xerces.internal.xni.Augmentations;
+ import com.sun.org.apache.xerces.internal.xni.NamespaceContext;
+ import com.sun.org.apache.xerces.internal.xni.QName;
+@@ -289,7 +289,7 @@
+ protected SymbolTable fSymbolTable;
+ protected XMLErrorReporter fErrorReporter;
+ protected XMLEntityResolver fEntityResolver;
+- protected SecurityManager fSecurityManager;
++ protected XMLSecurityManager fSecurityManager;
+ protected XMLSecurityPropertyManager fSecurityPropertyMgr;
- // 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) {
-+ }
+ // these are needed for text include processing
+@@ -517,8 +517,8 @@
+
+ // Get security manager.
+ try {
+- SecurityManager value =
+- (SecurityManager)componentManager.getProperty(
++ XMLSecurityManager value =
++ (XMLSecurityManager)componentManager.getProperty(
+ SECURITY_MANAGER);
+
+ if (value != null) {
+@@ -674,7 +674,7 @@
+ return;
+ }
+ if (propertyId.equals(SECURITY_MANAGER)) {
+- fSecurityManager = (SecurityManager)value;
++ fSecurityManager = (XMLSecurityManager)value;
+ if (fChildConfig != null) {
+ fChildConfig.setProperty(propertyId, value);
}
-- className = _clsFromJar;
+--- jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java 2013-09-06 11:23:03.000000000 -0700
++++ jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java 2013-12-01 11:13:41.000000000 -0800
+@@ -25,12 +25,15 @@
+ import com.sun.org.apache.xalan.internal.XalanConstants;
+ import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
+ import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
++import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager;
+ import java.util.HashMap;
++
+ import javax.xml.XMLConstants;
+ import javax.xml.parsers.FactoryConfigurationError;
+ import javax.xml.parsers.ParserConfigurationException;
+ import javax.xml.parsers.SAXParserFactory;
+ import org.xml.sax.SAXException;
++import org.xml.sax.SAXNotRecognizedException;
+ import org.xml.sax.XMLReader;
+ import org.xml.sax.helpers.XMLReaderFactory;
+
+@@ -63,11 +66,15 @@
+ private HashMap m_inUse;
+
+ private boolean m_useServicesMechanism = true;
++
++ private boolean _secureProcessing;
+ /**
+ * protocols allowed for external DTD references in source file and/or stylesheet.
+ */
+ private String _accessExternalDTD = XalanConstants.EXTERNAL_ACCESS_DEFAULT;
+
++ private XMLSecurityManager _xmlSecurityManager;
++
+ /**
+ * Hidden constructor
+ */
+@@ -118,7 +125,12 @@
+ // TransformerFactory creates a reader via the
+ // XMLReaderFactory if setXMLReader is not used
+ reader = XMLReaderFactory.createXMLReader();
+-
++ try {
++ reader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, _secureProcessing);
++ } catch (SAXNotRecognizedException e) {
++ System.err.println("Warning: " + reader.getClass().getName() + ": "
++ + e.getMessage());
++ }
+ } catch (Exception e) {
+ try {
+ // If unable to create an instance, let's try to use
+@@ -164,6 +176,21 @@
+ + se.getMessage());
}
- // 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);
++ try {
++ if (_xmlSecurityManager != null) {
++ for (XMLSecurityManager.Limit limit : XMLSecurityManager.Limit.values()) {
++ reader.setProperty(limit.apiProperty(),
++ _xmlSecurityManager.getLimitValueAsString(limit));
++ }
++ if (_xmlSecurityManager.printEntityCountInfo()) {
++ reader.setProperty(XalanConstants.JDK_ENTITY_COUNT_INFO, XalanConstants.JDK_YES);
++ }
++ }
++ } catch (SAXException se) {
++ System.err.println("Warning: " + reader.getClass().getName() + ": "
++ + se.getMessage());
++ }
++
+ return reader;
}
- 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
+@@ -195,11 +222,22 @@
+ }
+
+ /**
++ * Set feature
++ */
++ public void setFeature(String name, boolean value) {
++ if (name.equals(XMLConstants.FEATURE_SECURE_PROCESSING)) {
++ _secureProcessing = value;
++ }
++ }
++
++ /**
+ * Get property value
+ */
+- public String getProperty(String name) {
++ public Object getProperty(String name) {
+ if (name.equals(XMLConstants.ACCESS_EXTERNAL_DTD)) {
+ return _accessExternalDTD;
++ } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
++ return _xmlSecurityManager;
+ }
+ return null;
+ }
+@@ -207,9 +245,11 @@
+ /**
+ * Set property.
+ */
+- public void setProperty(String name, String value) {
++ public void setProperty(String name, Object value) {
+ if (name.equals(XMLConstants.ACCESS_EXTERNAL_DTD)) {
+ _accessExternalDTD = (String)value;
++ } else if (name.equals(XalanConstants.SECURITY_MANAGER)) {
++ _xmlSecurityManager = (XMLSecurityManager)value;
+ }
+ }
+ }
+--- jaxp/src/javax/xml/stream/FactoryFinder.java 2013-09-06 11:23:04.000000000 -0700
++++ jaxp/src/javax/xml/stream/FactoryFinder.java 2013-12-01 11:13:41.000000000 -0800
+@@ -204,13 +204,15 @@
+ * a property name
+ * @param fallbackClassName Implementation class name, if nothing else
+ * is found. Use null to mean no fallback.
++ * @param standardId Indicate whether the factoryId is standard
++ * or user specified.
+ *
+ * Package private so this code can be shared.
+ */
+- static Object find(String factoryId, String fallbackClassName)
++ static Object find(String factoryId, String fallbackClassName, boolean standardId)
+ throws ConfigurationError
+ {
+- return find(factoryId, null, fallbackClassName);
++ return find(factoryId, null, fallbackClassName, standardId);
+ }
+
+ /**
+@@ -227,23 +229,34 @@
+ * @param fallbackClassName Implementation class name, if nothing else
+ * is found. Use null to mean no fallback.
+ *
++ * @param standardId Indicate whether the factoryId is standard
++ * or user specified.
++ *
+ * Package private so this code can be shared.
+ */
+- static Object find(String factoryId, ClassLoader cl, String fallbackClassName)
++ static Object find(String factoryId, ClassLoader cl, String fallbackClassName,
++ boolean standardId)
+ throws ConfigurationError
+ {
+ dPrint("find factoryId =" + factoryId);
+
+ // Use the system property first
+ try {
+- String systemProp = ss.getSystemProperty(factoryId);
++ String systemProp;
++ if (standardId) {
++ systemProp = ss.getSystemProperty(factoryId);
++ } else {
++ systemProp = System.getProperty(factoryId);
++ }
++
+ if (systemProp != null) {
+ dPrint("found system property, value=" + systemProp);
+ return newInstance(systemProp, null, true);
+ }
+ }
+ catch (SecurityException se) {
+- if (debug) se.printStackTrace();
++ throw new ConfigurationError(
++ "Failed to read factoryId '" + factoryId + "'", se);
+ }
+
+ // Try read $java.home/lib/stax.properties followed by
+--- jaxp/src/javax/xml/stream/XMLEventFactory.java 2013-09-06 11:23:04.000000000 -0700
++++ jaxp/src/javax/xml/stream/XMLEventFactory.java 2013-12-01 11:13:41.000000000 -0800
+@@ -60,9 +60,7 @@
+ public static XMLEventFactory newInstance()
+ throws FactoryConfigurationError
+ {
+- return (XMLEventFactory) FactoryFinder.find(
+- JAXPFACTORYID,
+- DEFAULIMPL);
++ return (XMLEventFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -93,9 +91,7 @@
+ public static XMLEventFactory newFactory()
+ throws FactoryConfigurationError
+ {
+- return (XMLEventFactory) FactoryFinder.find(
+- JAXPFACTORYID,
+- DEFAULIMPL);
++ return (XMLEventFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -118,7 +114,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+@@ -145,7 +142,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLEventFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+--- jaxp/src/javax/xml/stream/XMLInputFactory.java 2013-09-06 11:23:04.000000000 -0700
++++ jaxp/src/javax/xml/stream/XMLInputFactory.java 2013-12-01 11:13:41.000000000 -0800
+@@ -139,6 +139,7 @@
+ public static final String ALLOCATOR=
+ "javax.xml.stream.allocator";
+
++ static final String JAXPFACTORYID = "javax.xml.stream.XMLInputFactory";
+ static final String DEFAULIMPL = "com.sun.xml.internal.stream.XMLInputFactoryImpl";
+
+ protected XMLInputFactory(){}
+@@ -150,9 +151,7 @@
+ public static XMLInputFactory newInstance()
+ throws FactoryConfigurationError
+ {
+- return (XMLInputFactory) FactoryFinder.find(
+- "javax.xml.stream.XMLInputFactory",
+- DEFAULIMPL);
++ return (XMLInputFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -183,9 +182,7 @@
+ public static XMLInputFactory newFactory()
+ throws FactoryConfigurationError
+ {
+- return (XMLInputFactory) FactoryFinder.find(
+- "javax.xml.stream.XMLInputFactory",
+- DEFAULIMPL);
++ return (XMLInputFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -208,7 +205,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+@@ -235,7 +233,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+--- jaxp/src/javax/xml/stream/XMLOutputFactory.java 2013-09-06 11:23:04.000000000 -0700
++++ jaxp/src/javax/xml/stream/XMLOutputFactory.java 2013-12-01 11:13:41.000000000 -0800
+@@ -115,6 +115,7 @@
+ public static final String IS_REPAIRING_NAMESPACES=
+ "javax.xml.stream.isRepairingNamespaces";
+
++ static final String JAXPFACTORYID = "javax.xml.stream.XMLOutputFactory";
+ static final String DEFAULIMPL = "com.sun.xml.internal.stream.XMLOutputFactoryImpl";
+
+ protected XMLOutputFactory(){}
+@@ -126,8 +127,7 @@
+ public static XMLOutputFactory newInstance()
+ throws FactoryConfigurationError
+ {
+- return (XMLOutputFactory) FactoryFinder.find("javax.xml.stream.XMLOutputFactory",
+- DEFAULIMPL);
++ return (XMLOutputFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -158,8 +158,7 @@
+ public static XMLOutputFactory newFactory()
+ throws FactoryConfigurationError
+ {
+- return (XMLOutputFactory) FactoryFinder.find("javax.xml.stream.XMLOutputFactory",
+- DEFAULIMPL);
++ return (XMLOutputFactory) FactoryFinder.find(JAXPFACTORYID, DEFAULIMPL, true);
+ }
+
+ /**
+@@ -181,7 +180,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLInputFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+@@ -210,7 +210,8 @@
+ throws FactoryConfigurationError {
+ try {
+ //do not fallback if given classloader can't find the class, throw exception
+- return (XMLOutputFactory) FactoryFinder.find(factoryId, classLoader, null);
++ return (XMLOutputFactory) FactoryFinder.find(factoryId, classLoader,
++ null, factoryId.equals(JAXPFACTORYID) ? true : false);
+ } catch (FactoryFinder.ConfigurationError e) {
+ throw new FactoryConfigurationError(e.getException(),
+ e.getMessage());
+--- jaxws/.hgtags 2013-09-06 11:23:51.000000000 -0700
++++ jaxws/.hgtags 2013-12-01 11:13:43.000000000 -0800
@@ -123,6 +123,7 @@
05469dd4c3662c454f8a019e492543add60795cc jdk7-b146
c01bfd68d0528bc88348813c4d75d7f5c62bc4e2 jdk7u1-b01
@@ -16114,356 +11345,52 @@
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
+@@ -302,6 +303,22 @@
+ 0cd0d4e7331f7fc9f9ee77f2275113571bcf67cf jdk7u25-b09
+ 105cdfd4f40837917d0065e3e58052d2854df7da jdk7u25-b10
+ 6de7fec036abf91ce962c74f11a6266491df3fd8 jdk7u25-b11
++a367ebf0c21512867f4ab5cdd206dd8c7817c004 jdk7u14-b16
++74c34f35912d8d7145b3ff34fefea2d2f189f2b4 jdk7u14-b17
++c93a35b3638f45de91013d65543217a002577684 jdk7u14-b18
++82be38857de3b2f6d8def98034f3e7b0827fd9f0 jdk7u14-b19
++82be38857de3b2f6d8def98034f3e7b0827fd9f0 jdk7u14-b19
++d63b21e6c3d29305400dbfc1500090cab89f25d1 jdk7u14-b19
++dd695ad6c5ec797fe61db31600a3fd2dbc62247b jdk7u14-b20
++97bbac299eb801709a924fe777b3ee9c96829d8b jdk7u14-b21
++6e74b3e1773cfbac99998431a5a54c70baaf1dc5 jdk7u14-b22
++e9bbdf789d2b512550e0ca80629980e96f02146d jdk7u40-b23
++adaf9cf486fab1b14c5af9fc6525565760bb9c11 jdk7u40-b24
++aafab1efbd4ced5e05695aa1887813f9f5de9d5c jdk7u40-b25
++6581f9739031120bb7515d3b09fa3501653d11af jdk7u40-b26
++46ebac943288218b14d7ce3df23aa42a70fa4cf9 jdk7u40-b27
++016957700ac905ebf3432ae8ba17d3576a51e585 jdk7u40-b28
++15a82c84d9f7f6c99310380d4766fc68a3882671 jdk7u40-b29
+ 4c5d242efa0d6e0cdb688e41e722bff671dfbfec jdk7u25-b12
+ 6b4a165221304d809f678a18f51c7a8cb042d60b jdk7u25-b13
+ 03073e4e6d3f600102d31e862154f56730838b11 jdk7u25-b14
+@@ -343,3 +360,20 @@
+ 89f6c9663d75d9e4b672aed16f885b84232e9c93 jdk7u40-b42
+ 3ee85b3793de16855e20272336a3565af8477b6b jdk7u40-b43
+ cbeef786ce489096c39ec5effee4f8f9e770b4af jdk7u40-b60
++000becfcb945d8592cfdef6ef1704b532af56762 jdk7u45-b01
++817632baca26f7566e36c7708455494c15113d88 jdk7u45-b02
++f65baba9400aec6cb29bc06b3139623bb4663225 jdk7u45-b03
++80ff2468f520ed1940915815ceb85e05bd2bc568 jdk7u45-b04
++1128d3934b643660a219532aa1ca554877d89375 jdk7u45-b05
++8da3d41d946925a07a9f1001795959bfdb4c02c6 jdk7u45-b06
++38f5b376c38035f13ede456f158ee26d0cf8d99c jdk7u45-b07
++86f3efd1edae3c0f47ad14bef992e7566eaa94d4 jdk7u45-b08
++ab835f7247e40dd7fb457830eaa31c550b434413 jdk7u45-b09
++bbd594e6cf45ebfc37c71e217772b7f37a9c5750 jdk7u45-b10
++c01eab96821e3c0315c4637e61a8015cbfe63b6a jdk7u45-b11
++05f1274a8aa019584b4ceb05c73fc89bf7b7f4de jdk7u45-b12
++3271849829b7c8ac32f6bb17b763d8a85a1a0a32 jdk7u45-b13
++842dd63be9c633b8448e1837a5bb7b803dfdaad9 jdk7u45-b14
++93a3fb090be58a5a45464f866a7093f24205dae2 jdk7u45-b15
++5524cced32d3959d95ed414add230273bc10c38d jdk7u45-b16
++a8baf22b5972e269a97f7b3b7eec2ad63a8c5aed jdk7u45-b17
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/InstanceResolver.java 2013-09-06 11:24:04.000000000 -0700
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/InstanceResolver.java 2013-12-01 11:13:43.000000000 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -16471,111 +11398,18 @@
* 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 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);
+@@ -232,7 +232,7 @@
+ public Object invoke(Packet p, Method m, Object... args) throws InvocationTargetException, IllegalAccessException {
+ T t = resolve(p);
+ try {
+- return m.invoke(t, args );
++ return MethodUtil.invoke(t, m, args );
+ } finally {
+ postInvoke(p,t);
}
-@@ -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 @@
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/MethodUtil.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/MethodUtil.java 2013-12-01 11:13:43.000000000 -0800
+@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -16601,127 +11435,174 @@
+ * questions.
+ */
+
-+package com.sun.xml.internal.org.jvnet.mimepull;
++package com.sun.xml.internal.ws.api.server;
+
-+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.
++ * Utility class to invoke sun.reflect.misc.MethodUtil.invoke() if available. If not (other then Oracle JDK) fallbacks
++ * to java.lang,reflect.Method.invoke()
++ *
++ * Be careful, copy of this class exists in several packages, iny modification must be done to other copies too!
+ */
-+class TempFiles {
++class MethodUtil {
+
-+ 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;
++ private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName());
++ private static final Method INVOKE_METHOD;
+
+ 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;
++ Method method;
+ 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);
++ Class> clazz = Class.forName("sun.reflect.misc.MethodUtil");
++ method = clazz.getMethod("invoke", Method.class, Object.class, Object[].class);
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil found; it will be used to invoke methods.");
++ }
++ } catch (Throwable t) {
++ method = null;
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil not found, probably non-Oracle JVM");
+ }
+ }
-+
++ INVOKE_METHOD = method;
+ }
+
++ static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException {
++ if (INVOKE_METHOD != null) {
++ // sun.reflect.misc.MethodUtil.invoke(method, owner, args)
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil");
++ }
++ try {
++ return INVOKE_METHOD.invoke(null, method, target, args);
++ } catch (InvocationTargetException ite) {
++ // unwrap invocation exception added by reflection code ...
++ throw unwrapException(ite);
++ }
++ } else {
++ // other then Oracle JDK ...
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method directly, probably non-Oracle JVM");
++ }
++ return method.invoke(target, args);
++ }
++ }
++
++ private static InvocationTargetException unwrapException(InvocationTargetException ite) {
++ Throwable targetException = ite.getTargetException();
++ if (targetException != null && targetException instanceof InvocationTargetException) {
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Unwrapping invocation target exception");
++ }
++ return (InvocationTargetException) targetException;
++ } else {
++ return ite;
++ }
++ }
+
+}
---- 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
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/MethodUtil.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/MethodUtil.java 2013-12-01 11:13:43.000000000 -0800
+@@ -0,0 +1,94 @@
++/*
++ * 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.ws.client.sei;
++
++import java.lang.reflect.InvocationTargetException;
++import java.lang.reflect.Method;
++import java.util.logging.Level;
++import java.util.logging.Logger;
++
++/**
++ * Utility class to invoke sun.reflect.misc.MethodUtil.invoke() if available. If not (other then Oracle JDK) fallbacks
++ * to java.lang,reflect.Method.invoke()
++ *
++ * Be careful, copy of this class exists in several packages, iny modification must be done to other copies too!
++ */
++class MethodUtil {
++
++ private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName());
++ private static final Method INVOKE_METHOD;
++
++ static {
++ Method method;
++ try {
++ Class> clazz = Class.forName("sun.reflect.misc.MethodUtil");
++ method = clazz.getMethod("invoke", Method.class, Object.class, Object[].class);
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil found; it will be used to invoke methods.");
++ }
++ } catch (Throwable t) {
++ method = null;
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil not found, probably non-Oracle JVM");
++ }
++ }
++ INVOKE_METHOD = method;
++ }
++
++ static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException {
++ if (INVOKE_METHOD != null) {
++ // sun.reflect.misc.MethodUtil.invoke(method, owner, args)
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil");
++ }
++ try {
++ return INVOKE_METHOD.invoke(null, method, target, args);
++ } catch (InvocationTargetException ite) {
++ // unwrap invocation exception added by reflection code ...
++ throw unwrapException(ite);
++ }
++ } else {
++ // other then Oracle JDK ...
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method directly, probably non-Oracle JVM");
++ }
++ return method.invoke(target, args);
++ }
++ }
++
++ private static InvocationTargetException unwrapException(InvocationTargetException ite) {
++ Throwable targetException = ite.getTargetException();
++ if (targetException != null && targetException instanceof InvocationTargetException) {
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Unwrapping invocation target exception");
++ }
++ return (InvocationTargetException) targetException;
++ } else {
++ return ite;
++ }
++ }
++
++}
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java 2013-09-06 11:24:05.000000000 -0700
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java 2013-12-01 11:13:43.000000000 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -16729,426 +11610,33200 @@
* 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;
-
+@@ -28,17 +28,20 @@
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.istack.internal.Nullable;
+ import com.sun.xml.internal.ws.api.SOAPVersion;
+-import com.sun.xml.internal.ws.api.client.WSPortInfo;
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.api.client.WSPortInfo;
+ import com.sun.xml.internal.ws.api.message.Header;
+ import com.sun.xml.internal.ws.api.message.Headers;
+ import com.sun.xml.internal.ws.api.message.Packet;
+ import com.sun.xml.internal.ws.api.model.MEP;
+ import com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundOperation;
+-import com.sun.xml.internal.ws.api.pipe.Tube;
+ import com.sun.xml.internal.ws.api.pipe.Fiber;
++import com.sun.xml.internal.ws.api.pipe.Tube;
+ import com.sun.xml.internal.ws.binding.BindingImpl;
+-import com.sun.xml.internal.ws.client.*;
++import com.sun.xml.internal.ws.client.RequestContext;
++import com.sun.xml.internal.ws.client.ResponseContextReceiver;
++import com.sun.xml.internal.ws.client.Stub;
++import com.sun.xml.internal.ws.client.WSServiceDelegate;
+ import com.sun.xml.internal.ws.model.JavaMethodImpl;
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;
+ import com.sun.xml.internal.ws.wsdl.OperationDispatcher;
+@@ -47,6 +50,8 @@
+ import java.lang.reflect.InvocationHandler;
+ import java.lang.reflect.InvocationTargetException;
+ import java.lang.reflect.Method;
++import java.lang.reflect.Modifier;
++import java.lang.reflect.Proxy;
+ import java.util.HashMap;
+ import java.util.Map;
-@@ -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;
+@@ -124,13 +129,14 @@
+ private final Map methodHandlers = new HashMap();
-+import static com.sun.xml.internal.ws.util.xml.XmlUtil.createDefaultCatalogResolver;
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
++ validateInputs(proxy, method);
+ MethodHandler handler = methodHandlers.get(method);
+ if (handler != null) {
+ return handler.invoke(proxy, args);
+ } else {
+ // we handle the other method invocations by ourselves
+ try {
+- return method.invoke(this, args);
++ return MethodUtil.invoke(this, method, args);
+ } catch (IllegalAccessException e) {
+ // impossible
+ throw new AssertionError(e);
+@@ -142,6 +148,17 @@
+ }
+ }
+
++ private void validateInputs(Object proxy, Method method) {
++ if (proxy == null || !Proxy.isProxyClass(proxy.getClass())) {
++ throw new IllegalStateException("Passed object is not proxy!");
++ }
++ Class> declaringClass = method.getDeclaringClass();
++ if (method == null || declaringClass == null
++ || Modifier.isStatic(method.getModifiers())) {
++ throw new IllegalStateException("Invoking static method is not allowed!");
++ }
++ }
+
- /**
- * Service objects provide the client view of a Web service.
+ public final Packet doProcess(Packet request, RequestContext rc, ResponseContextReceiver receiver) {
+ return super.process(request, rc, receiver);
+ }
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java 2013-12-01 11:13:43.000000000 -0800
+@@ -0,0 +1,92 @@
++/*
++ * 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.ws.policy.privateutil;
++
++import java.lang.reflect.InvocationTargetException;
++import java.lang.reflect.Method;
++import java.util.logging.Level;
++import java.util.logging.Logger;
++
++/**
++ * Utility class to invoke sun.reflect.misc.MethodUtil.invoke() if available. If not (other then Oracle JDK) fallbacks
++ * to java.lang,reflect.Method.invoke()
++ */
++class MethodUtil {
++
++ private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName());
++ private static final Method INVOKE_METHOD;
++
++ static {
++ Method method;
++ try {
++ Class> clazz = Class.forName("sun.reflect.misc.MethodUtil");
++ method = clazz.getMethod("invoke", Method.class, Object.class, Object[].class);
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil found; it will be used to invoke methods.");
++ }
++ } catch (Throwable t) {
++ method = null;
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil not found, probably non-Oracle JVM");
++ }
++ }
++ INVOKE_METHOD = method;
++ }
++
++ static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException {
++ if (INVOKE_METHOD != null) {
++ // sun.reflect.misc.MethodUtil.invoke(method, owner, args)
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil");
++ }
++ try {
++ return INVOKE_METHOD.invoke(null, method, target, args);
++ } catch (InvocationTargetException ite) {
++ // unwrap invocation exception added by reflection code ...
++ throw unwrapException(ite);
++ }
++ } else {
++ // other then Oracle JDK ...
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method directly, probably non-Oracle JVM");
++ }
++ return method.invoke(target, args);
++ }
++ }
++
++ private static InvocationTargetException unwrapException(InvocationTargetException ite) {
++ Throwable targetException = ite.getTargetException();
++ if (targetException != null && targetException instanceof InvocationTargetException) {
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Unwrapping invocation target exception");
++ }
++ return (InvocationTargetException) targetException;
++ } else {
++ return ite;
++ }
++ }
++
++}
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyUtils.java 2013-09-06 11:24:07.000000000 -0700
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyUtils.java 2013-12-01 11:13:43.000000000 -0800
+@@ -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.
*
-@@ -578,7 +575,7 @@
+ * This code is free software; you can redistribute it and/or modify it
+@@ -282,13 +282,13 @@
+ /**
+ * Reflection utilities wrapper
+ */
+- public static class Reflection {
++ static class Reflection {
+ private static final PolicyLogger LOGGER = PolicyLogger.getLogger(PolicyUtils.Reflection.class);
+
+ /**
+ * Reflectively invokes specified method on the specified target
+ */
+- public static T invoke(final Object target, final String methodName,
++ static T invoke(final Object target, final String methodName,
+ final Class resultClass, final Object... parameters) throws RuntimePolicyUtilsException {
+ Class[] parameterTypes;
+ if (parameters != null && parameters.length > 0) {
+@@ -311,7 +311,7 @@
+ final Object[] parameters, final Class[] parameterTypes) throws RuntimePolicyUtilsException {
+ try {
+ final Method method = target.getClass().getMethod(methodName, parameterTypes);
+- final Object result = method.invoke(target, parameters);
++ final Object result = MethodUtil.invoke(target, method,parameters);
+
+ return resultClass.cast(result);
+ } catch (IllegalArgumentException e) {
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/AbstractInstanceResolver.java 2013-09-06 11:24:07.000000000 -0700
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/AbstractInstanceResolver.java 2013-12-01 11:13:43.000000000 -0800
+@@ -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
+@@ -157,7 +157,7 @@
+ if (!method.isAccessible()) {
+ method.setAccessible(true);
+ }
+- method.invoke(instance,args);
++ MethodUtil.invoke(instance,method,args);
+ } catch (IllegalAccessException e) {
+ throw new ServerRtException("server.rt.err",e);
+ } catch (InvocationTargetException e) {
+--- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/MethodUtil.java 1969-12-31 16:00:00.000000000 -0800
++++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/MethodUtil.java 2013-12-01 11:13:43.000000000 -0800
+@@ -0,0 +1,94 @@
++/*
++ * 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.ws.server;
++
++import java.lang.reflect.InvocationTargetException;
++import java.lang.reflect.Method;
++import java.util.logging.Level;
++import java.util.logging.Logger;
++
++/**
++ * Utility class to invoke sun.reflect.misc.MethodUtil.invoke() if available. If not (other then Oracle JDK) fallbacks
++ * to java.lang,reflect.Method.invoke()
++ *
++ * Be careful, copy of this class exists in several packages, iny modification must be done to other copies too!
++ */
++class MethodUtil {
++
++ private static final Logger LOGGER = Logger.getLogger(MethodUtil.class.getName());
++ private static final Method INVOKE_METHOD;
++
++ static {
++ Method method;
++ try {
++ Class> clazz = Class.forName("sun.reflect.misc.MethodUtil");
++ method = clazz.getMethod("invoke", Method.class, Object.class, Object[].class);
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil found; it will be used to invoke methods.");
++ }
++ } catch (Throwable t) {
++ method = null;
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Class sun.reflect.misc.MethodUtil not found, probably non-Oracle JVM");
++ }
++ }
++ INVOKE_METHOD = method;
++ }
++
++ static Object invoke(Object target, Method method, Object[] args) throws IllegalAccessException, InvocationTargetException {
++ if (INVOKE_METHOD != null) {
++ // sun.reflect.misc.MethodUtil.invoke(method, owner, args)
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method using sun.reflect.misc.MethodUtil");
++ }
++ try {
++ return INVOKE_METHOD.invoke(null, method, target, args);
++ } catch (InvocationTargetException ite) {
++ // unwrap invocation exception added by reflection code ...
++ throw unwrapException(ite);
++ }
++ } else {
++ // other then Oracle JDK ...
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Invoking method directly, probably non-Oracle JVM");
++ }
++ return method.invoke(target, args);
++ }
++ }
++
++ private static InvocationTargetException unwrapException(InvocationTargetException ite) {
++ Throwable targetException = ite.getTargetException();
++ if (targetException != null && targetException instanceof InvocationTargetException) {
++ if (LOGGER.isLoggable(Level.FINE)) {
++ LOGGER.log(Level.FINE, "Unwrapping invocation target exception");
++ }
++ return (InvocationTargetException) targetException;
++ } else {
++ return ite;
++ }
++ }
++
++}
+--- jdk/.hgtags 2013-09-06 11:27:36.000000000 -0700
++++ jdk/.hgtags 2013-12-01 12:37:36.000000000 -0800
+@@ -123,6 +123,7 @@
+ 539e576793a8e64aaf160e0d6ab0b9723cd0bef0 jdk7-b146
+ 69e973991866c948cf1808b06884ef2d28b64fcb jdk7u1-b01
+ f097ca2434b1412b12ab4a5c2397ce271bf681e7 jdk7-b147
++0870207843e2a74816dff1e33a717ffaf6f0a919 7u0
+ 2baf612764d215e6f3a5b48533f74c6924ac98d7 jdk7u1-b02
+ a4781b6d9cfb6901452579adee17c9a17c1b584c jdk7u1-b03
+ b223ed9a5fdf8ce3af42adfa8815975811d70eae jdk7u1-b04
+@@ -342,3 +343,21 @@
+ b479996d5c924128c3490165b592bf66a3034932 jdk7u40-b42
+ fb25cdef17e9610db5cb89fc35c0c4abef5ad781 jdk7u40-b43
+ ed444a09a5fd32237deaef6e43804e20ba4f6352 jdk7u40-b60
++55f01444cf58c8004df9a9634c1bd7ff87caa370 jdk7u25-b32
++b06abd965701459a868e88af9a3e564c0301971c jdk7u45-b01
++d23a877da2d5dad6520a268c83f183295a9e7299 jdk7u45-b02
++a56eb4f801232c409d34cd1190df4eec5fefe8a9 jdk7u45-b03
++702c8d83dd8c5b6c76fe53a694244a36d23fa860 jdk7u45-b04
++a70540e8a5e96773b83c7dc0accdb323d946c045 jdk7u45-b05
++f39399baf36761571719f6ff5dc69c514d97842d jdk7u45-b06
++a35d4a4ebcfa895202544c2f6b2d09e0b29bddfc jdk7u45-b07
++2f01847eb9530ed5ec08b1b663f3a02cac57b048 jdk7u45-b08
++6e2313d45f0c50d824531b32d3f577aa0b357551 jdk7u45-b09
++d4506b816f63330489e00ba0b9e3c6583a8a9efa jdk7u45-b10
++ee87452ba9e2b4b7d847bd2a7910a8aaeacfea7b jdk7u45-b11
++d5e393a55e6adc2f1b9aaa752a5004fa07561480 jdk7u45-b12
++34997920efe962b2e4422e2c2de8ae91cd1d563d jdk7u45-b13
++59a78e4ca635a469a763ee408b11f8e1033f2584 jdk7u45-b14
++96782fe0c38c41cc4806e27ee64b20dc647ea808 jdk7u45-b15
++3c9a6d9eafd31be44b0ade0354e60f5078b417a4 jdk7u45-b16
++3a65c1b0c6d15fb24298bcd133d7ab4baa741ae2 jdk7u45-b17
+--- jdk/make/bridge/Jabswitch/Makefile 2013-09-06 11:27:36.000000000 -0700
++++ jdk/make/bridge/Jabswitch/Makefile 2013-12-01 11:14:27.000000000 -0800
+@@ -53,7 +53,7 @@
+ buildexe :
+ $(CD) $(TEMPDIR)
+ $(RC) $(RC_FLAGS) $(VERSIONINFO_RESOURCE)
+- $(CC) $(CPPFLAGS) $(JAB_SRC) $(LDDFLAGS) $(VERSIONRES) -o $(JAB_EXE)
++ $(CC) $(CPPFLAGS) $(JAB_SRC) $(VERSIONRES) /link $(LDDFLAGS) -out:$(JAB_EXE)
+ $(MT) /nologo /verbose /manifest $(JAB_MANIFEST_INP) /outputresource:$(JAB_EXE)
+
+ copyfilejab :
+--- jdk/make/com/sun/jmx/Makefile 2013-09-06 11:27:36.000000000 -0700
++++ jdk/make/com/sun/jmx/Makefile 2013-12-01 11:14:27.000000000 -0800
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2003, 2012, 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
+@@ -115,6 +115,8 @@
+
+ ifeq ($(CROSS_COMPILE_ARCH),)
+ RMIC = $(RMIC_JAVA) $(JAVA_TOOLS_FLAGS) -cp $(OUTPUTDIR)/classes sun.rmi.rmic.Main
++else
++RMIC = $(BOOT_JAVA_CMD) $(JAVA_TOOLS_FLAGS) -cp $(OUTPUTDIR)/classes sun.rmi.rmic.Main
+ endif
+
+ $(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class
+@@ -130,11 +132,13 @@
+ $(RMIC) -classpath "$(CLASSDESTDIR)" \
+ -d $(CLASSDESTDIR) \
+ -iiop -v1.2 \
++ -emitPermissionCheck \
+ $(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%))
+ $(RMIC) $(HOTSPOT_INTERPRETER_FLAG) -classpath "$(CLASSDESTDIR)" \
+ -d $(CLASSDESTDIR) \
+ -iiop -v1.2 \
+ -standardPackage \
++ -emitPermissionCheck \
+ $(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%))
+ @$(java-vm-cleanup)
+
+--- jdk/make/com/sun/nio/Makefile 2013-09-06 11:27:36.000000000 -0700
++++ jdk/make/com/sun/nio/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -31,11 +31,18 @@
+ include $(BUILDDIR)/common/Defs.gmk
+
+ # MMM: disable for now
+-ifneq ($(PLATFORM), macosx)
++ifeq (,$(findstring $(PLATFORM), bsd macosx))
+ include $(BUILDDIR)/common/Subdirs.gmk
+ SUBDIRS = sctp
+ endif
+
++ifeq ($(OS_VENDOR), FreeBSD)
++# FreeBSD 5.x and lower are unsupported, 6.x has no sctp support.
++ifneq ($(call MajorVersion,$(shell uname -r)), 6)
++include $(BUILDDIR)/common/Subdirs.gmk
++SUBDIRS = sctp
++endif
++endif
+
+ all build clean clobber::
+ $(SUBDIRS-loop)
+--- jdk/make/com/sun/nio/sctp/Makefile 2013-09-06 11:27:36.000000000 -0700
++++ jdk/make/com/sun/nio/sctp/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -59,15 +59,11 @@
+ -I$(PLATFORM_SRC)/native/java/net \
+ -I$(CLASSHDRDIR)/../../../../java/java.nio/nio/CClassHeaders
+
++OTHER_LDLIBS += $(LIBSOCKET) -L$(LIBDIR)/$(LIBARCH) -lnet -lnio
+ ifeq ($(PLATFORM), linux)
+ COMPILER_WARNINGS_FATAL=true
+-#OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread -ldl
+-OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -lnio -lnet -lpthread -ldl
++OTHER_LDLIBS += -lpthread $(LIBDL)
+ endif
+-ifeq ($(PLATFORM), solaris)
+-#LIBSCTP = -lsctp
+-OTHER_LDLIBS += $(LIBSOCKET) -L$(LIBDIR)/$(LIBARCH) -lnet -lnio
+-endif # PLATFORM
+
+ else # windows
+ include $(BUILDDIR)/common/Classes.gmk
+--- jdk/make/com/sun/security/auth/module/Makefile 2013-09-06 11:27:36.000000000 -0700
++++ jdk/make/com/sun/security/auth/module/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -67,7 +67,7 @@
+ include FILES_c_solaris.gmk
+ endif # solaris
+
+-ifneq (,$(findstring $(PLATFORM), linux macosx))
++ifneq (,$(findstring $(PLATFORM), linux bsd macosx))
+ LIBRARY = jaas_unix
+ include FILES_export_unix.gmk
+ include FILES_c_unix.gmk
+--- jdk/make/com/sun/tools/attach/Exportedfiles.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/com/sun/tools/attach/Exportedfiles.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -43,7 +43,7 @@
+ sun/tools/attach/LinuxVirtualMachine.java
+ endif
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ FILES_export = \
+ sun/tools/attach/BsdVirtualMachine.java
+ endif
+--- jdk/make/com/sun/tools/attach/FILES_c.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/com/sun/tools/attach/FILES_c.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -39,7 +39,7 @@
+ LinuxVirtualMachine.c
+ endif
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ FILES_c = \
+ BsdVirtualMachine.c
+ endif
+--- jdk/make/com/sun/tools/attach/FILES_java.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/com/sun/tools/attach/FILES_java.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -43,7 +43,7 @@
+ sun/tools/attach/LinuxAttachProvider.java
+ endif
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ FILES_java += \
+ sun/tools/attach/BsdAttachProvider.java
+ endif
+--- jdk/make/com/sun/tools/attach/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/com/sun/tools/attach/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -38,7 +38,7 @@
+ ifeq ($(PLATFORM), linux)
+ FILES_m = mapfile-linux
+ endif
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ FILES_m = mapfile-bsd
+ endif
+ include $(BUILDDIR)/common/Mapfile-vers.gmk
+@@ -57,7 +57,7 @@
+ EXTRA_LIBS += psapi.lib
+ endif
+
+-ifeq ($PLATFORM), macosx)
++ifeq ($(PLATFORM), macosx)
+ vpath %.c $(call NativeSrcDirList,,native/sun/tools/attach)
+ else
+ vpath %.c $(PLATFORM_SRC)/native/sun/tools/attach
+--- jdk/make/com/sun/tools/attach/mapfile-bsd 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/com/sun/tools/attach/mapfile-bsd 2013-12-01 12:37:33.000000000 -0800
+@@ -30,6 +30,7 @@
+ Java_sun_tools_attach_BsdVirtualMachine_checkPermissions;
+ Java_sun_tools_attach_BsdVirtualMachine_close;
+ Java_sun_tools_attach_BsdVirtualMachine_connect;
++ Java_sun_tools_attach_BsdVirtualMachine_getTempDir;
+ Java_sun_tools_attach_BsdVirtualMachine_open;
+ Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo;
+ Java_sun_tools_attach_BsdVirtualMachine_socket;
+--- jdk/make/common/Defs-bsd.gmk 1969-12-31 16:00:00.000000000 -0800
++++ jdk/make/common/Defs-bsd.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -0,0 +1,490 @@
++#
++# 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
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
++
++#
++# Makefile to specify compiler flags for programs and libraries
++# targeted to BSD. Should not contain any rules.
++#
++# WARNING: This file is shared with other workspaces.
++# So when it includes other files, it must use JDK_TOPDIR.
++#
++
++# Warning: the following variables are overriden by Defs.gmk. Set
++# values will be silently ignored:
++# CFLAGS (set $(OTHER_CFLAGS) instead)
++# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
++# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
++# LDFLAGS (set $(OTHER_LDFAGS) instead)
++# LDLIBS (set $(EXTRA_LIBS) instead)
++# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
++
++# Get shared JDK settings
++include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
++
++# Part of INCREMENTAL_BUILD mechanism.
++# Compiler emits things like: path/file.o: file.h
++# We want something like: relative_path/file.o relative_path/file.d: file.h
++CC_DEPEND = -MM
++CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
++
++ifndef PLATFORM_SRC
++ PLATFORM_SRC = $(BUILDDIR)/../src/solaris
++endif # PLATFORM_SRC
++
++# Location of the various .properties files specific to BSD platform
++ifndef PLATFORM_PROPERTIES
++ PLATFORM_PROPERTIES = $(BUILDDIR)/../src/solaris/lib
++endif # PLATFORM_SRC
++
++# BSD build pulls its platform sources from the solaris tree.
++JAVA_SRCDIR_LIST = src/macosx src/solaris src/share
++NATIVE_SRCDIR_LIST = src/macosx src/solaris src/share
++
++# Platform specific closed sources
++ifndef OPENJDK
++ ifndef CLOSED_PLATFORM_SRC
++ CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
++ endif
++endif
++
++# platform specific include files
++PLATFORM_INCLUDE_NAME = $(OS_NAME)
++PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
++
++# suffix used for make dependencies files.
++DEPEND_SUFFIX = d
++# The suffix applied to the library name for FDLIBM
++FDDLIBM_SUFFIX = a
++# The suffix applied to scripts (.bat for windows, nothing for unix)
++SCRIPT_SUFFIX =
++# CC compiler object code output directive flag value
++CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
++CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
++
++# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
++# enabled with debug info files ZIP'ed to save space. For VARIANT !=
++# OPT 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 VARIANT == OPT 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 VARIANT != OPT 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 VARIANT != OPT build.
++
++ifeq ($(VARIANT), OPT)
++ 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 BSD:
++ 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)")
++ # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
++ OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
++ endif
++ endif
++
++ # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the
++ # JDK build to import .debuginfo or .diz files from the HotSpot build.
++ # However, adding FDS support to the JDK build will occur in phases
++ # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
++ # and PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS) is used to indicate that a
++ # particular library or program supports FDS.
++
++ ifeq ($(OBJCOPY),)
++ _JUNK_ := $(shell \
++ echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
++ ENABLE_FULL_DEBUG_SYMBOLS=0
++ 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
++
++#
++# Default optimization
++#
++
++ifndef OPTIMIZATION_LEVEL
++ ifeq ($(PRODUCT), java)
++ OPTIMIZATION_LEVEL = HIGHER
++ else
++ OPTIMIZATION_LEVEL = LOWER
++ endif
++endif
++ifndef FASTDEBUG_OPTIMIZATION_LEVEL
++ FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
++endif
++
++CC_OPT/NONE =
++CC_OPT/LOWER = -O2
++CC_OPT/HIGHER = -O3
++CC_OPT/HIGHEST = -O3
++
++CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
++
++# For all platforms, do not omit the frame pointer register usage.
++# We need this frame pointer to make it easy to walk the stacks.
++# This should be the default on X86, but ia64 and amd64 may not have this
++# as the default.
++CFLAGS_REQUIRED_amd64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
++LDFLAGS_COMMON_amd64 += -m64
++CFLAGS_REQUIRED_i586 += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
++LDFLAGS_COMMON_i586 += -m32
++CFLAGS_REQUIRED_ia64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
++CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
++LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
++CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
++LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
++CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
++CFLAGS_REQUIRED_ppc += -fsigned-char -D_BIG_ENDIAN
++ifeq ($(ZERO_BUILD), true)
++ CFLAGS_REQUIRED = $(ZERO_ARCHFLAG)
++ ifeq ($(ZERO_ENDIANNESS), little)
++ CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
++ endif
++ LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
++else
++ CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
++ LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
++endif
++
++# If this is a --hash-style=gnu system, use --hash-style=both
++# The gnu .hash section won't work on some Linux systems like SuSE 10.
++_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu')
++ifneq ($(_HAS_HASH_STYLE_GNU),)
++ LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
++endif
++LDFLAGS_COMMON += $(LDFLAGS_HASH_STYLE)
++
++#
++# Selection of warning messages
++#
++GCC_INHIBIT = -Wno-unused -Wno-parentheses
++GCC_STYLE =
++GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
++
++#
++# Treat compiler warnings as errors, if warnings not allowed
++#
++ifeq ($(COMPILER_WARNINGS_FATAL),true)
++ GCC_WARNINGS += -Werror
++endif
++
++#
++# Misc compiler options
++#
++ifneq ($(ARCH),ppc)
++ CFLAGS_COMMON = -fno-strict-aliasing
++endif
++PIC_CODE_LARGE = -fPIC
++PIC_CODE_SMALL = -fpic
++GLOBAL_KPIC = $(PIC_CODE_LARGE)
++CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS)
++ifeq ($(ARCH), amd64)
++ CFLAGS_COMMON += -pipe
++endif
++
++# BSD 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
++DEBUG_FLAG = -g
++ifeq ($(FASTDEBUG), true)
++ ifeq ($(ARCH_DATA_MODEL), 64)
++ DEBUG_FLAG = -g1
++ endif
++endif
++
++# DEBUG_BINARIES overrides everything, use full -g debug information
++ifeq ($(DEBUG_BINARIES), true)
++ DEBUG_FLAG = -g
++ CFLAGS_REQUIRED += $(DEBUG_FLAG)
++endif
++
++# If Full Debug Symbols is enabled, then we want the same debug and
++# optimization flags as used by FASTDEBUG.
++#
++ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
++ ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
++ ifeq ($(VARIANT), OPT)
++ CC_OPT = $(DEBUG_FLAG) $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
++ endif
++ endif
++endif
++
++CFLAGS_OPT = $(CC_OPT)
++CFLAGS_DBG = $(DEBUG_FLAG)
++CFLAGS_COMMON += $(CFLAGS_REQUIRED)
++
++CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
++CXXFLAGS_OPT = $(CC_OPT)
++CXXFLAGS_DBG = $(DEBUG_FLAG)
++CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
++
++# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
++ifeq ($(FASTDEBUG), true)
++ CFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
++ CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
++endif
++
++CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
++
++# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
++ifneq ($(ARCH),alpha)
++ CPP_ARCH_FLAGS += -D$(ARCH)
++else
++ CPP_ARCH_FLAGS += -D_$(ARCH)_
++endif
++
++CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -D_ALLBSD_SOURCE $(VERSION_DEFINES) \
++ -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
++
++ifeq ($(ARCH_DATA_MODEL), 64)
++CPPFLAGS_COMMON += -D_LP64=1
++endif
++
++CPPFLAGS_OPT = -DNDEBUG
++CPPFLAGS_DBG = -DDEBUG
++ifneq ($(PRODUCT), java)
++ CPPFLAGS_DBG += -DLOGGING
++endif
++
++# Libraries need to locate other libraries at runtime, and you can tell
++# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
++# buried inside the .so. The $ORIGIN says to look relative to where
++# the library itself is and it can be followed with relative paths from
++# that. By default we always look in $ORIGIN, optionally we add relative
++# paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
++# On BSD we add a flag -z origin, not sure if this is necessary, but
++# doesn't seem to hurt.
++# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
++# Try: 'readelf -d lib*.so' to see these settings in a library.
++#
++Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin
++Z_ORIGIN_FLAG/i586 = -Xlinker -z -Xlinker origin
++Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin
++Z_ORIGIN_FLAG/ia64 = -Xlinker -z -Xlinker origin
++Z_ORIGIN_FLAG/arm =
++Z_ORIGIN_FLAG/ppc =
++Z_ORIGIN_FLAG/zero = -Xlinker -z -Xlinker origin
++
++LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY))
++
++LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN
++LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%)
++
++#
++# -L paths for finding and -ljava
++#
++LDFLAGS_OPT = -Xlinker -O1
++LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
++LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
++
++#
++# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
++# statically link libgcc but will print a warning with the flag. We don't
++# want the warning, so check gcc version first.
++#
++ifeq ($(CC_MAJORVER),3)
++ OTHER_LDFLAGS += -static-libgcc
++endif
++
++# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
++# (See Rules.gmk) The gcc 5 compiler might have an option for this?
++AUTOMATIC_PCH_OPTION =
++
++#
++# Post Processing of libraries/executables
++#
++ifeq ($(VARIANT), OPT)
++ ifneq ($(NO_STRIP), true)
++ ifneq ($(DEBUG_BINARIES), true)
++ # Debug 'strip -S' leaves local function Elf symbols (better stack
++ # traces)
++ POST_STRIP_PROCESS = $(STRIP) -S
++ endif
++ endif
++endif
++
++#
++# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
++#
++LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
++
++#
++# Support for Quantify.
++#
++ifdef QUANTIFY
++QUANTIFY_CMD = quantify
++QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
++LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
++endif
++
++# Using map files currently break compilation on FreeBSD during shared library
++# checks for some of the AWT native libraries.
++ifeq ($(OS_VENDOR), FreeBSD)
++LDNOMAP=true
++endif
++
++#
++# Path and option to link against the VM, if you have to. Note that
++# there are libraries that link against only -ljava, but they do get
++# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
++# the library itself should not.
++#
++VM_NAME = server
++JVMLIB = -L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm
++JAVALIB = -ljava $(JVMLIB)
++
++#
++# We want to privatize JVM symbols on Solaris. This is so the user can
++# write a function called FindClass and this should not override the
++# FindClass that is inside the JVM. At this point in time we are not
++# concerned with other JNI libraries because we hope that there will
++# not be as many clashes there.
++#
++PRIVATIZE_JVM_SYMBOLS = false
++
++USE_PTHREADS = true
++override ALT_CODESET_KEY = _NL_CTYPE_CODESET_NAME
++override AWT_RUNPATH =
++override HAVE_ALTZONE = false
++override HAVE_FILIOH = false
++override HAVE_GETHRTIME = false
++override HAVE_GETHRVTIME = false
++override LEX_LIBRARY = -lfl
++ifeq ($(STATIC_CXX),true)
++override LIBCXX = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
++else
++override LIBCXX = -lstdc++
++endif
++override LIBPOSIX4 =
++override LIBSOCKET =
++override LIBNSL =
++override LIBSCF =
++override LIBTHREAD =
++override LIBDL =
++override MOOT_PRIORITIES = true
++override NO_INTERRUPTIBLE_IO = true
++override OPENWIN_HOME = $(X11_PATH)
++override OPENWIN_LIB = $(OPENWIN_HOME)/lib
++override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
++override SUN_CMM_SUBDIR =
++override THREADS_FLAG = native
++override USE_GNU_M4 = true
++override USING_GNU_TAR = true
++override WRITE_LIBVERSION = false
++
++# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
++# resulting resolved absolute name of the executable in the environment
++# variable EXECNAME. That executable name is then used that to locate the
++# installation area.
++override USE_EXECNAME = true
++
++# If your platform has DPS, it will have Type1 fonts too, in which case
++# it is best to enable DPS support until such time as 2D's rasteriser
++# can fully handle Type1 fonts in all cases. Default is "yes".
++# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
++# DPS (Displayable PostScript) is available on Solaris machines
++HAVE_DPS = no
++
++ifeq ($(OS_VENDOR), FreeBSD)
++ SYSTEM_ZLIB = true
++endif
++
++ifeq ($(OS_VENDOR), OpenBSD)
++ SYSTEM_ZLIB = true
++endif
++
++#
++# Japanese manpages
++#
++JA_SOURCE_ENCODING = eucJP
++JA_TARGET_ENCODINGS = UTF-8
++
++# Settings for the JDI - Serviceability Agent binding.
++HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
++SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
++SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
++SA_DIZ_NAME = $(LIB_PREFIX)saproc.diz
++
++# The JDI - Serviceability Agent binding is not currently supported
++# on ia64.
++ifeq ($(ARCH), ia64)
++ INCLUDE_SA = false
++else
++ INCLUDE_SA = true
++endif
++
++ifdef CROSS_COMPILE_ARCH
++ # X11 headers are not under /usr/include
++ OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
++ OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
++ OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
++endif
+--- jdk/make/common/Defs-linux.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Defs-linux.gmk 2013-12-01 12:37:36.000000000 -0800
+@@ -426,6 +426,7 @@
+ override LIBDL = -ldl
+ override MOOT_PRIORITIES = true
+ override NO_INTERRUPTIBLE_IO = true
++override OPENWIN_HOME = $(X11_PATH)
+ ifeq ($(ARCH), amd64)
+ override OPENWIN_LIB = $(OPENWIN_HOME)/lib64
+ else
+--- jdk/make/common/Defs-solaris.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Defs-solaris.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -753,6 +753,9 @@
+ # Network Services library
+ LIBNSL = -lnsl
+
++# Dynamic Loading library
++LIBDL = -ldl
++
+ # service configuration facility library
+ LIBSCF = -lscf
+
+--- jdk/make/common/Defs.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Defs.gmk 2013-12-01 12:37:36.000000000 -0800
+@@ -179,15 +179,15 @@
+
+ ifdef ALT_FREETYPE_LIB_PATH
+ FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
+- ifeq ($(PLATFORM), macosx)
++ ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ USING_SYSTEM_FT_LIB=true
+ endif
+ else
+ ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+ FREETYPE_LIB_PATH = $(DEVTOOLS_FT_DIR)/lib
+ else
+- ifeq ($(PLATFORM), macosx)
+- FREETYPE_LIB_PATH = /usr/X11R6/lib
++ ifneq (,$(findstring $(PLATFORM), bsd macosx))
++ FREETYPE_LIB_PATH = $(X11_PATH)/lib
+ else
+ FREETYPE_LIB_PATH = /usr/lib
+ endif
+@@ -201,8 +201,8 @@
+ ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
+ FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
+ else
+- ifeq ($(PLATFORM), macosx)
+- FREETYPE_HEADERS_PATH = /usr/X11R6/include
++ ifneq (,$(findstring $(PLATFORM), bsd macosx))
++ FREETYPE_HEADERS_PATH = $(X11_PATH)/include
+ else
+ FREETYPE_HEADERS_PATH = /usr/include
+ endif
+@@ -258,6 +258,10 @@
+ LDLIBS_COMMON = -pthread
+ endif
+
++ ifeq ($(PLATFORM), bsd)
++ LDLIBS_COMMON = -pthread
++ endif
++
+ endif # PROGRAM
+
+ LDLIBS_COMMON += $(EXTRA_LIBS)
+@@ -400,7 +404,7 @@
+ # We define an intermediate variable for Java files because
+ # we use its value later to help define $SOURCEPATH
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ VPATH0.java = $(subst $(ONESPACE),:,$(GENSRCDIR) $(call JavaSrcDirList,,classes))
+ else
+ VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
+--- jdk/make/common/Library.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Library.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -299,8 +299,12 @@
+ ifeq ($(PLATFORM), solaris)
+ $(STRIP) -x $@
+ else
+- # assume Linux
+- $(STRIP) -g $@
++ ifeq ($(PLATFORM), linux)
++ $(STRIP) -g $@
++ else
++ # assume BSD
++ $(STRIP) -S $@
++ endif
+ endif
+ # implied else here is no stripping at all
+ endif
+--- jdk/make/common/Mapfile-vers.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Mapfile-vers.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -76,7 +76,7 @@
+
+ endif # PLATFORM
+
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+
+ ifeq ($(VARIANT), OPT)
+ # OPT build MUST have a mapfile?
+--- jdk/make/common/Program.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Program.gmk 2013-12-01 12:37:36.000000000 -0800
+@@ -95,23 +95,31 @@
+ endif # SYSTEM_ZLIB
+ endif # PLATFORM
+
++ifeq ($(PLATFORM), bsd)
++ LDFLAGS += -Wl,--whole-archive
++ LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
++ LDFLAGS += -Wl,--no-whole-archive
++# Work-around an dlsym(RTLD_DEFAULT) bug in at least FreeBSD & OpenBSD
++ LDFLAGS += -Wl,--export-dynamic
++ ifeq ($(SYSTEM_ZLIB),true)
++ OTHER_LDLIBS += -lz
++ endif
++endif #PLATFORM
++
+ ifneq (,$(findstring $(PLATFORM), linux solaris)) # UNIX systems
+ LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
+ OTHER_LDLIBS += -ljli
+ ifeq ($(PLATFORM), solaris)
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ LDFLAGS += -R \$$ORIGIN/../lib/$(LIBARCH)/jli
+- LDFLAGS += -R \$$ORIGIN/../jre/lib/$(LIBARCH)/jli
+ else # ! ARCH_DATA_MODEL 64-bit
+ LDFLAGS += -R \$$ORIGIN/../../lib/$(LIBARCH)/jli
+- LDFLAGS += -R \$$ORIGIN/../../jre/lib/$(LIBARCH)/jli
+ endif # ARCH_DATA_MODEL
+ endif # PLATFORM SOLARIS
+ ifeq ($(PLATFORM), linux)
+ LDFLAGS += $(LDFLAG_Z_ORIGIN)
+ LDFLAGS += -Wl,--allow-shlib-undefined
+ LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli
+- LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)/jli
+ endif # PLATFORM LINUX
+ endif # PLATFORM linux solaris
+
+@@ -226,6 +234,11 @@
+ INFO_PLIST_FILE=
+ endif # MACOSX
+
++ ifeq ($(PLATFORM), bsd)
++ THREADLIBS = -pthread
++ OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
++ endif
++
+ #
+ # This rule only applies on unix. It supports quantify and its ilk.
+ #
+@@ -280,8 +293,12 @@
+ ifeq ($(PLATFORM), solaris)
+ $(STRIP) -x $@
+ else
+- # assume Linux
+- $(STRIP) -g $@
++ ifeq ($(PLATFORM), linux)
++ $(STRIP) -g $@
++ else
++ # assume BSD
++ $(STRIP) -S $@
++ endif
+ endif
+ # implied else here is no stripping at all
+ endif
+@@ -349,7 +366,9 @@
+
+
+ ifneq ($(PLATFORM), windows)
+- HAVE_GETHRTIME=true
++ ifneq ($(PLATFORM), bsd)
++ HAVE_GETHRTIME=true
++ endif
+ endif #PLATFORM
+
+ ifeq ($(HAVE_GETHRTIME),true)
+@@ -359,12 +378,10 @@
+ OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC)/bin -I$(LAUNCHER_PLATFORM_SRC)/bin
+ ifeq ($(PLATFORM), macosx)
+ OTHER_INCLUDES += -I$(LAUNCHER_SOLARIS_PLATFORM_SRC)/bin
+- ifneq ($(SYSTEM_ZLIB), true)
+- OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
+- endif # SYSTEM_ZLIB
+-else # PLATFORM !MACOSX
++endif # PLATFORM
++ifneq ($(SYSTEM_ZLIB), true)
+ OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
+-endif
++endif # SYSTEM_ZLIB
+
+ OTHER_CPPFLAGS += -DPROGNAME='"$(PROGRAM)"'
+ VERSION_DEFINES += -DFULL_VERSION='"$(FULL_VERSION)"'
+--- jdk/make/common/Release.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Release.gmk 2013-12-01 12:37:36.000000000 -0800
+@@ -180,6 +180,12 @@
+ JA_DIRNAME=ja_JP.UTF-8
+ endif # linux
+
++ifeq ($(PLATFORM), bsd)
++ MANBASEDIRS=$(JDK_TOPDIR)/src/linux/doc $(IMPORTDOCDIR)
++ MAN1SUBDIR=man
++ JA_DIRNAME=ja_JP.UTF-8
++endif # linux
++
+ define copy-man-pages
+ $(MKDIR) -p $1/man/man1
+ for manbase in $(MANBASEDIRS:%=%/$(MAN1SUBDIR)) ; do \
+@@ -982,6 +988,11 @@
+ endif
+ $(RM) -rf $(JDK_IMAGE_DIR)/jre/man
+ $(CHMOD) a+rx `$(FIND) $(JDK_IMAGE_DIR) -type d`
++ ifneq (,$(findstring $(PLATFORM), linux solaris)) # If linux or solaris
++ ($(CD) $(LIBDIR)/.. && $(TAR) cf - \
++ `$(FIND) lib -name $(LIB_PREFIX)jli.$(LIB_SUFFIX) -print `) | \
++ ($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -)
++ endif # PLATFORM
+
+ initial-image-jdk64-bindemos:
+ for dir in bin demo ; do \
+@@ -1025,12 +1036,18 @@
+ FILES_launcher = $(wildcard $(SHARE_SRC)/bin/*) \
+ $(wildcard $(PLATFORM_SRC)/bin/java_md*)
+
++ifeq ($(OS_VENDOR), OpenBSD)
++ FILES_FROM_ARG=-I
++else
++ FILES_FROM_ARG=-T
++endif
++
+ # Standard jdk image
+ initial-image-jdk:: initial-image-jdk-setup \
+ initial-image-jdk-db \
+ $(JDK_DOCFILES) \
+ $(JDK_DEMOS_AND_SAMPLES_DOCFILES)
+- $(MKDIR) $(JDK_IMAGE_DIR)/lib
++ $(MKDIR) -p $(JDK_IMAGE_DIR)/lib
+ @#
+ @# Copy in the jars in lib that only belong in the JDK
+ @#
+@@ -1112,7 +1129,7 @@
+ @# So for Linux, make use of the -T option (like Solaris' -I option) of
+ @# obtaining the list of files from a file. MKS tar has no such option.
+
+- ifneq (,$(findstring $(PLATFORM), linux macosx))
++ ifneq (,$(findstring $(PLATFORM), linux macosx bsd))
+ for d in $(SOURCE_DIRS); do \
+ $(RM) $(ABS_TEMPDIR)/src-files.list; \
+ ($(CD) $$d && \
+@@ -1125,7 +1142,7 @@
+ done ; \
+ ) ; \
+ if [ -f $(ABS_TEMPDIR)/src-files.list ] ; then \
+- ($(CD) $$d && $(TAR) cf - -T $(ABS_TEMPDIR)/src-files.list ) \
++ ($(CD) $$d && $(TAR) cf - $(FILES_FROM_ARG) $(ABS_TEMPDIR)/src-files.list ) \
+ | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \
+ fi; \
+ done
+--- jdk/make/common/Rules.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/Rules.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -51,7 +51,7 @@
+ #
+ # All source tree areas for java/properties files (a few may be closed)
+ #
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ ifdef OPENJDK
+ ALL_CLASSES_SRC = $(call JavaSrcDirList,,classes)
+ else
+@@ -212,7 +212,7 @@
+ $(CLASSDESTDIR)/%.class: $(GENSRCDIR)/%.java
+ @$(add-java-file)
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ # TODO(cpc): need to document why this is necessary...
+ $(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
+ @$(add-java-file)
+--- jdk/make/common/shared/Compiler-gcc.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/shared/Compiler-gcc.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -72,6 +72,21 @@
+
+ endif
+
++ifeq ($(PLATFORM), bsd)
++
++ # Settings specific to BSD
++ CC = $(COMPILER_PATH)gcc
++ CPP = $(COMPILER_PATH)gcc -E
++ CXX = $(COMPILER_PATH)g++
++
++ # Option used to create a shared library
++ ifeq ($(OS_VENDOR), Apple)
++ SHARED_LIBRARY_FLAG = -dynamiclib
++ else
++ SHARED_LIBRARY_FLAG = -shared
++ endif
++endif
++
+ ifeq ($(PLATFORM), solaris)
+
+ # Settings specific to Solaris
+--- jdk/make/common/shared/Defs-bsd.gmk 1969-12-31 16:00:00.000000000 -0800
++++ jdk/make/common/shared/Defs-bsd.gmk 2013-12-02 20:18:12.000000000 -0800
+@@ -0,0 +1,267 @@
++#
++# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit www.oracle.com if you need additional information or have any
++# questions.
++#
++
++#
++# Definitions for BSD.
++#
++
++# Default for COMPILER_WARNINGS_FATAL on BSD (C & C++ compiler warnings)
++ifndef COMPILER_WARNINGS_FATAL
++ COMPILER_WARNINGS_FATAL=false
++endif
++
++# BSD should use parallel compilation for best build times
++ifndef COMPILE_APPROACH
++ COMPILE_APPROACH = parallel
++endif
++
++# Indication that we are doing an incremental build.
++# This may trigger the creation of make depend files.
++ifndef INCREMENTAL_BUILD
++ INCREMENTAL_BUILD = false
++endif
++
++# FullPath just makes sure it never ends with a / and no duplicates
++define FullPath
++$(shell cd $1 2> $(DEV_NULL) && pwd)
++endef
++
++# OptFullPath: Absolute path name of a dir that might not initially exist.
++define OptFullPath
++$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
++endef
++
++ifdef ALT_X11_PATH
++ X11_PATH = $(ALT_X11_PATH)
++else
++ ifeq ($(OS_VENDOR), NetBSD)
++ X11_PATH = /usr/X11R7
++ else
++ ifeq ($(OS_VENDOR), FreeBSD)
++ X11_PATH = /usr/local
++ else
++ X11_PATH = /usr/X11R6
++ endif
++ endif
++endif
++
++ifdef ALT_PACKAGE_PATH
++ PACKAGE_PATH = $(ALT_PACKAGE_PATH)
++else
++ ifeq ($(OS_VENDOR), NetBSD)
++ PACKAGE_PATH = /usr/pkg
++ else
++ PACKAGE_PATH = /usr/local
++ endif
++endif
++
++# ALSA
++ifdef ALT_ALSA_LIB_PATH
++ ALSA_LIB_PATH = $(ALT_ALSA_LIB_PATH)
++else
++ ALSA_LIB_PATH = $(PACKAGE_PATH)/lib
++endif
++
++ifdef ALT_ALSA_HEADERS_PATH
++ ALSA_HEADERS_PATH = $(ALT_ALSA_HEADERS_PATH)
++else
++ ALSA_HEADERS_PATH = $(PACKAGE_PATH)/include
++endif
++
++# Location on system where jdk installs might be
++USRJDKINSTANCES_PATH = $(PACKAGE_PATH)
++
++# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
++ UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
++else
++ UNIXCOMMAND_PATH = /bin/
++endif
++
++# USRBIN_PATH: path to where the most common Unix commands are.
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
++ USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
++else
++ USRBIN_PATH = /usr/bin/
++endif
++
++# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
++ UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
++else
++ UNIXCCS_PATH = /usr/ccs/bin/
++endif
++
++# SLASH_JAVA: location of all network accessable files
++ifdef ALT_SLASH_JAVA
++ SLASH_JAVA :=$(ALT_SLASH_JAVA)
++else
++ SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
++endif
++
++# JDK_DEVTOOLS_DIR: common path for all the java devtools
++ifdef ALT_JDK_DEVTOOLS_DIR
++ JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
++else
++ JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
++endif
++
++# COMPILER_PATH: path to where the compiler and tools are installed.
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
++ COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
++else
++ COMPILER_PATH =/usr/bin/
++endif
++
++# OPENWIN_HOME: path to where the X11 environment is installed.
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq ($(ALT_OPENWIN_HOME),)
++ OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
++else
++ OPENWIN_HOME =$(X11_PATH)
++endif
++
++# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
++# NOTE: Must end with / so that it could be empty, allowing PATH usage.
++ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
++ DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
++else
++ DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
++endif
++
++# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
++# _BOOTDIR2: Second choice
++ifndef ALT_BOOTDIR
++ _BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
++ _BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
++endif
++
++# Always build headless on BSD
++BUILD_HEADLESS = true
++LIBM=-lm
++
++# Set ZLIB_LIBS if not already set
++ifeq ("$(ZLIB_LIBS)", "")
++ ZLIB_LIBS=-lz
++endif
++
++_CUPS_HEADERS_PATH=$(PACKAGE_PATH)/include
++
++# Import JDK images allow for partial builds, components not built are
++# imported (or copied from) these import areas when needed.
++
++# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
++# multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
++ifdef ALT_BUILD_JDK_IMPORT_PATH
++ BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
++else
++ BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
++endif
++BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
++
++# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
++ifdef ALT_JDK_IMPORT_PATH
++ JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
++else
++ JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
++endif
++JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
++
++# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
++ifdef ALT_HOTSPOT_IMPORT_PATH
++ HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
++else
++ HOTSPOT_IMPORT_PATH =$(JDK_IMPORT_PATH)
++endif
++HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
++
++# HOTSPOT_CLIENT_PATH: location of client jvm library file.
++ifeq ($(ARCH_DATA_MODEL), 32)
++ ifdef ALT_HOTSPOT_CLIENT_PATH
++ HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
++ else
++ HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
++ endif
++ HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
++endif
++
++# HOTSPOT_SERVER_PATH: location of server jvm library file.
++ifdef ALT_HOTSPOT_SERVER_PATH
++ HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
++else
++ HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
++endif
++HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
++
++# Special define for checking the binaries
++
++# Debug builds should downgrade warnings to just info
++MAPFILE_WARNING-DBG=INFO
++MAPFILE_WARNING-OPT=WARNING
++MAPFILE_WARNING-=WARNING
++MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
++
++# Macro to check it's input file for banned dependencies and verify the
++# binary built properly. Relies on process exit code.
++ifndef CROSS_COMPILE_ARCH
++ifeq ($(OS_VENDOR), OpenBSD)
++define binary_file_verification # binary_file
++( \
++ $(ECHO) "Checking for mapfile use in: $1" && \
++ if [ "`$(OBJDUMP) -T $1 | $(EGREP) '[0-9a-f]* g *DF \.text.*SUNWprivate'`" = "" ] ; then \
++ $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
++ fi && \
++ $(ECHO) "Library loads for: $1" && \
++ $(LDD) $1 && \
++ $(ECHO) "RUNPATH for: $1" && \
++ ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
++) || true
++endef
++else
++define binary_file_verification # binary_file
++( \
++ $(ECHO) "Checking for mapfile use in: $1" && \
++ if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
++ $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
++ fi && \
++ $(ECHO) "Library loads for: $1" && \
++ $(LDD) $1 && \
++ $(ECHO) "RUNPATH for: $1" && \
++ ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
++)
++endef
++endif
++else
++define binary_file_verification
++( \
++ $(ECHO) "Skipping binary file verification for cross-compile build" \
++)
++endef
++endif
++
+--- jdk/make/common/shared/Defs-utils.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/shared/Defs-utils.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -74,6 +74,13 @@
+ UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
+ endif
+
++ifeq ($(PLATFORM),bsd)
++ UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
++ UTILS_USR_BIN_PATH=$(USRBIN_PATH)
++ UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
++ UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
++endif
++
+ # Utilities
+ ifdef CROSS_COMPILE_ARCH
+ AR = $(COMPILER_PATH)ar
+@@ -251,3 +258,35 @@
+ # Builtin shell command, no -e option needed
+ ECHO = echo
+ endif
++
++# BSD specific
++ifeq ($(PLATFORM),bsd)
++ BASENAME = $(UTILS_USR_BIN_PATH)basename
++ EGREP = $(UTILS_USR_BIN_PATH)egrep
++ EXPR = $(UTILS_COMMAND_PATH)expr
++ FMT = $(UTILS_USR_BIN_PATH)fmt
++ GREP = $(UTILS_USR_BIN_PATH)grep
++ GUNZIP = $(UTILS_USR_BIN_PATH)gunzip
++ ID = $(UTILS_USR_BIN_PATH)id
++ MSGFMT = $(UTILS_DEVTOOL_PATH)msgfmt
++ SED = $(UTILS_USR_BIN_PATH)sed
++ SORT = $(UTILS_USR_BIN_PATH)sort
++ TEST = $(UTILS_COMMAND_PATH)test
++ TOUCH = $(UTILS_USR_BIN_PATH)touch
++ TRUE = $(UTILS_USR_BIN_PATH)true
++ UNAME = $(UTILS_USR_BIN_PATH)uname
++ UNZIP = $(UTILS_DEVTOOL_PATH)unzip
++ # BSD OS_VENDOR specific
++ ifeq ($(OS_VENDOR), OpenBSD)
++ NAWK = $(UTILS_USR_BIN_PATH)awk
++ OBJDUMP = $(UTILS_USR_BIN_PATH)objdump
++ else
++ CPIO = $(UTILS_USR_BIN_PATH)cpio
++ TAR = $(UTILS_USR_BIN_PATH)tar
++ endif
++ ifeq ($(OS_VENDOR), NetBSD)
++ NAWK = $(UTILS_USR_BIN_PATH)awk
++ ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
++ UNZIP = $(UTILS_DEVTOOL_PATH)unzip
++ endif
++endif
+--- jdk/make/common/shared/Defs-versions.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/shared/Defs-versions.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -44,6 +44,11 @@
+ override CC_VERSION = gcc
+ endif
+
++# BSD uses GNU compilers by default
++ifeq ($(PLATFORM), bsd)
++ override CC_VERSION = gcc
++endif
++
+ # Mac OS X uses LLVM by default
+ ifeq ($(PLATFORM), macosx)
+ override CC_VERSION = llvm
+@@ -169,6 +174,13 @@
+ endif
+ endif
+
++# BSD specific
++ifeq ($(PLATFORM), macosx)
++ REQUIRED_COMPILER_NAME = GCC4
++ REQUIRED_COMPILER_VERSION = GCC4
++ REQUIRED_CC_VER = 4.2.1
++endif
++
+ # Mac specific
+ ifeq ($(PLATFORM), macosx)
+ REQUIRED_OS_NAME = Darwin
+--- jdk/make/common/shared/Defs.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/shared/Defs.gmk 2013-12-01 12:37:36.000000000 -0800
+@@ -181,7 +181,7 @@
+ # platform and shared sources/headers. This is mainly useful for the
+ # Mac OS X build, which pulls its platform sources from the solaris and/or
+ # macosx trees, depending on the component.
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ define JavaSrcDirList
+ $(JAVA_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
+ endef
+@@ -296,10 +296,8 @@
+ RELEASE = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
+ endif
+
+-# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
+-ifdef BUILD_NUMBER
+- FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
+-else
++# Define default USER_RELEASE_SUFFIX if BUILD_NUMBER and USER_RELEASE_SUFFIX are not set
++ifndef BUILD_NUMBER
+ BUILD_NUMBER = b00
+ ifndef USER_RELEASE_SUFFIX
+ BUILD_DATE := $(shell $(DATE) '+%Y_%m_%d_%H_%M')
+@@ -307,6 +305,12 @@
+ USER_RELEASE_SUFFIX := $(shell $(ECHO) "$(CLEAN_USERNAME)_$(BUILD_DATE)" | $(TR) '[:upper:]' '[:lower:]' )
+ endif
+ export USER_RELEASE_SUFFIX
++endif
++
++# FULL_VERSION is RELEASE and BUILD_NUMBER if USER_RELEASE_SUFFIX is not set
++ifndef USER_RELEASE_SUFFIX
++ FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
++else
+ FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
+ endif
+
+--- jdk/make/common/shared/Platform.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/common/shared/Platform.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -298,6 +298,85 @@
+ # How much RAM does this machine have:
+ endif
+
++ifeq ($(SYSTEM_UNAME), FreeBSD)
++ PLATFORM = bsd
++ OS_NAME = freebsd
++ OS_VENDOR = FreeBSD
++ REQUIRED_OS_VERSION = 6.0
++endif
++
++ifeq ($(SYSTEM_UNAME), NetBSD)
++ PLATFORM = bsd
++ OS_NAME = netbsd
++ OS_VENDOR = NetBSD
++ REQUIRED_OS_VERSION = 3.0
++endif
++
++ifeq ($(SYSTEM_UNAME), OpenBSD)
++ PLATFORM = bsd
++ OS_NAME = openbsd
++ OS_VENDOR = OpenBSD
++ REQUIRED_OS_VERSION = 4.9
++endif
++
++# Platform settings specific to BSD
++ifeq ($(PLATFORM), bsd)
++ OS_VERSION := $(shell uname -r)
++ # Arch and OS name/version
++ mach := $(shell uname -m)
++ archExpr = case "$(mach)" in \
++ i[3-9]86) \
++ echo i586 \
++ ;; \
++ sparc64) \
++ echo sparcv9 \
++ ;; \
++ sparc*) \
++ echo sparc \
++ ;; \
++ x86_64) \
++ echo amd64 \
++ ;; \
++ "Power Macintosh") \
++ echo ppc \
++ ;; \
++ *) \
++ echo $(mach) \
++ ;; \
++ esac
++ ARCH := $(shell $(archExpr) )
++ ARCH_FAMILY := $(ARCH)
++
++ # i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
++ ifneq (,$(findstring $(ARCH), i586 sparc ppc))
++ ARCH_DATA_MODEL=32
++ else
++ ARCH_DATA_MODEL=64
++ endif
++
++ # Need to maintain the jre/lib/i386 location for 32-bit Intel
++ ifeq ($(ARCH), i586)
++ LIBARCH = i386
++ else
++ LIBARCH = $(ARCH)
++ endif
++
++ # Value of Java os.arch property
++ ARCHPROP = $(LIBARCH)
++
++ # Suffix for file bundles used in previous release
++ BUNDLE_FILE_SUFFIX=.tar.gz
++ # Minimum disk space needed as determined by running 'du -sk' on
++ # a fully built workspace.
++ REQUIRED_FREE_SPACE=1500000
++ # How much RAM does this machine have:
++ ifeq ($(OS_VENDOR), OpenBSD)
++ MB_OF_MEMORY=$(shell sysctl -n hw.physmem | awk '{print int($$NF / 1048576); }' )
++ else
++ MB_OF_MEMORY=$(shell (sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }' )
++ endif
++endif
++
+ # Windows with and without CYGWIN will be slightly different
+ ifeq ($(SYSTEM_UNAME), Windows_NT)
+ PLATFORM = windows
+--- jdk/make/java/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -53,7 +53,7 @@
+ endif
+ endif # PLATFORM
+
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+ SUBDIRS += jexec
+ endif # PLATFORM
+
+--- jdk/make/java/instrument/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/instrument/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -104,12 +104,24 @@
+ # equivalent of strcasecmp is stricmp on Windows
+ CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
+ else
+-ifneq (,$(findstring $(PLATFORM), macosx))
+- ifneq ($(ARCH), universal)
+- LDFLAGS += -Wl,-all_load
++ifneq (,$(findstring $(PLATFORM), macosx bsd))
++ ifeq ($(OS_VENDOR), Apple)
++ ifneq ($(ARCH), universal)
++ LDFLAGS += -Wl,-all_load
++ endif
++ LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
++ OTHER_LDLIBS += -liconv
++ else
++ LDFLAGS += -Wl,--whole-archive
++ LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
++ LDFLAGS += -Wl,--no-whole-archive
++ ifneq ($(OS_NAME), netbsd)
++# Use CPPFLAGS instead of OTHER_INCLUDES to force this last
++ CPPFLAGS += -I$(PACKAGE_PATH)/include
++ OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
++ endif
+ endif
+- LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+- OTHER_LDLIBS += -liconv
++
+ ifeq ($(SYSTEM_ZLIB), true)
+ OTHER_LDLIBS += -lz
+ endif
+--- jdk/make/java/java/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/java/Makefile 2013-12-01 12:37:33.000000000 -0800
+@@ -175,9 +175,11 @@
+ #
+ ifneq ($(PLATFORM), windows)
+ ifneq ($(PLATFORM), macosx)
++ifneq ($(PLATFORM), bsd)
+ HAVE_ALTZONE=true
+ endif
+ endif
++endif
+
+ ifeq ($(HAVE_ALTZONE),true)
+ OTHER_CPPFLAGS += -DHAVE_ALTZONE
+--- jdk/make/java/java/genlocales.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/java/genlocales.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -93,18 +93,66 @@
+
+ else
+
++ifeq ($(PLATFORM), bsd)
++
++$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
++ @$(RM) $@.tmp.euro $@.tmp.noneuro;
++ @$(prep-target)
++ @$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.euro;
++ @$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.euro;
++ @$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.noneuro;
++ @$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.noneuro;
++ NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
++ $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
++ $@.tmp.noneuro $< $@
++ @$(RM) $@.tmp.euro $@.tmp.noneuro;
++
++else
++
++ifeq ($(PLATFORM), bsd)
++
++$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
++ @$(RM) $@.tmp.euro $@.tmp.noneuro;
++ @$(prep-target)
++ @$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.euro;
++ @$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.euro;
++ @$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.noneuro;
++ @$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.noneuro;
++ NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
++ $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
++ $@.tmp.noneuro $< $@
++ @$(RM) $@.tmp.euro $@.tmp.noneuro;
++
++else
++
+ $(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
+ @$(RM) $@.tmp.euro $@.tmp.noneuro;
+ @$(prep-target)
+- @$(ECHO) $(subst .properties,'\n',$(Euro_Resources_properties)) > $@.tmp.euro;
+- @$(ECHO) $(subst .java,'\n',$(Euro_Resources_java)) >> $@.tmp.euro;
+- @$(ECHO) $(subst .properties,'\n',$(NonEuro_Resources_properties)) > $@.tmp.noneuro;
+- @$(ECHO) $(subst .java,'\n',$(NonEuro_Resources_java)) >> $@.tmp.noneuro;
++ @$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.euro;
++ @$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.euro;
++ @$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
++'@g > $@.tmp.noneuro;
++ @$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
++'@g >> $@.tmp.noneuro;
+ NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
+ $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
+ $@.tmp.noneuro $< $@
+ @$(RM) $@.tmp.euro $@.tmp.noneuro;
+ endif
++
++endif
++
++endif
+
+ genlocales : $(LocaleDataMetaInfo_Dest)
+
+--- jdk/make/java/jli/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/jli/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -119,9 +119,9 @@
+ LIBARCH_DEFINES += -DLIBARCH64NAME='"$(LIBARCH64)"'
+ endif # PLATFORM
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), macosx bsd))
+ OTHER_CPPFLAGS += $(LIBARCH_DEFINES) -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+-else # ! MACOSX
++else # ! MACOSX || BSD
+ OTHER_CPPFLAGS += $(LIBARCH_DEFINES)
+ endif #PLATFORM
+
+@@ -134,7 +134,7 @@
+ # Note: it is important to keep this order, meaning -lc as the
+ # last library, otherwise it could cause compatibility issues
+ # by pulling in SUNW_private symbols from libc
+- LDLIBS = -ldl -lc
++ LDLIBS = $(LIBDL) -lc
+ ifeq ($(USE_PTHREADS),true)
+ LDLIBS += -lpthread
+ endif # USE_PTHREADS
+--- jdk/make/java/management/mapfile-vers 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/management/mapfile-vers 2013-12-01 11:14:27.000000000 -0800
+@@ -53,7 +53,7 @@
+ Java_sun_management_GcInfoBuilder_fillGcAttributeInfo;
+ Java_sun_management_GcInfoBuilder_getLastGcInfo0;
+ Java_sun_management_GcInfoBuilder_getNumGcExtAttributes;
+- Java_sun_management_HotSpotDiagnostic_dumpHeap;
++ Java_sun_management_HotSpotDiagnostic_dumpHeap0;
+ Java_sun_management_HotspotThread_getInternalThreadCount;
+ Java_sun_management_HotspotThread_getInternalThreadTimes0;
+ Java_sun_management_MemoryImpl_getMemoryManagers0;
+--- jdk/make/java/net/FILES_c.gmk 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/net/FILES_c.gmk 2013-12-01 12:37:33.000000000 -0800
+@@ -47,6 +47,10 @@
+ FILES_c += bsd_close.c
+ endif
+
++ifeq ($(OS_VENDOR), FreeBSD)
++ FILES_c += bsd_close.c
++endif
++
+ ifeq ($(PLATFORM), windows)
+ FILES_c += TwoStacksPlainSocketImpl.c
+ FILES_c += DualStackPlainSocketImpl.c
+--- jdk/make/java/net/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/net/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -92,7 +92,7 @@
+
+ include $(BUILDDIR)/common/Library.gmk
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), macosx bsd))
+ ifdef DONT_ENABLE_IPV6
+ OTHER_CFLAGS += -DDONT_ENABLE_IPV6
+ endif
+--- jdk/make/java/nio/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/nio/Makefile 2013-12-02 20:09:19.000000000 -0800
+@@ -263,13 +263,89 @@
+ sun/nio/fs/UnixConstants.java
+ endif # PLATFORM = linux
+
++ifeq ($(PLATFORM), bsd)
++FILES_java += \
++ sun/nio/ch/AbstractPollSelectorImpl.java \
++ sun/nio/ch/BsdAsynchronousChannelProvider.java \
++ sun/nio/ch/InheritedChannel.java \
++ sun/nio/ch/KQueue.java \
++ sun/nio/ch/KQueueArrayWrapper.java \
++ sun/nio/ch/KQueuePort.java \
++ sun/nio/ch/KQueueSelectorProvider.java \
++ sun/nio/ch/KQueueSelectorImpl.java \
++ sun/nio/ch/PollSelectorProvider.java \
++ sun/nio/ch/PollSelectorImpl.java \
++ sun/nio/ch/Port.java \
++ sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
++ sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
++ sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
++ \
++ sun/nio/fs/BsdFileStore.java \
++ sun/nio/fs/BsdFileSystem.java \
++ sun/nio/fs/BsdFileSystemProvider.java \
++ sun/nio/fs/BsdNativeDispatcher.java \
++ sun/nio/fs/PollingWatchService.java \
++ sun/nio/fs/UnixChannelFactory.java \
++ sun/nio/fs/UnixCopyFile.java \
++ sun/nio/fs/UnixDirectoryStream.java \
++ sun/nio/fs/UnixException.java \
++ sun/nio/fs/UnixFileAttributeViews.java \
++ sun/nio/fs/UnixFileAttributes.java \
++ sun/nio/fs/UnixFileKey.java \
++ sun/nio/fs/UnixFileModeAttribute.java \
++ sun/nio/fs/UnixFileStore.java \
++ sun/nio/fs/UnixFileStoreAttributes.java \
++ sun/nio/fs/UnixFileSystem.java \
++ sun/nio/fs/UnixFileSystemProvider.java \
++ sun/nio/fs/UnixMountEntry.java \
++ sun/nio/fs/UnixNativeDispatcher.java \
++ sun/nio/fs/UnixPath.java \
++ sun/nio/fs/UnixSecureDirectoryStream.java \
++ sun/nio/fs/UnixUriUtils.java \
++ sun/nio/fs/UnixUserPrincipals.java
++
++FILES_c += \
++ InheritedChannel.c \
++ NativeThread.c \
++ PollArrayWrapper.c \
++ UnixAsynchronousServerSocketChannelImpl.c \
++ UnixAsynchronousSocketChannelImpl.c \
++ \
++ BsdNativeDispatcher.c \
++ UnixCopyFile.c \
++ UnixNativeDispatcher.c \
++ \
++ KQueue.c \
++ KQueueArrayWrapper.c \
++ KQueuePort.c
++
++FILES_export += \
++ sun/nio/ch/InheritedChannel.java \
++ sun/nio/ch/KQueue.java \
++ sun/nio/ch/KQueuePort.java \
++ sun/nio/ch/NativeThread.java \
++ sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
++ sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
++ \
++ sun/nio/fs/BsdNativeDispatcher.java \
++ sun/nio/fs/UnixCopyFile.java \
++ sun/nio/fs/UnixNativeDispatcher.java
++
++FILES_gen += \
++ sun/nio/fs/UnixConstants.java
++
++endif # PLATFORM = bsd
++
+ ifeq ($(PLATFORM), macosx)
+ FILES_java += \
+ sun/nio/ch/AbstractPollSelectorImpl.java \
+ sun/nio/ch/BsdAsynchronousChannelProvider.java \
+ sun/nio/ch/InheritedChannel.java \
+ sun/nio/ch/KQueue.java \
++ sun/nio/ch/KQueueArrayWrapper.java
+ sun/nio/ch/KQueuePort.java \
++ sun/nio/ch/KQueueSelectorProvider.java \
++ sun/nio/ch/KQueueSelectorImpl.java \
+ sun/nio/ch/PollSelectorProvider.java \
+ sun/nio/ch/PollSelectorImpl.java \
+ sun/nio/ch/Port.java \
+@@ -317,6 +393,7 @@
+ UnixNativeDispatcher.c \
+ \
+ KQueue.c \
++ KQueueArrayWrapper.c \
+ KQueuePort.c
+
+ FILES_export += \
+@@ -330,19 +407,13 @@
+ sun/nio/fs/BsdNativeDispatcher.java \
+ sun/nio/fs/UnixCopyFile.java \
+ sun/nio/fs/UnixNativeDispatcher.java
+-
++
+ FILES_gen += \
+ sun/nio/fs/UnixConstants.java
+-endif # PLATFORM = bsd, macosx
+
+-ifeq ($(PLATFORM), macosx)
+-FILES_java += \
+- sun/nio/ch/KQueueSelectorProvider.java \
+- sun/nio/ch/KQueueSelectorImpl.java \
+- sun/nio/ch/KQueueArrayWrapper.java
++endif # PLATFORM = macosx
+
+-FILES_c += \
+- KQueueArrayWrapper.c
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+
+ vpath %.c $(call NativeSrcDirList,,native/sun/nio/fs)
+ vpath %.c $(call NativeSrcDirList,,native/sun/nio/ch)
+@@ -388,6 +459,9 @@
+ ifeq ($(PLATFORM), macosx)
+ OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread -framework CoreFoundation
+ endif
++ifeq ($(PLATFORM), bsd)
++OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread
++endif
+ ifeq ($(PLATFORM), solaris)
+ OTHER_LDLIBS += $(JVMLIB) $(LIBSOCKET) -lposix4 $(LIBDL) -lsendfile \
+ -L$(LIBDIR)/$(LIBARCH) -ljava -lnet
+@@ -410,7 +484,7 @@
+ ifeq ($(PLATFORM), linux)
+ FILES_m = mapfile-linux
+ endif
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ FILES_m = mapfile-bsd
+ endif
+ include $(BUILDDIR)/common/Mapfile-vers.gmk
+--- jdk/make/java/nio/mapfile-bsd 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/nio/mapfile-bsd 2013-12-01 12:37:36.000000000 -0800
+@@ -70,6 +70,7 @@
+ Java_sun_nio_ch_IOUtil_drain;
+ Java_sun_nio_ch_IOUtil_fdVal;
+ Java_sun_nio_ch_IOUtil_initIDs;
++ Java_sun_nio_ch_IOUtil_iovMax;
+ Java_sun_nio_ch_IOUtil_makePipe;
+ Java_sun_nio_ch_IOUtil_randomBytes;
+ Java_sun_nio_ch_IOUtil_setfdVal;
+@@ -80,6 +81,11 @@
+ Java_sun_nio_ch_KQueue_identOffset;
+ Java_sun_nio_ch_KQueue_filterOffset;
+ Java_sun_nio_ch_KQueue_flagsOffset;
++ Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes;
++ Java_sun_nio_ch_KQueueArrayWrapper_init;
++ Java_sun_nio_ch_KQueueArrayWrapper_register0;
++ Java_sun_nio_ch_KQueueArrayWrapper_kevent0;
++ Java_sun_nio_ch_KQueueArrayWrapper_interrupt;
+ Java_sun_nio_ch_KQueuePort_socketpair;
+ Java_sun_nio_ch_KQueuePort_interrupt;
+ Java_sun_nio_ch_KQueuePort_drain1;
+--- jdk/make/java/npt/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/npt/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -74,6 +74,14 @@
+ OTHER_LDLIBS += -liconv
+ endif
+
++# Add location of iconv headers
++ifeq ($(PLATFORM), bsd)
++ ifneq ($(OS_NAME), netbsd)
++ CPPFLAGS += -I$(PACKAGE_PATH)/include
++ OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
++ endif
++endif
++
+ #
+ # Add to ambient vpath so we pick up the library files
+ #
+--- jdk/make/java/redist/fonts/Makefile 2013-09-06 11:27:37.000000000 -0700
++++ jdk/make/java/redist/fonts/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -42,7 +42,7 @@
+ $(LIBDIR)/fonts/LucidaSansRegular.ttf \
+ $(LIBDIR)/fonts/LucidaSansDemiBold.ttf \
+
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+
+ # The oblique versions of the font are derived from the base versions
+ # and since 2D can do this derivation on the fly at run time there is no
+@@ -82,7 +82,7 @@
+ $(FONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.fonts.dir
+ $(install-file)
+
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+
+ # The oblique fonts are only needed/wanted on Linux.
+
+@@ -96,7 +96,7 @@
+ $(OBLFONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.oblique-fonts.dir
+ $(install-file)
+
+-endif # linux
++endif # linux || bsd
+
+ all build : $(INTERNAL_IMPORT_LIST)
+
+--- jdk/make/javax/sound/Makefile 2013-09-06 11:27:38.000000000 -0700
++++ jdk/make/javax/sound/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -111,6 +111,21 @@
+ #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
+ endif # PLATFORM linux
+
++ifeq ($(PLATFORM), bsd)
++ifeq ($(OS_VENDOR), FreeBSD)
++ # ALSA handles directaudio, ports, and MIDI
++ SUBDIRS += jsoundalsa
++ EXTRA_SOUND_JNI_LIBS += jsoundalsa
++else
++ # build with empty MIDI i/o
++ INCLUDE_MIDI = TRUE
++ # build with empty ports
++ INCLUDE_PORTS = TRUE
++ # build with empty direct audio
++ INCLUDE_DAUDIO = TRUE
++endif
++endif # PLATFORM bsd
++
+ ifeq ($(PLATFORM), macosx)
+ CPPFLAGS += -DUSE_PORTS=TRUE \
+ -DUSE_DAUDIO=TRUE \
+--- jdk/make/javax/sound/SoundDefs.gmk 2013-09-06 11:27:38.000000000 -0700
++++ jdk/make/javax/sound/SoundDefs.gmk 2013-12-01 12:37:34.000000000 -0800
+@@ -40,6 +40,10 @@
+ CPPFLAGS += -DX_PLATFORM=X_LINUX
+ endif # PLATFORM linux
+
++ifeq ($(PLATFORM), bsd)
++ CPPFLAGS += -DX_PLATFORM=X_BSD
++endif # PLATFORM bsd
++
+ ifeq ($(PLATFORM), macosx)
+ CPPFLAGS += -DX_PLATFORM=X_MACOSX
+ endif # PLATFORM macosx
+--- jdk/make/javax/sound/jsoundalsa/Makefile 2013-09-06 11:27:38.000000000 -0700
++++ jdk/make/javax/sound/jsoundalsa/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -51,6 +51,7 @@
+ $(PORTFILES_c)
+
+ # platform dependent files
++ifeq ($(PLATFORM), linux)
+ FILES_c += \
+ PLATFORM_API_LinuxOS_ALSA_CommonUtils.c \
+ PLATFORM_API_LinuxOS_ALSA_PCM.c \
+@@ -60,19 +61,37 @@
+ PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
+ PLATFORM_API_LinuxOS_ALSA_Ports.c
+
++MIDI_CPPFLAGS= \
++ -DUSE_PLATFORM_MIDI_OUT=TRUE \
++ -DUSE_PLATFORM_MIDI_IN=TRUE
++endif
++
++ifeq ($(PLATFORM), bsd)
++FILES_c += \
++ PLATFORM_API_BsdOS_ALSA_CommonUtils.c \
++ PLATFORM_API_BsdOS_ALSA_PCM.c \
++ PLATFORM_API_BsdOS_ALSA_PCMUtils.c \
++ PLATFORM_API_BsdOS_ALSA_MidiIn.c \
++ PLATFORM_API_BsdOS_ALSA_MidiOut.c \
++ PLATFORM_API_BsdOS_ALSA_MidiUtils.c \
++ PLATFORM_API_BsdOS_ALSA_Ports.c
++
++MIDI_CPPFLAGS=
++endif
++
+ FILES_export = \
+ $(DAUDIOFILES_export) \
+ $(MIDIFILES_export) \
+ $(PORTFILES_export)
+
+-OTHER_LDLIBS += -lasound
++OTHER_LDLIBS += -L$(ALSA_LIB_PATH) -lasound
+
+ CPPFLAGS += \
+ -DUSE_DAUDIO=TRUE \
+ -DUSE_PORTS=TRUE \
+- -DUSE_PLATFORM_MIDI_OUT=TRUE \
+- -DUSE_PLATFORM_MIDI_IN=TRUE \
+- -I$(SHARE_SRC)/native/com/sun/media/sound
++ $(MIDI_CPPFLAGS) \
++ -I$(SHARE_SRC)/native/com/sun/media/sound \
++ -I$(ALSA_HEADERS_PATH)
+
+ #
+ # Add to the ambient VPATH.
+--- jdk/make/jpda/transport/socket/Makefile 2013-09-06 11:27:38.000000000 -0700
++++ jdk/make/jpda/transport/socket/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -38,6 +38,11 @@
+
+ include $(BUILDDIR)/common/Defs.gmk
+
++ifeq ($(PLATFORM), bsd))
++ LIBSOCKET =
++ OTHER_LDLIBS += -pthread
++endif
++
+ ifeq ($(PLATFORM), linux)
+ OTHER_LDLIBS += $(LIBNSL) $(LIBSOCKET) -lpthread
+ endif
+--- jdk/make/sun/awt/FILES_c_macosx.gmk 2013-09-06 11:27:39.000000000 -0700
++++ jdk/make/sun/awt/FILES_c_macosx.gmk 1969-12-31 16:00:00.000000000 -0800
+@@ -1,28 +0,0 @@
+-#
+-# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+-#
+-# This code is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License version 2 only, as
+-# published by the Free Software Foundation. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# This code is distributed in the hope that it will be useful, but WITHOUT
+-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+-# version 2 for more details (a copy is included in the LICENSE file that
+-# accompanied this code).
+-#
+-# You should have received a copy of the GNU General Public License version
+-# 2 along with this work; if not, write to the Free Software Foundation,
+-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+-#
+-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+-# or visit www.oracle.com if you need additional information or have any
+-# questions.
+-#
+-
+-FILES_AWT_objc = \
+- $(TARGDIR)MacOSXResourceBundle.m
+-
+--- jdk/make/sun/awt/FILES_export_macosx.gmk 2013-09-06 11:27:39.000000000 -0700
++++ jdk/make/sun/awt/FILES_export_macosx.gmk 1969-12-31 16:00:00.000000000 -0800
+@@ -1,29 +0,0 @@
+-#
+-# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+-#
+-# This code is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU General Public License version 2 only, as
+-# published by the Free Software Foundation. Oracle designates this
+-# particular file as subject to the "Classpath" exception as provided
+-# by Oracle in the LICENSE file that accompanied this code.
+-#
+-# This code is distributed in the hope that it will be useful, but WITHOUT
+-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+-# version 2 for more details (a copy is included in the LICENSE file that
+-# accompanied this code).
+-#
+-# You should have received a copy of the GNU General Public License version
+-# 2 along with this work; if not, write to the Free Software Foundation,
+-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+-#
+-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+-# or visit www.oracle.com if you need additional information or have any
+-# questions.
+-#
+-
+-# FILES_export definitions for Mac OS X
+-
+-FILES_export += \
+- com/apple/resources/MacOSXResourceBundle.java
+--- jdk/make/sun/awt/Makefile 2013-09-06 11:27:39.000000000 -0700
++++ jdk/make/sun/awt/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -127,7 +127,12 @@
+ OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL)
+ endif
+
+-FILES_c += initIDs.c
++ifeq ($(PLATFORM), bsd)
++FILES_c = $(FILES_2D_c)
++FILES_c += awt_LoadLibrary.c
++OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
++OTHER_LDLIBS = $(JVMLIB) $(LIBM)
++endif
+
+ ifeq ($(PLATFORM), macosx)
+ FILES_c = $(FILES_2D_c)
+@@ -136,6 +141,8 @@
+ OTHER_LDLIBS = $(JVMLIB) $(LIBM)
+ endif
+
++FILES_c += initIDs.c
++
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
+ endif # PLATFORM
+
+@@ -145,8 +152,6 @@
+ #
+ # Files
+ #
+-include FILES_c_macosx.gmk
+-include FILES_export_macosx.gmk
+
+ FILES_objc = $(FILES_AWT_objc)
+ OTHER_LDLIBS = -lmlib_image $(JVMLIB) $(LIBM) \
+@@ -502,6 +507,17 @@
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS
+ endif # PLATFORM
+
++ifeq ($(PLATFORM), bsd)
++# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv BSD
++
++FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
++_FONTCONFIGS = \
++ fontconfig.properties
++
++FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
++
++# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ BSD
++endif # PLATFORM
+
+ ifeq ($(PLATFORM), macosx)
+ # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
+@@ -607,6 +623,9 @@
+ -I$(OPENWIN_HOME)/include/X11/extensions \
+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/font
+ endif
++ifeq ($(PLATFORM), bsd)
++CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/font
++endif
+ CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
+@@ -628,7 +647,13 @@
+ -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+ $(EVENT_MODEL)
+
+-ifeq ($(PLATFORM), linux)
++# include these last so we don't pick up unintentional includes
++ifeq ($(PLATFORM), bsd)
++CPPFLAGS += -I$(OPENWIN_HOME)/include \
++ -I$(OPENWIN_HOME)/include/X11/extensions
++endif
++
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+ LDFLAGS += -L$(OPENWIN_LIB)
+ endif
+
+--- jdk/make/sun/awt/mawt.gmk 2013-09-06 11:27:40.000000000 -0700
++++ jdk/make/sun/awt/mawt.gmk 2013-12-01 12:37:34.000000000 -0800
+@@ -169,7 +169,7 @@
+ OTHER_LDLIBS = -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
+ endif
+
+-ifneq (,$(findstring $(PLATFORM), linux macosx))
++ifneq (,$(findstring $(PLATFORM), bsd linux macosx))
+ OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+ # XXX what is this define below? Isn't it motif-related?
+ OTHER_CFLAGS += -DXMSTRINGDEFINES=1
+@@ -193,6 +193,7 @@
+ #
+ # Other extra flags needed for compiling.
+ #
++ifneq ($(PLATFORM), bsd))
+ CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+
+ ifndef HEADLESS
+@@ -200,6 +201,7 @@
+ LDFLAGS += -L$(OPENWIN_LIB)
+
+ endif # !HEADLESS
++endif # !PLATFORM
+
+ CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
+@@ -223,13 +225,16 @@
+ -I$(PLATFORM_SRC)/native/$(PKGDIR) \
+ $(EVENT_MODEL)
+
+-ifeq ($(PLATFORM), macosx)
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+
+ ifndef HEADLESS
+ CPPFLAGS += -I$(MOTIF_DIR)/include \
+ -I$(OPENWIN_HOME)/include
+ LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
++ifeq ($(OS_NAME), netbsd)
++LDFLAGS += -Wl,-R$(OPENWIN_LIB)
++endif
+
+ endif # !HEADLESS
+ endif # PLATFORM
+@@ -240,6 +245,12 @@
+ $(wildcard /usr/include/X11/extensions))
+ endif
+
++ifeq ($(PLATFORM), bsd))
++ CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
++ -I$(OPENWIN_HOME)/include \
++ -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
++endif
++
+ ifeq ($(PLATFORM), macosx))
+ CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
+ -I$(OPENWIN_HOME)/include
+--- jdk/make/sun/font/Makefile 2013-09-06 11:27:40.000000000 -0700
++++ jdk/make/sun/font/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -36,7 +36,11 @@
+ CPLUSPLUSLIBRARY=true
+
+ # Use higher optimization level
+-OPTIMIZATION_LEVEL = HIGHER
++ifeq ($(PLATFORM), windows)
++ OPTIMIZATION_LEVEL = HIGHEST
++else
++ OPTIMIZATION_LEVEL = HIGHER
++endif
+
+ include $(BUILDDIR)/common/Defs.gmk
+
+@@ -91,7 +95,7 @@
+ endif # PLATFORM
+
+ # Turn off aliasing with GCC for ExtensionSubtables.cpp
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), bsd linux))
+ CXXFLAGS += $(CXXFLAGS_$(@F))
+ CXXFLAGS_ExtensionSubtables.o = -fno-strict-aliasing
+ endif
+@@ -178,7 +182,7 @@
+ # Libraries to link, and other C flags.
+ #
+
+-ifeq ($(PLATFORM), macosx))
++ifneq (,$(findstring $(PLATFORM), bsd macosx))
+ OTHER_INCLUDES += -I$(X11_PATH)/include
+ OTHER_LDLIBS += -lawt $(LIBM) $(LIBCXX)
+ ifeq ($(OS_VENDOR),Apple)
+--- jdk/make/sun/jawt/Makefile 2013-09-06 11:27:40.000000000 -0700
++++ jdk/make/sun/jawt/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -99,8 +99,7 @@
+ #
+ # Other extra flags needed for compiling.
+ #
+-CPPFLAGS += -I$(OPENWIN_HOME)/include \
+- -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
++CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/image \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \
+@@ -114,6 +113,7 @@
+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
+ -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
+ -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
++ -I$(OPENWIN_HOME)/include \
+ $(EVENT_MODEL)
+
+ #
+@@ -127,7 +127,7 @@
+ endif
+ endif # PLATFORM
+
+-ifeq ($(PLATFORM), linux)
++ifneq (,$(findstring $(PLATFORM), linux bsd))
+ ifndef BUILD_HEADLESS_ONLY
+ OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt
+ else
+--- jdk/make/sun/nio/cs/FILES_java.gmk 2013-09-06 11:27:40.000000000 -0700
++++ jdk/make/sun/nio/cs/FILES_java.gmk 2013-12-01 11:14:29.000000000 -0800
+@@ -329,6 +329,7 @@
+ sun/nio/cs/ext/IBM280.java \
+ sun/nio/cs/ext/IBM284.java \
+ sun/nio/cs/ext/IBM285.java \
++ sun/nio/cs/ext/IBM290.java \
+ sun/nio/cs/ext/IBM297.java \
+ sun/nio/cs/ext/IBM420.java \
+ sun/nio/cs/ext/IBM424.java \
+--- jdk/make/sun/rmi/rmi/Makefile 2013-09-06 11:27:40.000000000 -0700
++++ jdk/make/sun/rmi/rmi/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -71,6 +71,9 @@
+ BUILD_TARGETS += bin
+ endif
+ endif
++ifeq ($(PLATFORM), bsd)
++ BUILD_TARGETS += bin
++endif
+
+ build: $(BUILD_TARGETS)
+
+--- jdk/make/sun/splashscreen/Makefile 2013-09-06 11:27:41.000000000 -0700
++++ jdk/make/sun/splashscreen/Makefile 2013-12-01 12:37:36.000000000 -0800
+@@ -83,15 +83,16 @@
+ -framework JavaNativeFoundation
+ else ifneq ($(PLATFORM), windows)
+ CFLAGS += -DWITH_X11
+- ifeq ($(PLATFORM), macosx))
+- OTHER_LDLIBS += -liconv
+- CPPFLAGS += -I$(OPENWIN_HOME)/include \
+- -I$(OPENWIN_HOME)/include/X11/extensions
+- OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -pthread
+- else
+- CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
+- OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
++ ifeq ($(PLATFORM), bsd))
++ ifeq ($(OS_NAME), netbsd)
++ OTHER_LDLIBS += -Wl,-R$(OPENWIN_LIB)
++ else
++ CPPFLAGS += -I$(PACKAGE_PATH)/include
++ OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
++ endif
+ endif
++ CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
++ OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
+ else # PLATFORM
+ CFLAGS += -DWITH_WIN32
+ OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
+--- jdk/make/sun/xawt/Makefile 2013-09-06 11:27:41.000000000 -0700
++++ jdk/make/sun/xawt/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -52,6 +52,9 @@
+ AUTO_JAVA_PRUNE = WrapperGenerator.java
+
+ LDFLAGS += -L$(OPENWIN_LIB)
++ifeq ($(OS_NAME), netbsd)
++LDFLAGS += -Wl,-R$(OPENWIN_LIB)
++endif
+
+ # For Xrender extension.
+ ifeq ($(PLATFORM), solaris)
+@@ -63,6 +66,11 @@
+ dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+ endif
+
++ifeq ($(PLATFORM), bsd)
++LDFLAGS += -pthread
++dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
++endif
++
+ ifeq ($(PLATFORM), macosx))
+ LDFLAGS += -pthread
+ dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+@@ -110,8 +118,6 @@
+ dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+ endif
+
+-CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+-
+ CPPFLAGS += -DXAWT -DXAWT_HACK \
+ -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
+ -I$(PLATFORM_SRC)/native/sun/awt \
+@@ -138,6 +144,8 @@
+ -I$(SHARE_SRC)/native/sun/awt \
+ -I$(PLATFORM_SRC)/native/sun/awt
+
++CPPFLAGS += -I$(CUPS_HEADERS_PATH)
++
+ ifeq ($(PLATFORM), linux)
+ ifndef CROSS_COMPILE_ARCH
+ # Allows for builds on Debian GNU Linux, X11 is in a different place
+@@ -173,6 +181,11 @@
+ endif
+ endif
+
++ifeq ($(PLATFORM), bsd)
++ CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -I$(OPENWIN_HOME)/include
++ CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
++endif
++
+ ifeq ($(PLATFORM), macosx)
+ CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+ endif
+--- jdk/make/tools/CharsetMapping/IBM290.c2b 1969-12-31 16:00:00.000000000 -0800
++++ jdk/make/tools/CharsetMapping/IBM290.c2b 2013-12-01 11:14:30.000000000 -0800
+@@ -0,0 +1,100 @@
++#
++# Diff of
++# b2c: cdctables.zip/Package2.zip/IBM-290.zip/012234B0.TPMAP100
++# c2b: cdctables.zip/Package2.zip/IBM-290.zip/012234B0.UPMAP100
++#
++# fullwidth form
++0x4B U+FF0E
++0x4C U+FF1C
++0x4D U+FF08
++0x4E U+FF0B
++0x4F U+FF5C
++0x50 U+FF06
++0x5A U+FF01
++0x5C U+FF0A
++0x5D U+FF09
++0x5E U+FF1B
++0x60 U+FF0D
++0x61 U+FF0F
++0x62 U+FF41
++0x63 U+FF42
++0x64 U+FF43
++0x65 U+FF44
++0x66 U+FF45
++0x67 U+FF46
++0x68 U+FF47
++0x69 U+FF48
++0x6B U+FF0C
++0x6C U+FF05
++0x6D U+FF3F
++0x6E U+FF1E
++0x6F U+FF1F
++0x70 U+FF3B
++0x71 U+FF49
++0x72 U+FF4A
++0x73 U+FF4B
++0x74 U+FF4C
++0x75 U+FF4D
++0x76 U+FF4E
++0x77 U+FF4F
++0x78 U+FF50
++0x79 U+FF40
++0x7A U+FF1A
++0x7B U+FF03
++0x7C U+FF20
++0x7D U+FF07
++0x7E U+FF1D
++0x7F U+FF02
++0x80 U+FF3D
++0x8B U+FF51
++0x9B U+FF52
++0xA0 U+FF5E
++0xAB U+FF53
++0xB0 U+FF3E
++0xB2 U+FF3C
++0xB3 U+FF54
++0xB4 U+FF55
++0xB5 U+FF56
++0xB6 U+FF57
++0xB7 U+FF58
++0xB8 U+FF59
++0xB9 U+FF5A
++0xC0 U+FF5B
++0xC1 U+FF21
++0xC2 U+FF22
++0xC3 U+FF23
++0xC4 U+FF24
++0xC5 U+FF25
++0xC6 U+FF26
++0xC7 U+FF27
++0xC8 U+FF28
++0xC9 U+FF29
++0xD0 U+FF5D
++0xD1 U+FF2A
++0xD2 U+FF2B
++0xD3 U+FF2C
++0xD4 U+FF2D
++0xD5 U+FF2E
++0xD6 U+FF2F
++0xD7 U+FF30
++0xD8 U+FF31
++0xD9 U+FF32
++0xE0 U+FF04
++0xE2 U+FF33
++0xE3 U+FF34
++0xE4 U+FF35
++0xE5 U+FF36
++0xE6 U+FF37
++0xE7 U+FF38
++0xE8 U+FF39
++0xE9 U+FF3A
++0xF0 U+FF10
++0xF1 U+FF11
++0xF2 U+FF12
++0xF3 U+FF13
++0xF4 U+FF14
++0xF5 U+FF15
++0xF6 U+FF16
++0xF7 U+FF17
++0xF8 U+FF18
++0xF9 U+FF19
+--- jdk/make/tools/CharsetMapping/IBM290.map 1969-12-31 16:00:00.000000000 -0800
++++ jdk/make/tools/CharsetMapping/IBM290.map 2013-12-01 11:14:30.000000000 -0800
+@@ -0,0 +1,232 @@
++#
++# b2c mapping for IBM290, generated from
++# cdctables.zip/Package2.zip/IBM-290.zip/012234B0.TPMAP100
++#
++0x00 U+0000
++0x01 U+0001
++0x02 U+0002
++0x03 U+0003
++0x04 U+009C
++0x05 U+0009
++0x06 U+0086
++0x07 U+007F
++0x08 U+0097
++0x09 U+008D
++0x0A U+008E
++0x0B U+000B
++0x0C U+000C
++0x0D U+000D
++0x0E U+000E
++0x0F U+000F
++0x10 U+0010
++0x11 U+0011
++0x12 U+0012
++0x13 U+0013
++0x14 U+009D
++0x15 U+0085
++0x16 U+0008
++0x17 U+0087
++0x18 U+0018
++0x19 U+0019
++0x1A U+0092
++0x1B U+008F
++0x1C U+001C
++0x1D U+001D
++0x1E U+001E
++0x1F U+001F
++0x20 U+0080
++0x21 U+0081
++0x22 U+0082
++0x23 U+0083
++0x24 U+0084
++0x25 U+000A
++0x26 U+0017
++0x27 U+001B
++0x28 U+0088
++0x29 U+0089
++0x2A U+008A
++0x2B U+008B
++0x2C U+008C
++0x2D U+0005
++0x2E U+0006
++0x2F U+0007
++0x30 U+0090
++0x31 U+0091
++0x32 U+0016
++0x33 U+0093
++0x34 U+0094
++0x35 U+0095
++0x36 U+0096
++0x37 U+0004
++0x38 U+0098
++0x39 U+0099
++0x3A U+009A
++0x3B U+009B
++0x3C U+0014
++0x3D U+0015
++0x3E U+009E
++0x3F U+001A
++0x40 U+0020
++0x41 U+FF61
++0x42 U+FF62
++0x43 U+FF63
++0x44 U+FF64
++0x45 U+FF65
++0x46 U+FF66
++0x47 U+FF67
++0x48 U+FF68
++0x49 U+FF69
++0x4A U+00A3
++0x4B U+002E
++0x4C U+003C
++0x4D U+0028
++0x4E U+002B
++0x4F U+007C
++0x50 U+0026
++0x51 U+FF6A
++0x52 U+FF6B
++0x53 U+FF6C
++0x54 U+FF6D
++0x55 U+FF6E
++0x56 U+FF6F
++0x58 U+FF70
++0x5A U+0021
++0x5B U+00A5
++0x5C U+002A
++0x5D U+0029
++0x5E U+003B
++0x5F U+00AC
++0x60 U+002D
++0x61 U+002F
++0x62 U+0061
++0x63 U+0062
++0x64 U+0063
++0x65 U+0064
++0x66 U+0065
++0x67 U+0066
++0x68 U+0067
++0x69 U+0068
++0x6B U+002C
++0x6C U+0025
++0x6D U+005F
++0x6E U+003E
++0x6F U+003F
++0x70 U+005B
++0x71 U+0069
++0x72 U+006A
++0x73 U+006B
++0x74 U+006C
++0x75 U+006D
++0x76 U+006E
++0x77 U+006F
++0x78 U+0070
++0x79 U+0060
++0x7A U+003A
++0x7B U+0023
++0x7C U+0040
++0x7D U+0027
++0x7E U+003D
++0x7F U+0022
++0x80 U+005D
++0x81 U+FF71
++0x82 U+FF72
++0x83 U+FF73
++0x84 U+FF74
++0x85 U+FF75
++0x86 U+FF76
++0x87 U+FF77
++0x88 U+FF78
++0x89 U+FF79
++0x8A U+FF7A
++0x8B U+0071
++0x8C U+FF7B
++0x8D U+FF7C
++0x8E U+FF7D
++0x8F U+FF7E
++0x90 U+FF7F
++0x91 U+FF80
++0x92 U+FF81
++0x93 U+FF82
++0x94 U+FF83
++0x95 U+FF84
++0x96 U+FF85
++0x97 U+FF86
++0x98 U+FF87
++0x99 U+FF88
++0x9A U+FF89
++0x9B U+0072
++0x9D U+FF8A
++0x9E U+FF8B
++0x9F U+FF8C
++0xA0 U+007E
++0xA1 U+203E
++0xA2 U+FF8D
++0xA3 U+FF8E
++0xA4 U+FF8F
++0xA5 U+FF90
++0xA6 U+FF91
++0xA7 U+FF92
++0xA8 U+FF93
++0xA9 U+FF94
++0xAA U+FF95
++0xAB U+0073
++0xAC U+FF96
++0xAD U+FF97
++0xAE U+FF98
++0xAF U+FF99
++0xB0 U+005E
++0xB1 U+00A2
++0xB2 U+005C
++0xB3 U+0074
++0xB4 U+0075
++0xB5 U+0076
++0xB6 U+0077
++0xB7 U+0078
++0xB8 U+0079
++0xB9 U+007A
++0xBA U+FF9A
++0xBB U+FF9B
++0xBC U+FF9C
++0xBD U+FF9D
++0xBE U+FF9E
++0xBF U+FF9F
++0xC0 U+007B
++0xC1 U+0041
++0xC2 U+0042
++0xC3 U+0043
++0xC4 U+0044
++0xC5 U+0045
++0xC6 U+0046
++0xC7 U+0047
++0xC8 U+0048
++0xC9 U+0049
++0xD0 U+007D
++0xD1 U+004A
++0xD2 U+004B
++0xD3 U+004C
++0xD4 U+004D
++0xD5 U+004E
++0xD6 U+004F
++0xD7 U+0050
++0xD8 U+0051
++0xD9 U+0052
++0xE0 U+0024
++0xE2 U+0053
++0xE3 U+0054
++0xE4 U+0055
++0xE5 U+0056
++0xE6 U+0057
++0xE7 U+0058
++0xE8 U+0059
++0xE9 U+005A
++0xF0 U+0030
++0xF1 U+0031
++0xF2 U+0032
++0xF3 U+0033
++0xF4 U+0034
++0xF5 U+0035
++0xF6 U+0036
++0xF7 U+0037
++0xF8 U+0038
++0xF9 U+0039
++0xFF U+009F
+--- jdk/make/tools/CharsetMapping/extsbcs 2013-09-06 11:27:42.000000000 -0700
++++ jdk/make/tools/CharsetMapping/extsbcs 2013-12-01 11:14:30.000000000 -0800
+@@ -28,6 +28,7 @@
+ IBM280 IBM280 Cp280 false sun.nio.cs.ext
+ IBM284 IBM284 Cp284 false sun.nio.cs.ext
+ IBM285 IBM285 Cp285 false sun.nio.cs.ext
++IBM290 IBM290 Cp290 false sun.nio.cs.ext
+ IBM297 IBM297 Cp297 false sun.nio.cs.ext
+ IBM420 IBM420 Cp420 false sun.nio.cs.ext
+ IBM424 IBM424 Cp424 false sun.nio.cs.ext
+--- jdk/make/tools/freetypecheck/Makefile 2013-09-06 11:27:43.000000000 -0700
++++ jdk/make/tools/freetypecheck/Makefile 2013-12-01 12:37:34.000000000 -0800
+@@ -52,8 +52,15 @@
+ else
+ ifeq ($(PLATFORM), macosx)
+ FT_LD_OPTIONS += -lfreetype -lz
+- else # linux
+- FT_LD_OPTIONS += -Wl,-rpath -Wl,$(FREETYPE_LIB_PATH) -lfreetype
++ else
++ ifeq ($(PLATFORM), bsd)
++ ifeq ($(OS_NAME), netbsd)
++ FT_LD_OPTIONS += -Wl,-R$(FREETYPE_LIB_PATH)
++ endif
++ FT_LD_OPTIONS += -lfreetype -lz
++ else # linux
++ FT_LD_OPTIONS += -Wl,-rpath -Wl,$(FREETYPE_LIB_PATH) -lfreetype
++ endif
+ endif
+ endif
+ endif
+--- jdk/make/tools/sharing/classlist.bsd 1969-12-31 16:00:00.000000000 -0800
++++ jdk/make/tools/sharing/classlist.bsd 2013-12-01 12:37:34.000000000 -0800
+@@ -0,0 +1,2327 @@
++java/lang/Object
++java/lang/String
++java/io/Serializable
++java/lang/Comparable
++java/lang/CharSequence
++java/lang/Class
++java/lang/reflect/GenericDeclaration
++java/lang/reflect/Type
++java/lang/reflect/AnnotatedElement
++java/lang/Cloneable
++java/lang/ClassLoader
++java/lang/System
++java/lang/Throwable
++java/lang/Error
++java/lang/ThreadDeath
++java/lang/Exception
++java/lang/RuntimeException
++java/security/ProtectionDomain
++java/security/AccessControlContext
++java/lang/ClassNotFoundException
++java/lang/NoClassDefFoundError
++java/lang/LinkageError
++java/lang/ClassCastException
++java/lang/ArrayStoreException
++java/lang/VirtualMachineError
++java/lang/OutOfMemoryError
++java/lang/StackOverflowError
++java/lang/IllegalMonitorStateException
++java/lang/ref/Reference
++java/lang/ref/SoftReference
++java/lang/ref/WeakReference
++java/lang/ref/FinalReference
++java/lang/ref/PhantomReference
++java/lang/ref/Finalizer
++java/lang/Thread
++java/lang/Runnable
++java/lang/ThreadGroup
++java/lang/Thread$UncaughtExceptionHandler
++java/util/Properties
++java/util/Hashtable
++java/util/Map
++java/util/Dictionary
++java/lang/reflect/AccessibleObject
++java/lang/reflect/Field
++java/lang/reflect/Member
++java/lang/reflect/Method
++java/lang/reflect/Constructor
++sun/reflect/MagicAccessorImpl
++sun/reflect/MethodAccessorImpl
++sun/reflect/MethodAccessor
++sun/reflect/ConstructorAccessorImpl
++sun/reflect/ConstructorAccessor
++sun/reflect/DelegatingClassLoader
++sun/reflect/ConstantPool
++sun/reflect/UnsafeStaticFieldAccessorImpl
++sun/reflect/UnsafeFieldAccessorImpl
++sun/reflect/FieldAccessorImpl
++sun/reflect/FieldAccessor
++java/util/Vector
++java/util/List
++java/util/Collection
++java/lang/Iterable
++java/util/RandomAccess
++java/util/AbstractList
++java/util/AbstractCollection
++java/lang/StringBuffer
++java/lang/AbstractStringBuilder
++java/lang/Appendable
++java/lang/StackTraceElement
++java/nio/Buffer
++java/lang/Boolean
++java/lang/Character
++java/lang/Float
++java/lang/Number
++java/lang/Double
++java/lang/Byte
++java/lang/Short
++java/lang/Integer
++java/lang/Long
++java/lang/NullPointerException
++java/lang/ArithmeticException
++java/io/ObjectStreamField
++java/lang/String$CaseInsensitiveComparator
++java/util/Comparator
++java/lang/RuntimePermission
++java/security/BasicPermission
++java/security/Permission
++java/security/Guard
++sun/misc/SoftCache
++java/util/AbstractMap
++java/lang/ref/ReferenceQueue
++java/lang/ref/ReferenceQueue$Null
++java/lang/ref/ReferenceQueue$Lock
++java/util/HashMap
++java/lang/annotation/Annotation
++java/util/HashMap$Entry
++java/util/Map$Entry
++java/security/AccessController
++java/lang/reflect/ReflectPermission
++sun/reflect/ReflectionFactory$GetReflectionFactoryAction
++java/security/PrivilegedAction
++java/util/Stack
++sun/reflect/ReflectionFactory
++java/lang/ref/Reference$Lock
++java/lang/ref/Reference$ReferenceHandler
++java/lang/ref/Finalizer$FinalizerThread
++java/util/Enumeration
++java/util/Iterator
++java/util/Hashtable$Entry
++java/nio/charset/Charset
++sun/nio/cs/StandardCharsets
++sun/nio/cs/FastCharsetProvider
++java/nio/charset/spi/CharsetProvider
++sun/nio/cs/StandardCharsets$Aliases
++sun/util/PreHashedMap
++sun/nio/cs/StandardCharsets$Classes
++sun/nio/cs/StandardCharsets$Cache
++java/lang/ThreadLocal
++java/util/concurrent/atomic/AtomicInteger
++sun/misc/Unsafe
++java/lang/NoSuchMethodError
++java/lang/IncompatibleClassChangeError
++sun/reflect/Reflection
++java/util/Collections
++java/util/Collections$EmptySet
++java/util/AbstractSet
++java/util/Set
++java/util/Collections$EmptyList
++java/util/Collections$EmptyMap
++java/util/Collections$ReverseComparator
++java/util/Collections$SynchronizedMap
++java/lang/Class$3
++java/lang/reflect/Modifier
++java/lang/reflect/ReflectAccess
++sun/reflect/LangReflectAccess
++java/util/Arrays
++java/lang/Math
++sun/nio/cs/US_ASCII
++sun/nio/cs/HistoricallyNamedCharset
++sun/misc/VM
++java/lang/StringCoding
++java/lang/ThreadLocal$ThreadLocalMap
++java/lang/ThreadLocal$ThreadLocalMap$Entry
++java/lang/StringCoding$StringDecoder
++sun/nio/cs/US_ASCII$Decoder
++java/nio/charset/CharsetDecoder
++java/nio/charset/CodingErrorAction
++java/nio/ByteBuffer
++java/nio/HeapByteBuffer
++java/nio/Bits
++java/nio/ByteOrder
++java/nio/CharBuffer
++java/lang/Readable
++java/nio/HeapCharBuffer
++java/nio/charset/CoderResult
++java/nio/charset/CoderResult$1
++java/nio/charset/CoderResult$Cache
++java/nio/charset/CoderResult$2
++sun/misc/Version
++java/io/FileInputStream
++java/io/InputStream
++java/io/Closeable
++java/io/FileDescriptor
++java/io/FileOutputStream
++java/io/OutputStream
++java/io/Flushable
++java/io/BufferedInputStream
++java/io/FilterInputStream
++java/util/concurrent/atomic/AtomicReferenceFieldUpdater
++java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
++sun/reflect/misc/ReflectUtil
++java/io/PrintStream
++java/io/FilterOutputStream
++java/io/BufferedOutputStream
++java/io/OutputStreamWriter
++java/io/Writer
++sun/nio/cs/StreamEncoder
++sun/security/action/GetPropertyAction
++sun/nio/cs/US_ASCII$Encoder
++java/nio/charset/CharsetEncoder
++sun/nio/cs/Surrogate$Parser
++sun/nio/cs/Surrogate
++java/io/BufferedWriter
++java/lang/Runtime
++java/io/File
++java/io/FileSystem
++java/io/UnixFileSystem
++java/io/ExpiringCache
++java/io/ExpiringCache$1
++java/util/LinkedHashMap
++java/util/LinkedHashMap$Entry
++java/lang/StringBuilder
++sun/misc/SharedSecrets
++java/lang/ClassLoader$3
++java/lang/StringCoding$StringEncoder
++java/io/ExpiringCache$Entry
++java/lang/ClassLoader$NativeLibrary
++java/lang/Terminator
++java/lang/Terminator$1
++sun/misc/SignalHandler
++sun/misc/Signal
++sun/misc/NativeSignalHandler
++java/io/Console
++java/io/Console$1
++sun/misc/JavaIOAccess
++java/lang/Shutdown
++java/util/ArrayList
++java/lang/Shutdown$Lock
++java/lang/ApplicationShutdownHooks
++java/util/IdentityHashMap
++sun/misc/OSEnvironment
++java/lang/System$2
++sun/misc/JavaLangAccess
++java/lang/Compiler
++java/lang/Compiler$1
++sun/misc/Launcher
++sun/misc/Launcher$Factory
++java/net/URLStreamHandlerFactory
++sun/misc/Launcher$ExtClassLoader
++java/net/URLClassLoader
++java/security/SecureClassLoader
++sun/security/util/Debug
++java/net/URLClassLoader$7
++sun/misc/JavaNetAccess
++java/util/StringTokenizer
++sun/misc/Launcher$ExtClassLoader$1
++java/security/PrivilegedExceptionAction
++sun/misc/MetaIndex
++java/io/BufferedReader
++java/io/Reader
++java/io/FileReader
++java/io/InputStreamReader
++sun/nio/cs/StreamDecoder
++java/lang/reflect/Array
++sun/net/www/ParseUtil
++java/util/BitSet
++java/io/ObjectStreamClass
++java/net/URL
++java/util/Locale
++java/util/concurrent/ConcurrentHashMap
++java/util/concurrent/ConcurrentMap
++java/util/concurrent/ConcurrentHashMap$Segment
++java/util/concurrent/locks/ReentrantLock
++java/util/concurrent/locks/Lock
++java/util/concurrent/locks/ReentrantLock$NonfairSync
++java/util/concurrent/locks/ReentrantLock$Sync
++java/util/concurrent/locks/AbstractQueuedSynchronizer
++java/util/concurrent/locks/AbstractOwnableSynchronizer
++java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
++java/util/concurrent/ConcurrentHashMap$HashEntry
++java/lang/CharacterDataLatin1
++java/net/Parts
++sun/net/www/protocol/file/Handler
++java/net/URLStreamHandler
++java/lang/Class$1
++sun/reflect/ReflectionFactory$1
++sun/reflect/NativeConstructorAccessorImpl
++sun/reflect/DelegatingConstructorAccessorImpl
++java/util/HashSet
++sun/misc/URLClassPath
++sun/net/www/protocol/jar/Handler
++sun/misc/Launcher$AppClassLoader
++sun/misc/Launcher$AppClassLoader$1
++java/lang/SystemClassLoaderAction
++java/net/URLClassLoader$1
++sun/misc/URLClassPath$3
++sun/misc/URLClassPath$JarLoader
++sun/misc/URLClassPath$Loader
++java/security/PrivilegedActionException
++sun/misc/URLClassPath$FileLoader
++sun/misc/URLClassPath$FileLoader$1
++sun/misc/Resource
++sun/nio/ByteBuffered
++java/security/CodeSource
++java/security/Permissions
++java/security/PermissionCollection
++sun/net/www/protocol/file/FileURLConnection
++sun/net/www/URLConnection
++java/net/URLConnection
++java/net/UnknownContentHandler
++java/net/ContentHandler
++sun/net/www/MessageHeader
++java/io/FilePermission
++java/io/FilePermission$1
++sun/security/provider/PolicyFile
++java/security/Policy
++java/security/Policy$UnsupportedEmptyCollection
++java/io/FilePermissionCollection
++java/security/AllPermission
++java/security/UnresolvedPermission
++java/security/BasicPermissionCollection
++java/security/Principal
++java/security/cert/Certificate
++java/util/AbstractList$Itr
++java/util/IdentityHashMap$KeySet
++java/util/IdentityHashMap$KeyIterator
++java/util/IdentityHashMap$IdentityHashMapIterator
++java/io/DeleteOnExitHook
++java/util/LinkedHashSet
++java/util/HashMap$KeySet
++java/util/LinkedHashMap$KeyIterator
++java/util/LinkedHashMap$LinkedHashIterator
++java/awt/Frame
++java/awt/MenuContainer
++java/awt/Window
++javax/accessibility/Accessible
++java/awt/Container
++java/awt/Component
++java/awt/image/ImageObserver
++java/lang/InterruptedException
++java/awt/Label
++java/util/logging/Logger
++java/util/logging/Handler
++java/util/logging/Level
++java/util/logging/LogManager
++java/util/logging/LogManager$1
++java/beans/PropertyChangeSupport
++java/util/logging/LogManager$LogNode
++java/util/logging/LoggingPermission
++java/util/logging/LogManager$Cleaner
++java/util/logging/LogManager$RootLogger
++java/util/logging/LogManager$2
++java/util/Properties$LineReader
++java/util/Hashtable$Enumerator
++java/beans/PropertyChangeEvent
++java/util/EventObject
++java/awt/Component$AWTTreeLock
++sun/awt/NativeLibLoader
++sun/security/action/LoadLibraryAction
++java/awt/GraphicsEnvironment
++java/awt/GraphicsEnvironment$1
++java/lang/ProcessEnvironment
++java/lang/ProcessEnvironment$Variable
++java/lang/ProcessEnvironment$ExternalData
++java/lang/ProcessEnvironment$Value
++java/lang/ProcessEnvironment$StringEnvironment
++java/util/Collections$UnmodifiableMap
++java/awt/Toolkit
++java/awt/Toolkit$3
++sun/util/CoreResourceBundleControl
++java/util/ResourceBundle$Control
++java/util/Arrays$ArrayList
++java/util/Collections$UnmodifiableRandomAccessList
++java/util/Collections$UnmodifiableList
++java/util/Collections$UnmodifiableCollection
++java/util/ResourceBundle
++java/util/ResourceBundle$1
++java/util/ResourceBundle$RBClassLoader
++java/util/ResourceBundle$RBClassLoader$1
++java/util/ResourceBundle$CacheKey
++java/util/ResourceBundle$LoaderReference
++java/util/ResourceBundle$CacheKeyReference
++java/util/ResourceBundle$SingleFormatControl
++sun/awt/resources/awt
++java/util/ListResourceBundle
++java/awt/Toolkit$1
++java/io/FileNotFoundException
++java/io/IOException
++java/awt/event/KeyEvent
++java/awt/event/InputEvent
++java/awt/event/ComponentEvent
++java/awt/AWTEvent
++java/awt/event/NativeLibLoader
++java/util/WeakHashMap
++java/util/WeakHashMap$Entry
++java/awt/Component$DummyRequestFocusController
++sun/awt/RequestFocusController
++java/awt/LayoutManager
++java/awt/LightweightDispatcher
++java/awt/event/AWTEventListener
++java/util/EventListener
++java/awt/Dimension
++java/awt/geom/Dimension2D
++java/util/concurrent/atomic/AtomicBoolean
++java/awt/ComponentOrientation
++java/awt/Component$2
++java/lang/NoSuchMethodException
++sun/awt/AppContext
++sun/awt/AppContext$1
++sun/awt/AppContext$2
++sun/awt/MostRecentKeyValue
++java/awt/Cursor
++sun/awt/X11GraphicsEnvironment
++sun/java2d/SunGraphicsEnvironment
++sun/java2d/FontSupport
++sun/awt/DisplayChangedListener
++java/io/FilenameFilter
++sun/awt/X11GraphicsEnvironment$1
++sun/awt/SunToolkit
++sun/awt/WindowClosingSupport
++sun/awt/WindowClosingListener
++sun/awt/ComponentFactory
++sun/awt/InputMethodSupport
++java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
++java/util/concurrent/locks/Condition
++sun/awt/AWTAutoShutdown
++sun/awt/SunToolkit$6
++java/awt/Dialog$ModalExclusionType
++java/lang/Enum
++java/awt/Dialog
++java/awt/Dialog$ModalityType
++java/awt/ModalEventFilter
++java/awt/EventFilter
++sun/reflect/UnsafeFieldAccessorFactory
++sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl
++sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
++sun/awt/SunDisplayChanger
++sun/java2d/SunGraphicsEnvironment$1
++java/io/StreamTokenizer
++sun/font/FontManager
++sun/font/FileFont
++sun/font/PhysicalFont
++sun/font/Font2D
++sun/font/CompositeFont
++java/util/HashMap$Values
++java/util/HashMap$ValueIterator
++java/util/HashMap$HashIterator
++java/awt/Font
++java/awt/geom/AffineTransform
++sun/font/AttributeValues
++sun/font/EAttribute
++java/text/AttributedCharacterIterator$Attribute
++java/lang/Class$4
++sun/reflect/NativeMethodAccessorImpl
++sun/reflect/DelegatingMethodAccessorImpl
++java/awt/font/TextAttribute
++java/lang/Integer$IntegerCache
++sun/font/TrueTypeFont
++java/awt/font/FontRenderContext
++java/awt/RenderingHints
++sun/awt/SunHints
++sun/awt/SunHints$Key
++java/awt/RenderingHints$Key
++sun/awt/SunHints$Value
++sun/awt/SunHints$LCDContrastKey
++sun/font/Type1Font
++java/awt/geom/Point2D$Float
++java/awt/geom/Point2D
++sun/font/StrikeMetrics
++java/awt/geom/Rectangle2D$Float
++java/awt/geom/Rectangle2D
++java/awt/geom/RectangularShape
++java/awt/Shape
++java/awt/geom/GeneralPath
++java/awt/geom/Path2D$Float
++java/awt/geom/Path2D
++sun/font/CharToGlyphMapper
++sun/font/PhysicalStrike
++sun/font/FontStrike
++sun/font/GlyphList
++sun/font/StrikeCache
++sun/java2d/Disposer
++sun/java2d/Disposer$1
++sun/font/StrikeCache$1
++sun/awt/motif/MFontConfiguration
++sun/awt/FontConfiguration
++sun/awt/FontDescriptor
++java/util/Scanner
++java/util/regex/Pattern
++java/util/regex/Pattern$Node
++java/util/regex/Pattern$LastNode
++java/util/regex/Pattern$GroupHead
++java/util/regex/Pattern$CharPropertyNames
++java/util/regex/Pattern$CharPropertyNames$1
++java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory
++java/util/regex/Pattern$CharPropertyNames$2
++java/util/regex/Pattern$CharPropertyNames$5
++java/util/regex/Pattern$CharPropertyNames$3
++java/util/regex/Pattern$CharPropertyNames$6
++java/util/regex/Pattern$CharPropertyNames$CloneableProperty
++java/util/regex/Pattern$CharProperty
++java/util/regex/Pattern$CharPropertyNames$4
++java/util/regex/Pattern$CharPropertyNames$7
++java/util/regex/Pattern$CharPropertyNames$8
++java/util/regex/Pattern$CharPropertyNames$9
++java/util/regex/Pattern$CharPropertyNames$10
++java/util/regex/Pattern$CharPropertyNames$11
++java/util/regex/Pattern$CharPropertyNames$12
++java/util/regex/Pattern$CharPropertyNames$13
++java/util/regex/Pattern$CharPropertyNames$14
++java/util/regex/Pattern$CharPropertyNames$15
++java/util/regex/Pattern$CharPropertyNames$16
++java/util/regex/Pattern$CharPropertyNames$17
++java/util/regex/Pattern$CharPropertyNames$18
++java/util/regex/Pattern$CharPropertyNames$19
++java/util/regex/Pattern$CharPropertyNames$20
++java/util/regex/Pattern$CharPropertyNames$21
++java/util/regex/Pattern$Curly
++java/util/regex/Pattern$Slice
++java/util/regex/Pattern$Begin
++java/util/regex/Pattern$First
++java/util/regex/Pattern$Start
++java/util/regex/Pattern$TreeInfo
++java/util/regex/Pattern$All
++java/util/regex/Pattern$BitClass
++java/util/regex/Pattern$BmpCharProperty
++java/util/regex/Pattern$6
++java/util/regex/Pattern$CharProperty$1
++sun/nio/ch/FileChannelImpl
++java/nio/channels/FileChannel
++java/nio/channels/ByteChannel
++java/nio/channels/ReadableByteChannel
++java/nio/channels/Channel
++java/nio/channels/WritableByteChannel
++java/nio/channels/GatheringByteChannel
++java/nio/channels/ScatteringByteChannel
++java/nio/channels/spi/AbstractInterruptibleChannel
++java/nio/channels/InterruptibleChannel
++sun/nio/ch/Util
++sun/nio/ch/IOUtil
++sun/nio/ch/FileDispatcher
++sun/nio/ch/NativeDispatcher
++sun/nio/ch/Reflect
++java/nio/MappedByteBuffer
++sun/nio/ch/Reflect$1
++sun/nio/ch/NativeThreadSet
++java/nio/channels/Channels
++java/util/Scanner$1
++sun/misc/LRUCache
++java/util/regex/Matcher
++java/util/regex/MatchResult
++java/text/NumberFormat
++java/text/Format
++java/text/spi/NumberFormatProvider
++java/util/spi/LocaleServiceProvider
++sun/util/LocaleServiceProviderPool
++sun/util/LocaleServiceProviderPool$1
++java/util/ServiceLoader
++java/util/ServiceLoader$LazyIterator
++java/util/ServiceLoader$1
++java/util/HashMap$EntrySet
++java/util/LinkedHashMap$EntryIterator
++sun/misc/Launcher$1
++sun/misc/URLClassPath$2
++java/lang/ClassLoader$2
++sun/misc/URLClassPath$1
++java/net/URLClassLoader$3
++sun/misc/CompoundEnumeration
++sun/misc/URLClassPath$JarLoader$1
++sun/misc/FileURLMapper
++java/net/URLClassLoader$3$1
++sun/util/resources/LocaleData
++sun/util/resources/LocaleData$1
++sun/util/resources/LocaleData$LocaleDataResourceBundleControl
++sun/util/LocaleDataMetaInfo
++sun/text/resources/FormatData
++java/util/ResourceBundle$BundleReference
++sun/text/resources/FormatData_en
++sun/text/resources/FormatData_en_US
++java/text/DecimalFormatSymbols
++java/text/spi/DecimalFormatSymbolsProvider
++java/util/Currency
++java/util/Currency$1
++java/util/spi/CurrencyNameProvider
++sun/util/resources/CurrencyNames
++sun/util/resources/LocaleNamesBundle
++sun/util/resources/OpenListResourceBundle
++sun/util/resources/CurrencyNames_en_US
++java/text/DecimalFormat
++java/text/FieldPosition
++java/text/DigitList
++java/math/RoundingMode
++java/util/regex/Pattern$GroupTail
++java/util/regex/Pattern$Ctype
++java/util/regex/Pattern$Ques
++java/util/regex/Pattern$GroupCurly
++java/util/regex/Pattern$5
++java/util/regex/Pattern$Loop
++java/util/regex/Pattern$Prolog
++java/util/regex/Pattern$BranchConn
++java/util/regex/Pattern$Branch
++java/nio/channels/spi/AbstractInterruptibleChannel$1
++sun/nio/ch/Interruptible
++sun/nio/ch/NativeThread
++sun/nio/ch/DirectBuffer
++java/nio/DirectByteBuffer
++java/nio/DirectByteBuffer$Deallocator
++sun/misc/Cleaner
++sun/nio/ch/IOStatus
++java/util/regex/ASCII
++java/io/DataInputStream
++java/io/DataInput
++java/lang/Short$ShortCache
++java/util/HashMap$KeyIterator
++sun/font/CompositeFontDescriptor
++sun/font/Font2DHandle
++sun/font/FontFamily
++java/awt/GraphicsDevice
++sun/awt/X11GraphicsDevice
++sun/awt/X11GraphicsConfig
++java/awt/GraphicsConfiguration
++java/awt/ImageCapabilities
++sun/java2d/x11/X11SurfaceData
++sun/java2d/SurfaceData
++java/awt/Transparency
++sun/java2d/DisposerTarget
++sun/java2d/InvalidPipeException
++java/lang/IllegalStateException
++sun/java2d/NullSurfaceData
++sun/java2d/loops/SurfaceType
++sun/awt/image/PixelConverter
++sun/awt/image/PixelConverter$Xrgb
++sun/awt/image/PixelConverter$Argb
++sun/awt/image/PixelConverter$ArgbPre
++sun/awt/image/PixelConverter$Xbgr
++sun/awt/image/PixelConverter$Rgba
++sun/awt/image/PixelConverter$RgbaPre
++sun/awt/image/PixelConverter$Ushort565Rgb
++sun/awt/image/PixelConverter$Ushort555Rgb
++sun/awt/image/PixelConverter$Ushort555Rgbx
++sun/awt/image/PixelConverter$Ushort4444Argb
++sun/awt/image/PixelConverter$ByteGray
++sun/awt/image/PixelConverter$UshortGray
++sun/awt/image/PixelConverter$Rgbx
++sun/awt/image/PixelConverter$Bgrx
++sun/awt/image/PixelConverter$ArgbBm
++java/awt/image/ColorModel
++java/awt/image/DirectColorModel
++java/awt/image/PackedColorModel
++java/awt/color/ColorSpace
++java/awt/color/ICC_Profile
++java/awt/color/ICC_ProfileRGB
++java/awt/color/ICC_Profile$1
++java/awt/color/ICC_ColorSpace
++sun/java2d/pipe/NullPipe
++sun/java2d/pipe/PixelDrawPipe
++sun/java2d/pipe/PixelFillPipe
++sun/java2d/pipe/ShapeDrawPipe
++sun/java2d/pipe/TextPipe
++sun/java2d/pipe/DrawImagePipe
++java/awt/image/IndexColorModel
++sun/java2d/pipe/LoopPipe
++sun/java2d/pipe/OutlineTextRenderer
++sun/java2d/pipe/SolidTextRenderer
++sun/java2d/pipe/GlyphListLoopPipe
++sun/java2d/pipe/GlyphListPipe
++sun/java2d/pipe/AATextRenderer
++sun/java2d/pipe/LCDTextRenderer
++sun/java2d/pipe/AlphaColorPipe
++sun/java2d/pipe/CompositePipe
++sun/java2d/pipe/PixelToShapeConverter
++sun/java2d/pipe/TextRenderer
++sun/java2d/pipe/SpanClipRenderer
++sun/java2d/pipe/Region
++sun/java2d/pipe/RegionIterator
++sun/java2d/pipe/AlphaPaintPipe
++sun/java2d/pipe/SpanShapeRenderer$Composite
++sun/java2d/pipe/SpanShapeRenderer
++sun/java2d/pipe/GeneralCompositePipe
++sun/java2d/pipe/DrawImage
++sun/java2d/loops/RenderCache
++sun/java2d/loops/RenderCache$Entry
++sun/java2d/loops/XORComposite
++java/awt/Composite
++sun/font/X11TextRenderer
++sun/java2d/loops/GraphicsPrimitive
++sun/java2d/x11/X11PMBlitLoops
++sun/java2d/loops/Blit
++sun/java2d/loops/GraphicsPrimitiveMgr
++sun/java2d/loops/CompositeType
++sun/java2d/SunGraphics2D
++sun/awt/ConstrainableGraphics
++java/awt/Graphics2D
++java/awt/Graphics
++java/awt/Color
++java/awt/Paint
++java/awt/AlphaComposite
++sun/java2d/loops/BlitBg
++sun/java2d/loops/ScaledBlit
++sun/java2d/loops/FillRect
++sun/java2d/loops/FillSpans
++sun/java2d/loops/DrawLine
++sun/java2d/loops/DrawRect
++sun/java2d/loops/DrawPolygons
++sun/java2d/loops/DrawPath
++sun/java2d/loops/FillPath
++sun/java2d/loops/MaskBlit
++sun/java2d/loops/MaskFill
++sun/java2d/loops/DrawGlyphList
++sun/java2d/loops/DrawGlyphListAA
++sun/java2d/loops/DrawGlyphListLCD
++sun/java2d/loops/TransformHelper
++java/awt/BasicStroke
++java/awt/Stroke
++sun/misc/PerformanceLogger
++sun/misc/PerformanceLogger$TimeData
++sun/java2d/pipe/ValidatePipe
++sun/java2d/loops/CustomComponent
++sun/java2d/loops/GraphicsPrimitiveProxy
++sun/java2d/loops/GeneralRenderer
++sun/java2d/loops/GraphicsPrimitiveMgr$1
++sun/java2d/loops/GraphicsPrimitiveMgr$2
++sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop
++sun/java2d/x11/X11PMBlitBgLoops
++sun/java2d/x11/X11SurfaceData$LazyPipe
++sun/awt/X11GraphicsConfig$X11GCDisposerRecord
++sun/java2d/DisposerRecord
++java/awt/BorderLayout
++java/awt/LayoutManager2
++java/awt/Rectangle
++java/awt/Toolkit$2
++sun/awt/X11/XToolkit
++sun/awt/X11/XConstants
++sun/awt/UNIXToolkit
++java/util/TreeMap
++java/util/NavigableMap
++java/util/SortedMap
++sun/awt/X11/XlibWrapper
++sun/awt/X11/XUtilConstants
++sun/awt/X11/XProtocolConstants
++sun/awt/X11/XCursorFontConstants
++sun/awt/X11/XlibWrapper$1
++sun/awt/X11/XToolkit$4
++sun/awt/X11/XModifierKeymap
++sun/awt/X11/XWrapperBase
++sun/awt/X11/Native
++sun/awt/X11/Native$1
++java/awt/EventQueue
++java/util/EmptyStackException
++java/lang/reflect/InvocationTargetException
++java/awt/EventDispatchThread
++java/awt/event/PaintEvent
++java/awt/event/MouseEvent
++sun/awt/PeerEvent
++java/awt/event/InvocationEvent
++java/awt/ActiveEvent
++sun/awt/X11/XToolkit$1
++sun/awt/X11/XEventDispatcher
++sun/awt/SunToolkit$ModalityListenerList
++sun/awt/ModalityListener
++sun/awt/SunToolkit$1
++java/util/MissingResourceException
++java/awt/Queue
++sun/awt/PostEventQueue
++java/util/LinkedList
++java/util/Deque
++java/util/Queue
++java/util/AbstractSequentialList
++sun/awt/X11/AwtScreenData
++sun/awt/X11/XWM
++sun/awt/X11/MWMConstants
++sun/awt/X11/XAtom
++java/awt/Insets
++sun/awt/X11/XWM$1
++sun/awt/X11/XSetWindowAttributes
++sun/awt/X11/XErrorEvent
++sun/awt/X11/XNETProtocol
++sun/awt/X11/XStateProtocol
++sun/awt/X11/XLayerProtocol
++sun/awt/X11/XProtocol
++sun/awt/X11/WindowPropertyGetter
++sun/awt/X11/UnsafeXDisposerRecord
++sun/awt/X11/XPropertyCache
++sun/awt/X11/XWINProtocol
++sun/awt/X11/XAtomList
++sun/awt/X11/XToolkit$3
++sun/awt/X11/XAnyEvent
++java/awt/Window$WindowDisposerRecord
++java/awt/KeyboardFocusManager
++java/awt/KeyEventDispatcher
++java/awt/KeyEventPostProcessor
++java/awt/AWTKeyStroke
++java/awt/AWTKeyStroke$1
++java/awt/DefaultKeyboardFocusManager
++java/awt/DefaultFocusTraversalPolicy
++java/awt/ContainerOrderFocusTraversalPolicy
++java/awt/FocusTraversalPolicy
++java/util/Collections$UnmodifiableSet
++sun/awt/HeadlessToolkit
++sun/awt/X11/XKeyboardFocusManagerPeer
++java/awt/peer/KeyboardFocusManagerPeer
++sun/awt/X11/XKeyboardFocusManagerPeer$1
++sun/awt/X11/XFramePeer
++java/awt/peer/FramePeer
++java/awt/peer/WindowPeer
++java/awt/peer/ContainerPeer
++java/awt/peer/ComponentPeer
++sun/awt/X11/XDecoratedPeer
++sun/awt/X11/XWindowPeer
++sun/awt/X11/XPanelPeer
++java/awt/peer/PanelPeer
++sun/awt/X11/XCanvasPeer
++java/awt/peer/CanvasPeer
++sun/awt/X11/XComponentPeer
++java/awt/dnd/peer/DropTargetPeer
++sun/awt/X11/XWindow
++sun/awt/X11ComponentPeer
++sun/awt/X11/XBaseWindow
++sun/awt/X11/XCreateWindowParams
++java/lang/Long$LongCache
++sun/awt/X11/XBaseWindow$InitialiseState
++sun/awt/X11/XBaseWindow$StateLock
++sun/awt/X11/AwtGraphicsConfigData
++sun/awt/X11/XVisualInfo
++java/awt/SystemColor
++sun/awt/X11/MotifColorUtilities
++java/lang/StrictMath
++sun/awt/X11/XRepaintArea
++sun/awt/RepaintArea
++sun/awt/X11/XWindowAttributesData
++java/util/concurrent/locks/LockSupport
++sun/awt/X11/WindowDimensions
++java/awt/Point
++java/util/TreeMap$Entry
++sun/nio/cs/UTF_8
++sun/nio/cs/Unicode
++sun/nio/cs/UTF_8$Encoder
++sun/nio/cs/UTF_8$Decoder
++sun/nio/cs/Surrogate$Generator
++sun/awt/X11/XPropertyEvent
++sun/awt/X11/XDropTargetEventProcessor
++sun/awt/X11/XDragSourceContextPeer
++sun/awt/X11/XDragSourceProtocolListener
++sun/awt/dnd/SunDragSourceContextPeer
++java/awt/dnd/peer/DragSourceContextPeer
++sun/awt/X11/XAwtState
++sun/awt/X11/XBaseWindow$1
++sun/awt/X11/XRootWindow
++sun/nio/cs/ISO_8859_1
++sun/nio/cs/ISO_8859_1$Encoder
++sun/nio/cs/ISO_8859_1$Decoder
++sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData
++sun/java2d/loops/RenderLoops
++sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec
++sun/java2d/DefaultDisposerRecord
++sun/java2d/x11/X11Renderer
++sun/awt/X11/XGlobalCursorManager
++sun/awt/GlobalCursorManager
++java/awt/Cursor$CursorDisposer
++java/awt/AWTException
++java/awt/HeadlessException
++java/lang/UnsupportedOperationException
++sun/reflect/UnsafeLongFieldAccessorImpl
++sun/reflect/UnsafeIntegerFieldAccessorImpl
++sun/awt/X11/XClientMessageEvent
++sun/awt/X11/XIconInfo
++sun/awt/X11/XAWTIcon32_java_icon16_png
++sun/awt/X11/XAWTIcon32_java_icon24_png
++sun/awt/X11/XAWTIcon32_java_icon32_png
++sun/awt/X11/XAWTIcon32_java_icon48_png
++sun/awt/X11/XSizeHints
++sun/awt/X11/XContentWindow
++sun/awt/X11/XFocusProxyWindow
++sun/awt/X11/XWMHints
++java/util/LinkedList$ListItr
++java/util/ListIterator
++sun/awt/SunToolkit$2
++java/awt/image/BufferStrategy
++java/awt/dnd/DropTarget
++java/awt/dnd/DropTargetListener
++java/awt/event/ComponentListener
++java/awt/event/FocusListener
++java/awt/event/HierarchyListener
++java/awt/event/HierarchyBoundsListener
++java/awt/event/KeyListener
++java/awt/event/MouseListener
++java/awt/event/MouseMotionListener
++java/awt/event/MouseWheelListener
++java/awt/event/InputMethodListener
++java/awt/event/ContainerListener
++javax/accessibility/AccessibleContext
++sun/reflect/UnsafeObjectFieldAccessorImpl
++java/awt/peer/LightweightPeer
++sun/awt/X11/XLabelPeer
++java/awt/peer/LabelPeer
++sun/awt/X11/XMapEvent
++sun/awt/X11/XQueryTree
++sun/awt/X11/XConfigureEvent
++sun/awt/X11/PropMwmHints
++sun/awt/GlobalCursorManager$NativeUpdater
++javax/swing/JFrame
++javax/swing/WindowConstants
++javax/swing/RootPaneContainer
++javax/swing/TransferHandler$HasGetTransferHandler
++javax/swing/JLabel
++javax/swing/SwingConstants
++javax/swing/JComponent
++javax/swing/JComponent$1
++javax/swing/SwingUtilities
++javax/swing/JRootPane
++sun/security/action/GetBooleanAction
++javax/swing/event/EventListenerList
++javax/swing/JPanel
++java/awt/FlowLayout
++javax/swing/UIManager
++javax/swing/UIManager$LookAndFeelInfo
++sun/swing/SwingUtilities2
++sun/swing/SwingUtilities2$LSBCacheEntry
++javax/swing/UIManager$LAFState
++javax/swing/UIDefaults
++javax/swing/MultiUIDefaults
++javax/swing/UIManager$1
++javax/swing/plaf/metal/MetalLookAndFeel
++javax/swing/plaf/basic/BasicLookAndFeel
++javax/swing/LookAndFeel
++sun/swing/DefaultLookup
++javax/swing/plaf/metal/OceanTheme
++javax/swing/plaf/metal/DefaultMetalTheme
++javax/swing/plaf/metal/MetalTheme
++javax/swing/plaf/ColorUIResource
++javax/swing/plaf/UIResource
++sun/swing/PrintColorUIResource
++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate
++javax/swing/plaf/FontUIResource
++sun/swing/SwingLazyValue
++javax/swing/UIDefaults$LazyValue
++javax/swing/UIDefaults$ActiveValue
++javax/swing/plaf/InsetsUIResource
++sun/swing/SwingUtilities2$2
++javax/swing/plaf/basic/BasicLookAndFeel$2
++javax/swing/plaf/DimensionUIResource
++javax/swing/UIDefaults$LazyInputMap
++java/lang/Character$CharacterCache
++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue
++javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue
++java/awt/print/PrinterJob
++sun/swing/SwingUtilities2$AATextInfo
++sun/awt/X11/XAWTXSettings
++sun/awt/X11/XMSelectionListener
++sun/awt/XSettings
++sun/awt/X11/XMSelection
++sun/awt/X11/XMSelection$1
++javax/swing/plaf/metal/MetalLookAndFeel$AATextListener
++java/beans/PropertyChangeListener
++java/beans/PropertyChangeListenerProxy
++java/util/EventListenerProxy
++sun/awt/EventListenerAggregate
++javax/swing/UIDefaults$ProxyLazyValue
++javax/swing/plaf/metal/OceanTheme$1
++javax/swing/plaf/metal/OceanTheme$2
++javax/swing/plaf/metal/OceanTheme$3
++javax/swing/plaf/metal/OceanTheme$4
++javax/swing/plaf/metal/OceanTheme$5
++javax/swing/plaf/metal/OceanTheme$6
++javax/swing/RepaintManager
++javax/swing/RepaintManager$DisplayChangedHandler
++javax/swing/SwingPaintEventDispatcher
++sun/awt/PaintEventDispatcher
++javax/swing/UIManager$2
++java/awt/PopupMenu
++java/awt/Menu
++java/awt/MenuItem
++java/awt/MenuComponent
++java/io/ObjectOutputStream
++java/io/ObjectOutput
++java/io/DataOutput
++java/io/ObjectStreamConstants
++java/io/PrintWriter
++java/io/ObjectInputStream
++java/io/ObjectInput
++java/awt/Event
++java/awt/im/InputContext
++java/awt/event/MouseWheelEvent
++java/awt/BufferCapabilities
++sun/awt/CausedFocusEvent$Cause
++java/awt/PointerInfo
++java/awt/Component$BaselineResizeBehavior
++java/awt/FontMetrics
++java/awt/Image
++java/awt/image/ImageProducer
++java/awt/image/VolatileImage
++java/awt/im/InputMethodRequests
++java/awt/event/FocusEvent
++java/awt/event/InputMethodEvent
++java/awt/event/HierarchyEvent
++javax/accessibility/AccessibleStateSet
++com/sun/swing/internal/plaf/metal/resources/metal
++sun/util/ResourceBundleEnumeration
++com/sun/swing/internal/plaf/basic/resources/basic
++javax/swing/plaf/basic/BasicPanelUI
++javax/swing/plaf/PanelUI
++javax/swing/plaf/ComponentUI
++sun/reflect/misc/MethodUtil
++sun/reflect/misc/MethodUtil$1
++java/util/jar/JarFile
++java/util/zip/ZipFile
++java/util/zip/ZipConstants
++java/util/jar/JavaUtilJarAccessImpl
++sun/misc/JavaUtilJarAccess
++sun/misc/JarIndex
++java/util/zip/ZipEntry
++java/util/jar/JarFile$JarFileEntry
++java/util/jar/JarEntry
++sun/misc/URLClassPath$JarLoader$2
++sun/net/www/protocol/jar/JarURLConnection
++java/net/JarURLConnection
++sun/net/www/protocol/jar/JarFileFactory
++sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
++java/net/HttpURLConnection
++sun/net/www/protocol/jar/URLJarFile
++sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry
++sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream
++java/util/zip/ZipFile$ZipFileInputStream
++java/security/AllPermissionCollection
++java/lang/IllegalAccessException
++javax/swing/JPasswordField
++javax/swing/JTextField
++javax/swing/text/JTextComponent
++javax/swing/Scrollable
++javax/swing/JLayeredPane
++javax/swing/JRootPane$1
++javax/swing/ArrayTable
++javax/swing/JInternalFrame
++javax/swing/JRootPane$RootLayout
++javax/swing/BufferStrategyPaintManager
++javax/swing/RepaintManager$PaintManager
++javax/swing/plaf/metal/MetalRootPaneUI
++javax/swing/plaf/basic/BasicRootPaneUI
++javax/swing/plaf/RootPaneUI
++javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap
++javax/swing/plaf/ComponentInputMapUIResource
++javax/swing/ComponentInputMap
++javax/swing/InputMap
++javax/swing/plaf/InputMapUIResource
++javax/swing/KeyStroke
++java/awt/VKCollection
++sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl
++javax/swing/plaf/basic/LazyActionMap
++javax/swing/plaf/ActionMapUIResource
++javax/swing/ActionMap
++javax/swing/LayoutFocusTraversalPolicy
++javax/swing/SortingFocusTraversalPolicy
++javax/swing/InternalFrameFocusTraversalPolicy
++javax/swing/SwingContainerOrderFocusTraversalPolicy
++javax/swing/SwingDefaultFocusTraversalPolicy
++javax/swing/LayoutComparator
++javax/swing/plaf/metal/MetalLabelUI
++javax/swing/plaf/basic/BasicLabelUI
++javax/swing/plaf/LabelUI
++javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1
++javax/swing/plaf/basic/BasicHTML
++sun/awt/NullComponentPeer
++java/awt/event/WindowEvent
++java/awt/EventQueue$1
++java/awt/EventDispatchThread$1
++java/awt/Conditional
++java/awt/EventDispatchThread$HierarchyEventFilter
++java/awt/EventFilter$FilterAction
++sun/awt/dnd/SunDropTargetEvent
++java/awt/event/ActionEvent
++java/util/jar/Manifest
++java/io/ByteArrayInputStream
++java/util/jar/Attributes
++java/util/jar/Manifest$FastInputStream
++java/util/jar/Attributes$Name
++sun/misc/ASCIICaseInsensitiveComparator
++java/util/jar/JarVerifier
++java/io/ByteArrayOutputStream
++sun/misc/ExtensionDependency
++java/lang/Package
++sun/security/util/ManifestEntryVerifier
++java/security/Provider
++java/security/Provider$ServiceKey
++java/security/Provider$EngineDescription
++java/security/Security
++java/security/Security$1
++sun/misc/FloatingDecimal
++sun/misc/FloatingDecimal$1
++sun/security/provider/NativePRNG
++java/security/SecureRandomSpi
++sun/security/provider/NativePRNG$1
++sun/security/provider/NativePRNG$RandomIO
++sun/misc/BASE64Decoder
++sun/misc/CharacterDecoder
++sun/security/util/SignatureFileVerifier
++java/awt/event/KeyAdapter
++java/lang/NumberFormatException
++java/lang/IllegalArgumentException
++java/io/FileWriter
++java/net/Authenticator
++java/net/MalformedURLException
++javax/swing/text/Element
++javax/swing/text/Document
++javax/swing/text/PlainDocument
++javax/swing/text/AbstractDocument
++javax/swing/text/GapContent
++javax/swing/text/AbstractDocument$Content
++javax/swing/text/GapVector
++javax/swing/text/GapContent$MarkVector
++javax/swing/text/GapContent$MarkData
++javax/swing/text/StyleContext
++javax/swing/text/AbstractDocument$AttributeContext
++javax/swing/text/StyleConstants
++javax/swing/text/StyleConstants$CharacterConstants
++javax/swing/text/AttributeSet$CharacterAttribute
++javax/swing/text/StyleConstants$FontConstants
++javax/swing/text/AttributeSet$FontAttribute
++javax/swing/text/StyleConstants$ColorConstants
++javax/swing/text/AttributeSet$ColorAttribute
++javax/swing/text/StyleConstants$ParagraphConstants
++javax/swing/text/AttributeSet$ParagraphAttribute
++javax/swing/text/StyleContext$FontKey
++javax/swing/text/SimpleAttributeSet
++javax/swing/text/MutableAttributeSet
++javax/swing/text/AttributeSet
++javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
++javax/swing/text/StyleContext$NamedStyle
++javax/swing/text/Style
++javax/swing/text/StyleContext$SmallAttributeSet
++javax/swing/text/AbstractDocument$BidiRootElement
++javax/swing/text/AbstractDocument$BranchElement
++javax/swing/text/AbstractDocument$AbstractElement
++javax/swing/tree/TreeNode
++javax/swing/text/AbstractDocument$1
++javax/swing/text/AbstractDocument$BidiElement
++javax/swing/text/AbstractDocument$LeafElement
++javax/swing/text/GapContent$StickyPosition
++javax/swing/text/Position
++javax/swing/text/StyleContext$KeyEnumeration
++javax/swing/text/GapContent$InsertUndo
++javax/swing/undo/AbstractUndoableEdit
++javax/swing/undo/UndoableEdit
++javax/swing/text/AbstractDocument$DefaultDocumentEvent
++javax/swing/event/DocumentEvent
++javax/swing/undo/CompoundEdit
++javax/swing/event/DocumentEvent$EventType
++javax/swing/text/Segment
++java/text/CharacterIterator
++javax/swing/text/Utilities
++javax/swing/text/SegmentCache
++javax/swing/text/SegmentCache$CachedSegment
++javax/swing/event/UndoableEditEvent
++javax/swing/text/AbstractDocument$ElementEdit
++javax/swing/event/DocumentEvent$ElementChange
++java/net/Socket
++java/net/InetAddress
++java/net/InetAddress$Cache
++java/net/InetAddress$Cache$Type
++java/net/InetAddressImplFactory
++java/net/Inet4AddressImpl
++java/net/InetAddressImpl
++java/net/InetAddress$1
++sun/net/spi/nameservice/NameService
++sun/net/util/IPAddressUtil
++java/util/RandomAccessSubList
++java/util/SubList
++java/util/SubList$1
++java/util/AbstractList$ListItr
++java/net/Inet4Address
++java/net/InetSocketAddress
++java/net/SocketAddress
++java/net/SocksSocketImpl
++java/net/SocksConsts
++java/net/PlainSocketImpl
++java/net/SocketImpl
++java/net/SocketOptions
++java/net/SocketException
++java/net/SocksSocketImpl$5
++java/net/ProxySelector
++sun/net/spi/DefaultProxySelector
++sun/net/spi/DefaultProxySelector$1
++sun/net/NetProperties
++sun/net/NetProperties$1
++sun/net/spi/DefaultProxySelector$NonProxyInfo
++java/net/Inet6Address
++java/net/URI
++java/net/URI$Parser
++java/net/Proxy
++java/net/Proxy$Type
++java/net/ConnectException
++javax/swing/JMenu
++javax/swing/MenuElement
++javax/swing/JMenuItem
++javax/swing/AbstractButton
++java/awt/ItemSelectable
++javax/swing/event/MenuListener
++javax/swing/JCheckBoxMenuItem
++javax/swing/Icon
++javax/swing/JButton
++java/awt/event/WindowListener
++java/net/URLClassLoader$2
++javax/swing/ImageIcon
++javax/swing/ImageIcon$1
++java/awt/MediaTracker
++sun/misc/SoftCache$ValueCell
++sun/awt/image/URLImageSource
++sun/awt/image/InputStreamImageSource
++sun/awt/image/ImageFetchable
++sun/awt/image/ToolkitImage
++java/awt/Image$1
++sun/awt/image/SurfaceManager$ImageAccessor
++sun/awt/image/SurfaceManager
++sun/awt/image/NativeLibLoader
++java/awt/ImageMediaEntry
++java/awt/MediaEntry
++sun/awt/image/ImageRepresentation
++java/awt/image/ImageConsumer
++sun/awt/image/ImageWatched
++sun/awt/image/ImageWatched$Link
++sun/awt/image/ImageWatched$WeakLink
++sun/awt/image/ImageConsumerQueue
++sun/awt/image/ImageFetcher
++sun/awt/image/FetcherInfo
++sun/awt/image/ImageFetcher$1
++sun/awt/image/GifImageDecoder
++sun/awt/image/ImageDecoder
++sun/awt/image/GifFrame
++java/awt/image/Raster
++java/awt/image/DataBufferByte
++java/awt/image/DataBuffer
++java/awt/image/PixelInterleavedSampleModel
++java/awt/image/ComponentSampleModel
++java/awt/image/SampleModel
++sun/awt/image/ByteInterleavedRaster
++sun/awt/image/ByteComponentRaster
++sun/awt/image/SunWritableRaster
++java/awt/image/WritableRaster
++java/awt/image/BufferedImage
++java/awt/image/WritableRenderedImage
++java/awt/image/RenderedImage
++sun/awt/image/IntegerComponentRaster
++sun/awt/image/BytePackedRaster
++java/awt/Canvas
++sun/font/FontDesignMetrics
++sun/font/FontStrikeDesc
++sun/font/CompositeStrike
++sun/font/FontStrikeDisposer
++sun/font/StrikeCache$SoftDisposerRef
++sun/font/StrikeCache$DisposableStrike
++sun/font/TrueTypeFont$TTDisposerRecord
++sun/font/TrueTypeFont$1
++java/io/RandomAccessFile
++java/nio/ByteBufferAsIntBufferB
++java/nio/IntBuffer
++sun/font/TrueTypeFont$DirectoryEntry
++java/nio/ByteBufferAsShortBufferB
++java/nio/ShortBuffer
++sun/nio/cs/UTF_16
++sun/nio/cs/UTF_16$Decoder
++sun/nio/cs/UnicodeDecoder
++sun/font/FileFontStrike
++sun/font/TrueTypeGlyphMapper
++sun/font/CMap
++sun/font/CMap$NullCMapClass
++sun/font/CMap$CMapFormat4
++java/nio/ByteBufferAsCharBufferB
++sun/font/FontDesignMetrics$KeyReference
++sun/awt/image/PNGImageDecoder
++sun/awt/image/PNGFilterInputStream
++java/util/zip/InflaterInputStream
++java/util/zip/Inflater
++sun/awt/EventQueueItem
++sun/awt/SunToolkit$3
++sun/awt/X11/XExposeEvent
++sun/reflect/UnsafeBooleanFieldAccessorImpl
++sun/awt/event/IgnorePaintEvent
++java/awt/image/DataBufferInt
++java/awt/image/SinglePixelPackedSampleModel
++sun/awt/image/IntegerInterleavedRaster
++sun/awt/image/OffScreenImage
++sun/awt/image/BufImgSurfaceData
++sun/java2d/opengl/GLXGraphicsConfig
++sun/java2d/opengl/OGLGraphicsConfig
++sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData
++sun/awt/image/WritableRasterNative
++sun/awt/image/DataBufferNative
++sun/java2d/SurfaceManagerFactory
++sun/java2d/opengl/GLXSurfaceData
++sun/java2d/opengl/OGLSurfaceData
++sun/font/CompositeGlyphMapper
++sun/java2d/loops/FontInfo
++java/util/Date
++sun/util/calendar/CalendarSystem
++sun/util/calendar/Gregorian
++sun/util/calendar/BaseCalendar
++sun/util/calendar/AbstractCalendar
++java/util/TimeZone
++java/lang/InheritableThreadLocal
++sun/util/calendar/ZoneInfo
++sun/util/calendar/ZoneInfoFile
++sun/util/calendar/ZoneInfoFile$1
++java/util/TimeZone$1
++sun/util/calendar/Gregorian$Date
++sun/util/calendar/BaseCalendar$Date
++sun/util/calendar/CalendarDate
++sun/util/calendar/CalendarUtils
++java/util/TimeZone$DisplayNames
++sun/util/TimeZoneNameUtility
++sun/util/resources/TimeZoneNames
++sun/util/resources/TimeZoneNamesBundle
++sun/util/resources/TimeZoneNames_en
++java/util/spi/TimeZoneNameProvider
++java/lang/ProcessBuilder
++java/lang/ProcessImpl
++java/lang/UNIXProcess
++java/lang/Process
++java/lang/UNIXProcess$1
++java/net/ServerSocket
++java/util/Random
++java/util/concurrent/atomic/AtomicLong
++java/lang/InternalError
++java/io/StringReader
++java/lang/SecurityException
++java/io/FilterReader
++java/lang/reflect/Proxy
++java/lang/reflect/InvocationHandler
++java/lang/NoSuchFieldException
++java/lang/InstantiationException
++java/lang/ArrayIndexOutOfBoundsException
++java/lang/IndexOutOfBoundsException
++javax/swing/JDialog
++sun/awt/X11/XClipboard
++sun/awt/datatransfer/SunClipboard
++java/awt/datatransfer/Clipboard
++java/awt/datatransfer/SystemFlavorMap
++java/awt/datatransfer/FlavorMap
++java/awt/datatransfer/FlavorTable
++java/awt/datatransfer/SystemFlavorMap$1
++sun/net/ProgressMonitor
++sun/net/DefaultProgressMeteringPolicy
++sun/net/ProgressMeteringPolicy
++java/awt/datatransfer/SystemFlavorMap$2
++java/awt/datatransfer/MimeType
++java/io/Externalizable
++java/awt/datatransfer/MimeTypeParameterList
++sun/awt/datatransfer/DataTransferer
++java/util/Collections$SynchronizedSet
++java/util/Collections$SynchronizedCollection
++java/awt/datatransfer/DataFlavor
++java/awt/datatransfer/DataFlavor$1
++sun/awt/datatransfer/DataTransferer$CharsetComparator
++sun/awt/datatransfer/DataTransferer$IndexedComparator
++sun/nio/cs/UTF_16LE
++sun/nio/cs/UTF_16BE
++sun/awt/datatransfer/DataTransferer$DataFlavorComparator
++java/rmi/Remote
++sun/awt/datatransfer/DataTransferer$1
++sun/awt/X11/XDataTransferer
++sun/awt/datatransfer/ToolkitThreadBlockedHandler
++javax/imageio/ImageTypeSpecifier
++sun/awt/X11/XSelection
++sun/security/action/GetIntegerAction
++sun/awt/X11/XSelection$IncrementalTransferHandler
++sun/awt/X11/XSelection$SelectionEventHandler
++java/awt/datatransfer/Transferable
++java/io/EOFException
++java/util/Vector$1
++java/util/zip/ZipFile$1
++java/util/zip/ZipFile$2
++java/util/jar/JarFile$1
++java/util/PropertyResourceBundle
++java/util/ResourceBundle$Control$1
++java/util/Hashtable$EntrySet
++java/lang/IllegalAccessError
++java/text/MessageFormat
++java/text/MessageFormat$Field
++java/text/Format$Field
++java/lang/CloneNotSupportedException
++sun/reflect/MethodAccessorGenerator
++sun/reflect/AccessorGenerator
++sun/reflect/ClassFileConstants
++java/lang/Void
++sun/reflect/ByteVectorFactory
++sun/reflect/ByteVectorImpl
++sun/reflect/ByteVector
++sun/reflect/ClassFileAssembler
++sun/reflect/UTF8
++sun/reflect/Label
++sun/reflect/Label$PatchInfo
++sun/reflect/MethodAccessorGenerator$1
++sun/reflect/ClassDefiner
++sun/reflect/ClassDefiner$1
++sun/reflect/BootstrapConstructorAccessorImpl
++java/awt/event/ActionListener
++javax/swing/Timer
++javax/swing/Timer$DoPostEvent
++javax/swing/TimerQueue
++javax/swing/TimerQueue$1
++javax/swing/ToolTipManager
++java/awt/event/MouseAdapter
++javax/swing/ToolTipManager$insideTimerAction
++javax/swing/ToolTipManager$outsideTimerAction
++javax/swing/ToolTipManager$stillInsideTimerAction
++sun/swing/UIAction
++javax/swing/Action
++javax/swing/ToolTipManager$MoveBeforeEnterListener
++java/awt/event/MouseMotionAdapter
++java/util/Hashtable$ValueCollection
++javax/swing/event/CaretListener
++javax/swing/JToolBar
++javax/swing/JSplitPane
++javax/swing/border/Border
++javax/swing/JToggleButton
++javax/swing/border/EmptyBorder
++javax/swing/border/AbstractBorder
++javax/swing/DefaultButtonModel
++javax/swing/ButtonModel
++javax/swing/AbstractButton$Handler
++javax/swing/event/ChangeListener
++java/awt/event/ItemListener
++javax/swing/plaf/metal/MetalButtonUI
++javax/swing/plaf/basic/BasicButtonUI
++javax/swing/plaf/ButtonUI
++javax/swing/plaf/metal/MetalBorders
++javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
++javax/swing/border/CompoundBorder
++javax/swing/plaf/metal/MetalBorders$ButtonBorder
++javax/swing/plaf/basic/BasicBorders$MarginBorder
++javax/swing/plaf/basic/BasicButtonListener
++java/awt/AWTEventMulticaster
++java/awt/event/WindowFocusListener
++java/awt/event/WindowStateListener
++java/awt/event/AdjustmentListener
++java/awt/event/TextListener
++javax/swing/event/AncestorListener
++java/beans/VetoableChangeListener
++javax/swing/ButtonGroup
++javax/swing/JToggleButton$ToggleButtonModel
++javax/swing/plaf/metal/MetalToggleButtonUI
++javax/swing/plaf/basic/BasicToggleButtonUI
++javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
++java/awt/CardLayout
++javax/swing/Box
++javax/swing/plaf/metal/MetalBorders$TextFieldBorder
++javax/swing/plaf/metal/MetalBorders$Flush3DBorder
++javax/swing/BoxLayout
++javax/swing/JMenuBar
++javax/swing/DefaultSingleSelectionModel
++javax/swing/SingleSelectionModel
++javax/swing/plaf/basic/BasicMenuBarUI
++javax/swing/plaf/MenuBarUI
++javax/swing/plaf/basic/DefaultMenuLayout
++javax/swing/plaf/metal/MetalBorders$MenuBarBorder
++javax/swing/plaf/basic/BasicMenuBarUI$Handler
++javax/swing/KeyboardManager
++javax/swing/event/MenuEvent
++javax/swing/JMenu$MenuChangeListener
++javax/swing/JMenuItem$MenuItemFocusListener
++javax/swing/plaf/basic/BasicMenuUI
++javax/swing/plaf/basic/BasicMenuItemUI
++javax/swing/plaf/MenuItemUI
++javax/swing/plaf/metal/MetalBorders$MenuItemBorder
++javax/swing/plaf/metal/MetalIconFactory
++javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon
++javax/swing/plaf/basic/BasicMenuUI$Handler
++javax/swing/event/MenuKeyListener
++javax/swing/plaf/basic/BasicMenuItemUI$Handler
++javax/swing/event/MenuDragMouseListener
++javax/swing/event/MouseInputListener
++javax/swing/event/ChangeEvent
++java/awt/event/ContainerEvent
++javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon
++javax/swing/JPopupMenu
++javax/swing/plaf/basic/BasicPopupMenuUI
++javax/swing/plaf/PopupMenuUI
++javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper
++java/awt/event/AWTEventListenerProxy
++java/awt/Toolkit$SelectiveAWTEventListener
++java/awt/Toolkit$ToolkitEventMulticaster
++javax/swing/plaf/basic/BasicLookAndFeel$1
++javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
++javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener
++javax/swing/event/PopupMenuListener
++javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener
++javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber
++javax/swing/MenuSelectionManager
++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper
++javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1
++java/awt/event/FocusAdapter
++javax/swing/JMenu$WinListener
++java/awt/event/WindowAdapter
++javax/swing/JPopupMenu$Separator
++javax/swing/JSeparator
++javax/swing/plaf/metal/MetalPopupMenuSeparatorUI
++javax/swing/plaf/metal/MetalSeparatorUI
++javax/swing/plaf/basic/BasicSeparatorUI
++javax/swing/plaf/SeparatorUI
++javax/swing/JComboBox
++javax/swing/event/ListDataListener
++javax/swing/event/CaretEvent
++javax/swing/text/TabExpander
++javax/swing/JScrollBar
++java/awt/Adjustable
++javax/swing/event/MouseInputAdapter
++javax/swing/JScrollBar$ModelListener
++javax/swing/DefaultBoundedRangeModel
++javax/swing/BoundedRangeModel
++javax/swing/plaf/metal/MetalScrollBarUI
++javax/swing/plaf/basic/BasicScrollBarUI
++javax/swing/plaf/ScrollBarUI
++javax/swing/plaf/metal/MetalBumps
++javax/swing/plaf/metal/MetalScrollButton
++javax/swing/plaf/basic/BasicArrowButton
++javax/swing/plaf/basic/BasicScrollBarUI$TrackListener
++javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener
++javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
++javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener
++javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicScrollBarUI$Handler
++javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
++javax/swing/CellRendererPane
++java/util/HashMap$EntryIterator
++javax/swing/border/MatteBorder
++sun/font/StandardGlyphVector
++java/awt/font/GlyphVector
++sun/font/StandardGlyphVector$GlyphStrike
++sun/font/CoreMetrics
++sun/font/FontLineMetrics
++java/awt/font/LineMetrics
++javax/swing/ComboBoxModel
++javax/swing/ListModel
++javax/swing/ListCellRenderer
++javax/swing/DefaultComboBoxModel
++javax/swing/MutableComboBoxModel
++javax/swing/AbstractListModel
++javax/swing/JComboBox$1
++javax/swing/AncestorNotifier
++javax/swing/plaf/metal/MetalComboBoxUI
++javax/swing/plaf/basic/BasicComboBoxUI
++javax/swing/plaf/ComboBoxUI
++javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager
++javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager
++javax/swing/plaf/basic/BasicComboPopup
++javax/swing/plaf/basic/ComboPopup
++javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass
++javax/swing/border/LineBorder
++javax/swing/plaf/basic/BasicComboPopup$1
++javax/swing/JList
++javax/swing/DropMode
++javax/swing/DefaultListSelectionModel
++javax/swing/ListSelectionModel
++javax/swing/plaf/basic/BasicListUI
++javax/swing/plaf/ListUI
++javax/swing/plaf/basic/BasicListUI$ListTransferHandler
++javax/swing/TransferHandler
++javax/swing/TransferHandler$TransferAction
++javax/swing/DefaultListCellRenderer$UIResource
++javax/swing/DefaultListCellRenderer
++javax/swing/TransferHandler$SwingDropTarget
++java/awt/dnd/DropTargetContext
++javax/swing/TransferHandler$DropHandler
++javax/swing/TransferHandler$TransferSupport
++javax/swing/plaf/basic/BasicListUI$Handler
++javax/swing/event/ListSelectionListener
++javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag
++javax/swing/plaf/basic/BasicComboPopup$Handler
++javax/swing/JScrollPane
++javax/swing/ScrollPaneConstants
++javax/swing/ScrollPaneLayout$UIResource
++javax/swing/ScrollPaneLayout
++javax/swing/JViewport
++javax/swing/ViewportLayout
++javax/swing/plaf/basic/BasicViewportUI
++javax/swing/plaf/ViewportUI
++javax/swing/JScrollPane$ScrollBar
++javax/swing/JViewport$ViewListener
++java/awt/event/ComponentAdapter
++javax/swing/plaf/metal/MetalScrollPaneUI
++javax/swing/plaf/basic/BasicScrollPaneUI
++javax/swing/plaf/ScrollPaneUI
++javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
++javax/swing/plaf/basic/BasicScrollPaneUI$Handler
++javax/swing/plaf/metal/MetalScrollPaneUI$1
++javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource
++javax/swing/plaf/basic/BasicComboBoxRenderer
++javax/swing/plaf/metal/MetalComboBoxEditor$UIResource
++javax/swing/plaf/metal/MetalComboBoxEditor
++javax/swing/plaf/basic/BasicComboBoxEditor
++javax/swing/ComboBoxEditor
++javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField
++javax/swing/JTextField$NotifyAction
++javax/swing/text/TextAction
++javax/swing/AbstractAction
++javax/swing/text/JTextComponent$MutableCaretEvent
++javax/swing/plaf/metal/MetalTextFieldUI
++javax/swing/plaf/basic/BasicTextFieldUI
++javax/swing/plaf/basic/BasicTextUI
++javax/swing/text/ViewFactory
++javax/swing/plaf/TextUI
++javax/swing/plaf/basic/BasicTextUI$BasicCursor
++javax/swing/text/DefaultEditorKit
++javax/swing/text/EditorKit
++javax/swing/text/DefaultEditorKit$InsertContentAction
++javax/swing/text/DefaultEditorKit$DeletePrevCharAction
++javax/swing/text/DefaultEditorKit$DeleteNextCharAction
++javax/swing/text/DefaultEditorKit$ReadOnlyAction
++javax/swing/text/DefaultEditorKit$DeleteWordAction
++javax/swing/text/DefaultEditorKit$WritableAction
++javax/swing/text/DefaultEditorKit$CutAction
++javax/swing/text/DefaultEditorKit$CopyAction
++javax/swing/text/DefaultEditorKit$PasteAction
++javax/swing/text/DefaultEditorKit$VerticalPageAction
++javax/swing/text/DefaultEditorKit$PageAction
++javax/swing/text/DefaultEditorKit$InsertBreakAction
++javax/swing/text/DefaultEditorKit$BeepAction
++javax/swing/text/DefaultEditorKit$NextVisualPositionAction
++javax/swing/text/DefaultEditorKit$BeginWordAction
++javax/swing/text/DefaultEditorKit$EndWordAction
++javax/swing/text/DefaultEditorKit$PreviousWordAction
++javax/swing/text/DefaultEditorKit$NextWordAction
++javax/swing/text/DefaultEditorKit$BeginLineAction
++javax/swing/text/DefaultEditorKit$EndLineAction
++javax/swing/text/DefaultEditorKit$BeginParagraphAction
++javax/swing/text/DefaultEditorKit$EndParagraphAction
++javax/swing/text/DefaultEditorKit$BeginAction
++javax/swing/text/DefaultEditorKit$EndAction
++javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction
++javax/swing/text/DefaultEditorKit$InsertTabAction
++javax/swing/text/DefaultEditorKit$SelectWordAction
++javax/swing/text/DefaultEditorKit$SelectLineAction
++javax/swing/text/DefaultEditorKit$SelectParagraphAction
++javax/swing/text/DefaultEditorKit$SelectAllAction
++javax/swing/text/DefaultEditorKit$UnselectAction
++javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction
++javax/swing/text/DefaultEditorKit$DumpModelAction
++javax/swing/plaf/basic/BasicTextUI$TextTransferHandler
++javax/swing/text/Position$Bias
++javax/swing/plaf/basic/BasicTextUI$RootView
++javax/swing/text/View
++javax/swing/plaf/basic/BasicTextUI$UpdateHandler
++javax/swing/event/DocumentListener
++javax/swing/plaf/basic/BasicTextUI$DragListener
++javax/swing/plaf/basic/BasicComboBoxEditor$UIResource
++javax/swing/plaf/basic/BasicTextUI$BasicCaret
++javax/swing/text/DefaultCaret
++javax/swing/text/Caret
++javax/swing/text/DefaultCaret$Handler
++java/awt/datatransfer/ClipboardOwner
++javax/swing/plaf/basic/BasicTextUI$BasicHighlighter
++javax/swing/text/DefaultHighlighter
++javax/swing/text/LayeredHighlighter
++javax/swing/text/Highlighter
++javax/swing/text/Highlighter$Highlight
++javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
++javax/swing/text/LayeredHighlighter$LayerPainter
++javax/swing/text/Highlighter$HighlightPainter
++javax/swing/text/DefaultHighlighter$SafeDamager
++javax/swing/text/FieldView
++javax/swing/text/PlainView
++javax/swing/text/JTextComponent$DefaultKeymap
++javax/swing/text/Keymap
++javax/swing/text/JTextComponent$KeymapWrapper
++javax/swing/text/JTextComponent$KeymapActionMap
++javax/swing/plaf/basic/BasicTextUI$FocusAction
++javax/swing/plaf/basic/BasicTextUI$TextActionWrapper
++javax/swing/JTextArea
++javax/swing/JEditorPane
++javax/swing/JTextField$ScrollRepainter
++javax/swing/plaf/metal/MetalComboBoxEditor$1
++javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder
++javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener
++javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler
++javax/swing/plaf/basic/BasicComboBoxUI$Handler
++javax/swing/plaf/metal/MetalComboBoxButton
++javax/swing/plaf/metal/MetalComboBoxIcon
++javax/swing/plaf/metal/MetalComboBoxButton$1
++javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager
++javax/swing/JComboBox$KeySelectionManager
++javax/swing/JToolBar$DefaultToolBarLayout
++javax/swing/plaf/metal/MetalToolBarUI
++javax/swing/plaf/basic/BasicToolBarUI
++javax/swing/plaf/ToolBarUI
++javax/swing/plaf/metal/MetalBorders$ToolBarBorder
++javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1
++javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
++javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder
++javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
++javax/swing/plaf/basic/BasicBorders$ButtonBorder
++javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder
++javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener
++javax/swing/plaf/basic/BasicToolBarUI$DockingListener
++javax/swing/plaf/basic/BasicToolBarUI$Handler
++javax/swing/border/EtchedBorder
++javax/swing/JToolBar$Separator
++javax/swing/plaf/basic/BasicToolBarSeparatorUI
++java/applet/Applet
++java/awt/Panel
++com/sun/awt/AWTUtilities
++javax/swing/KeyboardManager$ComponentKeyStrokePair
++sun/awt/EmbeddedFrame
++sun/awt/im/InputMethodContext
++java/awt/im/spi/InputMethodContext
++sun/awt/im/InputContext
++sun/awt/im/InputMethodManager
++sun/awt/im/ExecutableInputMethodManager
++sun/awt/X11/XInputMethodDescriptor
++sun/awt/X11InputMethodDescriptor
++java/awt/im/spi/InputMethodDescriptor
++sun/awt/im/InputMethodLocator
++sun/awt/im/ExecutableInputMethodManager$2
++sun/misc/Service
++sun/misc/Service$LazyIterator
++java/util/TreeSet
++java/util/NavigableSet
++java/util/SortedSet
++javax/swing/SizeRequirements
++javax/swing/plaf/basic/BasicGraphicsUtils
++java/awt/event/AdjustmentEvent
++java/awt/MenuBar
++sun/awt/X11/XComponentPeer$2
++java/awt/SequencedEvent
++java/beans/PropertyVetoException
++java/awt/DefaultKeyboardFocusManager$TypeAheadMarker
++java/awt/KeyboardFocusManager$HeavyweightFocusRequest
++java/awt/KeyboardFocusManager$LightweightFocusRequest
++sun/awt/KeyboardFocusManagerPeerImpl
++sun/awt/SunToolkit$7
++java/awt/Window$1DisposeAction
++java/awt/LightweightDispatcher$2
++sun/awt/X11/XReparentEvent
++sun/awt/X11/XWindowAttributes
++sun/awt/X11/XFocusChangeEvent
++sun/awt/X11/XComponentPeer$1
++sun/awt/X11/XUnmapEvent
++java/io/StringWriter
++javax/swing/JWindow
++java/io/UnsupportedEncodingException
++java/net/UnknownHostException
++java/nio/channels/SocketChannel
++java/nio/channels/spi/AbstractSelectableChannel
++java/nio/channels/SelectableChannel
++java/net/SocketImplFactory
++javax/swing/UnsupportedLookAndFeelException
++java/lang/UnsatisfiedLinkError
++javax/swing/Box$Filler
++javax/swing/JComponent$2
++sun/net/www/MimeTable
++java/net/FileNameMap
++sun/net/www/MimeTable$1
++sun/net/www/MimeEntry
++java/net/URLConnection$1
++java/text/SimpleDateFormat
++java/text/DateFormat
++java/text/DateFormat$Field
++java/util/Calendar
++java/util/GregorianCalendar
++sun/util/resources/CalendarData
++sun/util/resources/CalendarData_en
++java/text/DateFormatSymbols
++java/text/spi/DateFormatSymbolsProvider
++java/text/DontCareFieldPosition
++java/text/DontCareFieldPosition$1
++java/text/Format$FieldDelegate
++javax/swing/plaf/BorderUIResource
++javax/swing/BorderFactory
++javax/swing/border/BevelBorder
++javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
++javax/swing/plaf/metal/MetalIconFactory$FolderIcon16
++java/util/zip/ZipInputStream
++java/io/PushbackInputStream
++java/util/zip/CRC32
++java/util/zip/Checksum
++java/lang/Thread$State
++javax/swing/SwingUtilities$SharedOwnerFrame
++javax/swing/JTable
++javax/swing/event/TableModelListener
++javax/swing/event/TableColumnModelListener
++javax/swing/event/CellEditorListener
++javax/swing/event/RowSorterListener
++javax/swing/BufferStrategyPaintManager$BufferInfo
++java/awt/Component$BltSubRegionBufferStrategy
++sun/awt/SubRegionShowable
++java/awt/Component$BltBufferStrategy
++sun/awt/image/SunVolatileImage
++sun/awt/image/BufferedImageGraphicsConfig
++sun/print/PrinterGraphicsConfig
++sun/java2d/x11/X11VolatileSurfaceManager
++sun/awt/image/VolatileSurfaceManager
++java/awt/print/PrinterGraphics
++java/awt/PrintGraphics
++java/awt/GraphicsCallback$PaintCallback
++java/awt/GraphicsCallback
++sun/awt/SunGraphicsCallback
++javax/swing/JRadioButton
++java/lang/ClassFormatError
++javax/swing/JTabbedPane
++javax/swing/JTabbedPane$ModelListener
++javax/swing/plaf/metal/MetalTabbedPaneUI
++javax/swing/plaf/basic/BasicTabbedPaneUI
++javax/swing/plaf/TabbedPaneUI
++javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout
++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
++javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout
++javax/swing/plaf/basic/BasicTabbedPaneUI$Handler
++sun/swing/ImageIconUIResource
++javax/swing/GrayFilter
++java/awt/image/RGBImageFilter
++java/awt/image/ImageFilter
++java/awt/image/FilteredImageSource
++org/w3c/dom/Node
++org/xml/sax/SAXException
++javax/xml/parsers/ParserConfigurationException
++org/xml/sax/EntityResolver
++java/security/NoSuchAlgorithmException
++java/security/GeneralSecurityException
++java/util/zip/GZIPInputStream
++java/util/zip/DeflaterOutputStream
++org/xml/sax/InputSource
++javax/xml/parsers/DocumentBuilderFactory
++javax/xml/parsers/FactoryFinder
++javax/xml/parsers/SecuritySupport
++javax/xml/parsers/SecuritySupport$2
++javax/xml/parsers/SecuritySupport$5
++javax/xml/parsers/SecuritySupport$1
++javax/xml/parsers/SecuritySupport$4
++javax/xml/parsers/DocumentBuilder
++org/w3c/dom/Document
++org/xml/sax/helpers/DefaultHandler
++org/xml/sax/DTDHandler
++org/xml/sax/ContentHandler
++org/xml/sax/ErrorHandler
++org/xml/sax/SAXNotSupportedException
++org/xml/sax/Locator
++org/xml/sax/SAXNotRecognizedException
++org/xml/sax/SAXParseException
++org/w3c/dom/NodeList
++org/w3c/dom/events/EventTarget
++org/w3c/dom/traversal/DocumentTraversal
++org/w3c/dom/events/DocumentEvent
++org/w3c/dom/ranges/DocumentRange
++org/w3c/dom/Entity
++org/w3c/dom/Element
++org/w3c/dom/CharacterData
++org/w3c/dom/CDATASection
++org/w3c/dom/Text
++org/xml/sax/AttributeList
++org/w3c/dom/DOMException
++org/w3c/dom/Notation
++org/w3c/dom/DocumentType
++org/w3c/dom/Attr
++org/w3c/dom/EntityReference
++org/w3c/dom/ProcessingInstruction
++org/w3c/dom/Comment
++org/w3c/dom/DocumentFragment
++org/w3c/dom/events/Event
++org/w3c/dom/events/MutationEvent
++org/w3c/dom/traversal/TreeWalker
++org/w3c/dom/ranges/Range
++org/w3c/dom/traversal/NodeIterator
++org/w3c/dom/events/EventException
++org/w3c/dom/NamedNodeMap
++java/lang/StringIndexOutOfBoundsException
++java/awt/GridLayout
++javax/swing/plaf/metal/MetalRadioButtonUI
++javax/swing/plaf/basic/BasicRadioButtonUI
++javax/swing/plaf/basic/BasicBorders
++javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon
++java/awt/event/ItemEvent
++java/awt/CardLayout$Card
++javax/swing/JCheckBox
++javax/swing/event/ListSelectionEvent
++javax/swing/plaf/metal/MetalCheckBoxUI
++javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon
++java/lang/ExceptionInInitializerError
++com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI
++javax/swing/JProgressBar
++javax/swing/JProgressBar$ModelListener
++javax/swing/plaf/metal/MetalProgressBarUI
++javax/swing/plaf/basic/BasicProgressBarUI
++javax/swing/plaf/ProgressBarUI
++javax/swing/plaf/BorderUIResource$LineBorderUIResource
++javax/swing/plaf/basic/BasicProgressBarUI$Handler
++javax/swing/tree/TreeModel
++javax/swing/table/TableCellRenderer
++javax/swing/table/JTableHeader
++javax/swing/event/TreeExpansionListener
++javax/swing/table/AbstractTableModel
++javax/swing/table/TableModel
++javax/swing/table/DefaultTableCellRenderer
++javax/swing/JTree
++javax/swing/tree/TreeSelectionModel
++javax/swing/tree/DefaultTreeCellRenderer
++javax/swing/tree/TreeCellRenderer
++javax/swing/table/TableCellEditor
++javax/swing/CellEditor
++javax/swing/JToolTip
++javax/swing/table/TableColumn
++javax/swing/table/DefaultTableColumnModel
++javax/swing/table/TableColumnModel
++javax/swing/table/DefaultTableModel
++javax/swing/event/TableModelEvent
++sun/swing/table/DefaultTableCellHeaderRenderer
++javax/swing/plaf/basic/BasicTableHeaderUI
++javax/swing/plaf/TableHeaderUI
++javax/swing/plaf/basic/BasicTableHeaderUI$1
++javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
++javax/swing/DefaultCellEditor
++javax/swing/tree/TreeCellEditor
++javax/swing/AbstractCellEditor
++javax/swing/plaf/basic/BasicTableUI
++javax/swing/plaf/TableUI
++javax/swing/plaf/basic/BasicTableUI$TableTransferHandler
++javax/swing/plaf/basic/BasicTableUI$Handler
++javax/swing/tree/DefaultTreeSelectionModel
++javax/swing/tree/TreePath
++javax/swing/plaf/metal/MetalTreeUI
++javax/swing/plaf/basic/BasicTreeUI
++javax/swing/plaf/TreeUI
++javax/swing/plaf/basic/BasicTreeUI$Actions
++javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler
++javax/swing/plaf/metal/MetalTreeUI$LineListener
++javax/swing/plaf/basic/BasicTreeUI$Handler
++javax/swing/event/TreeModelListener
++javax/swing/event/TreeSelectionListener
++javax/swing/event/SwingPropertyChangeSupport
++javax/swing/tree/VariableHeightLayoutCache
++javax/swing/tree/AbstractLayoutCache
++javax/swing/tree/RowMapper
++javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler
++javax/swing/tree/AbstractLayoutCache$NodeDimensions
++javax/swing/JTree$TreeModelHandler
++javax/swing/tree/VariableHeightLayoutCache$TreeStateNode
++javax/swing/tree/DefaultMutableTreeNode
++javax/swing/tree/MutableTreeNode
++javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration
++javax/swing/event/TableColumnModelEvent
++java/text/ParseException
++java/text/NumberFormat$Field
++javax/swing/event/UndoableEditListener
++javax/swing/filechooser/FileFilter
++javax/swing/tree/DefaultTreeModel
++javax/swing/tree/DefaultTreeCellEditor
++javax/swing/tree/DefaultTreeCellEditor$1
++javax/swing/tree/DefaultTreeCellEditor$DefaultTextField
++javax/swing/DefaultCellEditor$1
++javax/swing/DefaultCellEditor$EditorDelegate
++javax/swing/tree/DefaultTreeCellEditor$EditorContainer
++javax/swing/JTree$TreeSelectionRedirector
++javax/swing/event/TreeModelEvent
++javax/swing/plaf/metal/MetalSplitPaneUI
++javax/swing/plaf/basic/BasicSplitPaneUI
++javax/swing/plaf/SplitPaneUI
++javax/swing/plaf/basic/BasicSplitPaneDivider
++javax/swing/plaf/basic/BasicBorders$SplitPaneBorder
++javax/swing/plaf/metal/MetalSplitPaneDivider
++javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
++javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler
++javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder
++javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
++javax/swing/plaf/basic/BasicSplitPaneUI$1
++javax/swing/plaf/basic/BasicSplitPaneUI$Handler
++javax/swing/plaf/metal/MetalSplitPaneDivider$1
++javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler
++javax/swing/plaf/metal/MetalSplitPaneDivider$2
++javax/swing/border/TitledBorder
++javax/swing/plaf/basic/BasicTextAreaUI
++java/util/Collections$UnmodifiableCollection$1
++java/io/InterruptedIOException
++java/net/NoRouteToHostException
++java/net/BindException
++javax/swing/tree/PathPlaceHolder
++javax/swing/event/TreeSelectionEvent
++javax/swing/JList$3
++javax/swing/JList$ListSelectionHandler
++javax/swing/JSlider
++javax/swing/JSlider$ModelListener
++javax/swing/plaf/metal/MetalSliderUI
++javax/swing/plaf/basic/BasicSliderUI
++javax/swing/plaf/SliderUI
++javax/swing/plaf/basic/BasicSliderUI$Actions
++javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon
++javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon
++javax/swing/plaf/basic/BasicSliderUI$TrackListener
++javax/swing/plaf/basic/BasicSliderUI$Handler
++javax/swing/plaf/basic/BasicSliderUI$ScrollListener
++javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener
++javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler
++sun/java2d/HeadlessGraphicsEnvironment
++java/util/Hashtable$KeySet
++java/awt/FontFormatException
++sun/font/Type1Font$1
++java/nio/channels/FileChannel$MapMode
++sun/nio/ch/FileChannelImpl$Unmapper
++sun/nio/ch/Util$3
++java/nio/DirectByteBufferR
++java/nio/charset/Charset$3
++sun/nio/cs/AbstractCharsetProvider
++sun/nio/cs/SingleByteDecoder
++java/lang/CharacterData00
++javax/swing/DefaultListModel
++javax/swing/event/ListDataEvent
++javax/sound/sampled/DataLine
++javax/sound/sampled/Line
++javax/sound/sampled/Line$Info
++javax/sound/sampled/DataLine$Info
++javax/sound/sampled/Control$Type
++javax/sound/sampled/FloatControl$Type
++javax/sound/sampled/LineUnavailableException
++javax/sound/sampled/UnsupportedAudioFileException
++javax/swing/JRadioButtonMenuItem
++javax/swing/JMenuItem$AccessibleJMenuItem
++javax/swing/AbstractButton$AccessibleAbstractButton
++javax/accessibility/AccessibleAction
++javax/accessibility/AccessibleValue
++javax/accessibility/AccessibleText
++javax/accessibility/AccessibleExtendedComponent
++javax/accessibility/AccessibleComponent
++javax/swing/JComponent$AccessibleJComponent
++java/awt/Container$AccessibleAWTContainer
++java/awt/Component$AccessibleAWTComponent
++javax/accessibility/AccessibleRelationSet
++javax/accessibility/AccessibleState
++javax/accessibility/AccessibleBundle
++javax/swing/plaf/basic/BasicCheckBoxMenuItemUI
++javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon
++javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem
++javax/swing/plaf/basic/BasicRadioButtonMenuItemUI
++javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon
++sun/awt/image/ImageDecoder$1
++javax/swing/JTabbedPane$Page
++java/net/DatagramSocket
++java/net/MulticastSocket
++java/net/DatagramPacket
++sun/net/InetAddressCachePolicy
++sun/net/InetAddressCachePolicy$1
++sun/net/InetAddressCachePolicy$2
++java/net/InetAddress$CacheEntry
++java/net/PlainDatagramSocketImpl
++java/net/DatagramSocketImpl
++java/net/NetworkInterface
++java/net/InterfaceAddress
++java/text/Collator
++java/text/spi/CollatorProvider
++sun/text/resources/CollationData
++sun/text/resources/CollationData_en
++sun/util/EmptyListResourceBundle
++java/text/RuleBasedCollator
++java/text/CollationRules
++java/text/RBCollationTables
++java/text/RBTableBuilder
++java/text/RBCollationTables$BuildAPI
++sun/text/IntHashtable
++sun/text/UCompactIntArray
++sun/text/normalizer/NormalizerImpl
++sun/text/normalizer/ICUData
++sun/text/normalizer/NormalizerDataReader
++sun/text/normalizer/ICUBinary$Authenticate
++sun/text/normalizer/ICUBinary
++sun/text/normalizer/NormalizerImpl$FCDTrieImpl
++sun/text/normalizer/Trie$DataManipulate
++sun/text/normalizer/NormalizerImpl$NormTrieImpl
++sun/text/normalizer/NormalizerImpl$AuxTrieImpl
++sun/text/normalizer/IntTrie
++sun/text/normalizer/Trie
++sun/text/normalizer/CharTrie
++sun/text/normalizer/CharTrie$FriendAgent
++sun/text/normalizer/UnicodeSet
++sun/text/normalizer/UnicodeMatcher
++sun/text/normalizer/NormalizerImpl$DecomposeArgs
++java/text/MergeCollation
++java/text/PatternEntry$Parser
++java/text/PatternEntry
++java/text/EntryPair
++sun/text/ComposedCharIter
++sun/text/normalizer/UTF16
++sun/net/www/protocol/http/Handler
++java/io/ObjectInputStream$BlockDataInputStream
++java/io/ObjectInputStream$PeekInputStream
++java/io/ObjectInputStream$HandleTable
++java/io/ObjectInputStream$ValidationList
++java/io/Bits
++java/io/ObjectStreamClass$Caches
++java/io/ObjectStreamClass$WeakClassKey
++java/io/ObjectStreamClass$EntryFuture
++java/io/ObjectStreamClass$2
++sun/reflect/SerializationConstructorAccessorImpl
++java/io/ObjectStreamClass$FieldReflectorKey
++java/io/ObjectStreamClass$FieldReflector
++java/io/ObjectStreamClass$1
++java/io/DataOutputStream
++java/io/ObjectStreamClass$MemberSignature
++java/io/ObjectStreamClass$3
++java/io/ObjectStreamClass$4
++java/io/ObjectStreamClass$5
++java/security/MessageDigest
++java/security/MessageDigestSpi
++sun/security/jca/GetInstance
++sun/security/jca/Providers
++sun/security/jca/ProviderList
++sun/security/jca/ProviderConfig
++sun/security/jca/ProviderList$3
++sun/security/jca/ProviderList$1
++sun/security/jca/ProviderList$2
++sun/security/jca/ProviderConfig$1
++sun/security/jca/ProviderConfig$3
++java/security/Provider$Service
++java/security/Provider$UString
++sun/security/provider/SHA
++sun/security/provider/DigestBase
++sun/security/jca/GetInstance$Instance
++java/security/MessageDigest$Delegate
++sun/security/provider/ByteArrayAccess
++java/io/ObjectStreamClass$ClassDataSlot
++sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl
++java/security/SignatureException
++java/security/InvalidKeyException
++java/security/KeyException
++java/security/Signature
++java/security/SignatureSpi
++java/io/ObjectOutputStream$BlockDataOutputStream
++sun/security/provider/DSAPublicKey
++java/security/interfaces/DSAPublicKey
++java/security/interfaces/DSAKey
++java/security/PublicKey
++java/security/Key
++sun/security/x509/X509Key
++java/io/ObjectOutputStream$HandleTable
++java/io/ObjectOutputStream$ReplaceTable
++sun/security/x509/AlgorithmId
++sun/security/util/DerEncoder
++sun/security/util/BitArray
++sun/security/util/DerOutputStream
++sun/security/util/DerValue
++java/math/BigInteger
++java/security/interfaces/DSAParams
++sun/security/util/DerInputStream
++sun/security/util/DerInputBuffer
++sun/security/util/ObjectIdentifier
++java/security/AlgorithmParameters
++java/security/AlgorithmParametersSpi
++sun/security/provider/DSAParameters
++sun/security/util/ByteArrayLexOrder
++sun/security/util/ByteArrayTagOrder
++sun/security/util/DerIndefLenConverter
++java/io/InvalidClassException
++java/io/ObjectStreamException
++java/io/ObjectInputStream$GetFieldImpl
++java/io/ObjectInputStream$GetField
++sun/security/jca/ServiceId
++sun/security/jca/ProviderList$ServiceList
++sun/security/jca/ProviderList$ServiceList$1
++java/security/Signature$Delegate
++java/security/interfaces/DSAPrivateKey
++java/security/PrivateKey
++sun/security/provider/DSA$SHA1withDSA
++sun/security/provider/DSA
++java/security/spec/DSAParameterSpec
++java/security/spec/AlgorithmParameterSpec
++java/math/MutableBigInteger
++java/math/SignedMutableBigInteger
++java/awt/EventQueue$1AWTInvocationLock
++java/awt/Component$FlipBufferStrategy
++java/awt/SentEvent
++sun/awt/X11/XDestroyWindowEvent
++sun/awt/X11/XDropTargetRegistry
++sun/awt/X11/XEmbeddedFramePeer
++sun/awt/X11/XDragAndDropProtocols
++sun/awt/X11/XDropTargetContextPeer
++sun/awt/dnd/SunDropTargetContextPeer
++java/awt/dnd/peer/DropTargetContextPeer
++sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl
++sun/awt/X11/XDropTargetProtocolListener
++sun/awt/X11/XDnDDragSourceProtocol
++sun/awt/X11/XDragSourceProtocol
++sun/awt/X11/MotifDnDDragSourceProtocol
++sun/awt/X11/XDnDDropTargetProtocol
++sun/awt/X11/XDropTargetProtocol
++sun/awt/X11/MotifDnDDropTargetProtocol
++sun/awt/X11/XDnDConstants
++sun/awt/X11/MotifDnDConstants
++javax/swing/JTable$2
++javax/swing/JTable$Resizable3
++javax/swing/JTable$Resizable2
++javax/swing/JTable$5
++javax/swing/event/AncestorEvent
++sun/font/FontDesignMetrics$MetricsKey
++java/awt/geom/Line2D$Float
++java/awt/geom/Line2D
++com/sun/java/swing/plaf/gtk/GTKLookAndFeel
++javax/swing/plaf/synth/SynthLookAndFeel
++javax/swing/plaf/synth/DefaultSynthStyleFactory
++javax/swing/plaf/synth/SynthStyleFactory
++sun/swing/BakedArrayList
++javax/swing/plaf/synth/SynthLookAndFeel$Handler
++javax/swing/plaf/synth/SynthDefaultLookup
++com/sun/java/swing/plaf/gtk/GTKEngine
++com/sun/java/swing/plaf/gtk/GTKEngine$Settings
++com/sun/java/swing/plaf/gtk/GTKStyleFactory
++com/sun/java/swing/plaf/gtk/PangoFonts
++com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL
++javax/swing/plaf/synth/Region
++javax/swing/plaf/synth/SynthLookAndFeel$AATextListener
++com/sun/java/swing/plaf/gtk/GTKRegion
++com/sun/java/swing/plaf/gtk/GTKStyle
++com/sun/java/swing/plaf/gtk/GTKConstants
++javax/swing/plaf/synth/SynthStyle
++javax/swing/plaf/synth/SynthGraphicsUtils
++com/sun/java/swing/plaf/gtk/GTKGraphicsUtils
++com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon
++sun/swing/plaf/synth/SynthIcon
++com/sun/java/swing/plaf/gtk/GTKColorType
++javax/swing/plaf/synth/ColorType
++com/sun/java/swing/plaf/gtk/resources/gtk
++com/sun/swing/internal/plaf/synth/resources/synth
++com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue
++com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue
++com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2
++com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3
++javax/swing/plaf/synth/SynthPanelUI
++javax/swing/plaf/synth/SynthConstants
++javax/swing/plaf/synth/SynthContext
++javax/swing/plaf/synth/SynthBorder
++javax/swing/plaf/synth/SynthRootPaneUI
++javax/swing/plaf/synth/SynthLabelUI
++javax/swing/plaf/synth/SynthButtonUI
++javax/swing/plaf/synth/SynthToggleButtonUI
++javax/swing/plaf/basic/BasicBorders$FieldBorder
++javax/swing/plaf/synth/SynthMenuBarUI
++javax/swing/plaf/synth/SynthMenuUI
++javax/swing/plaf/synth/SynthUI
++com/sun/java/swing/plaf/gtk/GTKIconFactory
++com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon
++com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon
++com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType
++javax/swing/plaf/basic/BasicIconFactory
++javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon
++javax/swing/plaf/synth/SynthMenuItemUI
++javax/swing/plaf/synth/SynthPopupMenuUI
++javax/swing/plaf/synth/SynthSeparatorUI
++javax/swing/plaf/synth/SynthScrollBarUI
++javax/swing/plaf/synth/SynthArrowButton
++javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI
++javax/swing/plaf/synth/SynthComboBoxUI
++javax/swing/plaf/synth/SynthComboPopup
++javax/swing/plaf/synth/SynthListUI
++javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer
++javax/swing/plaf/synth/SynthViewportUI
++javax/swing/plaf/synth/SynthScrollPaneUI
++javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder
++javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer
++javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor
++javax/swing/plaf/synth/SynthTextFieldUI
++javax/swing/plaf/synth/SynthToolBarUI
++javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager
++com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon
++com/sun/java/swing/plaf/gtk/GTKConstants$Orientation
++sun/awt/X11/XTranslateCoordinates
++com/sun/java/swing/plaf/gtk/GTKPainter
++javax/swing/plaf/synth/SynthPainter
++javax/swing/plaf/synth/SynthPainter$1
++com/sun/java/swing/plaf/gtk/GTKConstants$PositionType
++com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType
++java/io/ObjectInputStream$HandleTable$HandleList
++sun/java2d/pipe/ShapeSpanIterator
++sun/java2d/pipe/SpanIterator
++sun/dc/path/PathConsumer
++sun/dc/pr/PathStroker
++sun/dc/pr/PathDasher
++java/awt/geom/LineIterator
++java/awt/geom/PathIterator
++sun/applet/Main
++sun/applet/AppletMessageHandler
++sun/applet/resources/MsgAppletViewer
++sun/applet/AppletSecurity
++sun/awt/AWTSecurityManager
++java/lang/SecurityManager
++java/security/DomainCombiner
++sun/applet/AppletSecurity$1
++java/lang/SecurityManager$1
++java/security/SecurityPermission
++java/util/PropertyPermission
++sun/applet/AppletViewer
++java/applet/AppletContext
++java/awt/print/Printable
++sun/security/util/SecurityConstants
++java/awt/AWTPermission
++java/net/NetPermission
++java/net/SocketPermission
++javax/security/auth/AuthPermission
++java/lang/Thread$1
++java/util/logging/LogManager$5
++sun/applet/StdAppletViewerFactory
++sun/applet/AppletViewerFactory
++sun/applet/AppletViewer$UserActionListener
++sun/applet/AppletViewerPanel
++sun/applet/AppletPanel
++java/applet/AppletStub
++sun/misc/MessageUtils
++sun/applet/AppletPanel$10
++java/security/Policy$1
++sun/security/provider/PolicyFile$1
++sun/security/provider/PolicyFile$3
++sun/security/util/PropertyExpander
++sun/security/provider/PolicyParser
++sun/security/util/PolicyUtil
++sun/security/provider/PolicyParser$GrantEntry
++sun/security/provider/PolicyParser$PermissionEntry
++sun/security/provider/PolicyFile$PolicyEntry
++sun/security/provider/PolicyFile$6
++sun/security/provider/PolicyFile$7
++java/net/SocketPermissionCollection
++java/util/PropertyPermissionCollection
++sun/applet/AppletPanel$9
++sun/applet/AppletClassLoader
++sun/applet/AppletThreadGroup
++sun/applet/AppContextCreator
++sun/applet/AppletPanel$1
++sun/awt/X11/XMenuBarPeer
++java/awt/peer/MenuBarPeer
++java/awt/peer/MenuComponentPeer
++sun/awt/X11/XBaseMenuWindow
++sun/awt/X11/XMenuPeer
++java/awt/peer/MenuPeer
++java/awt/peer/MenuItemPeer
++sun/awt/X11/XMenuItemPeer
++java/awt/MenuShortcut
++sun/awt/X11/XMenuWindow
++sun/awt/X11/XMenuItemPeer$TextMetrics
++sun/awt/AppContext$3
++sun/awt/X11/XMenuBarPeer$MappingData
++sun/awt/X11/XBaseMenuWindow$MappingData
++sun/applet/AppletViewer$1
++sun/applet/AppletViewer$1AppletEventListener
++sun/applet/AppletListener
++sun/applet/AppletEventMulticaster
++sun/misc/Queue
++sun/misc/QueueElement
++sun/applet/AppletEvent
++sun/applet/AppletClassLoader$1
++sun/awt/X11/XBaseMenuWindow$3
++java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent
++sun/awt/CausedFocusEvent
++sun/awt/X11/XWindow$1
++java/net/URLClassLoader$4
++sun/applet/AppletClassLoader$2
++javax/swing/JApplet
++java/lang/ClassLoader$1
++sun/security/provider/PolicyFile$5
++java/security/PermissionsEnumerator
++java/util/Collections$1
++sun/applet/AppletPanel$11
++sun/applet/AppletPanel$8
++sun/applet/AppletPanel$2
++sun/applet/AppletPanel$3
++sun/applet/AppletPanel$6
++javax/swing/BufferStrategyPaintManager$1
++# f3ac8b467e7f8c49
+--- jdk/src/bsd/doc/man/appletviewer.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/appletviewer.1 2013-12-01 12:37:34.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH appletviewer 1 "10 May 2011"
++.TH appletviewer 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+@@ -36,11 +36,14 @@
+ .SH "DESCRIPTION"
+ .LP
+ .LP
+-The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see
++The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see
+ .na
+ \f2AppletViewer Tags\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html.
++http://docs.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html.
++.LP
++.LP
++\f3Note:\fP The \f3appletviewer\fP is intended for development purposes only. See About Sample / Test Applications and Code for more information.
+ .LP
+ .LP
+ \f3Note:\fP The \f3appletviewer\fP requires encoded URLs according to the escaping mechanism defined in RFC2396. Only encoded URLs are supported. However, file names must be unencoded, as specified in RFC2396.
+@@ -49,18 +52,18 @@
+ .LP
+ .RS 3
+ .TP 3
+-\-debug
+-Starts the applet viewer in the Java debugger, jdb(1), thus allowing you to debug the applets in the document.
++\-debug
++Starts the applet viewer in the Java debugger, jdb(1), thus allowing you to debug the applets in the document.
+ .TP 3
+-\-encoding \ \ encoding name
+-Specify the input HTML file encoding name.
++\-encoding \ \ encoding name
++Specify the input HTML file encoding name.
+ .TP 3
+-\-Jjavaoption
+-Passes through the string \f2javaoption\fP as a single argument to the Java interpreter which runs the appletviewer. The argument should not contain spaces. Multiple argument words must all begin with the prefix \f3\-J\fP, which is stripped. This is useful for adjusting the compiler's execution environment or memory usage.
++\-Jjavaoption
++Passes through the string \f2javaoption\fP as a single argument to the Java interpreter which runs the appletviewer. The argument should not contain spaces. Multiple argument words must all begin with the prefix \f3\-J\fP, which is stripped. This is useful for adjusting the compiler's execution environment or memory usage.
+ .RE
+
+ .LP
+ .LP
+
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/apt.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/apt.1 2013-12-01 12:37:34.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH apt 1 "10 May 2011"
++.TH apt 1 "16 Mar 2012"
+
+ .LP
+ .SH "NAME"
+@@ -39,11 +39,11 @@
+ .LP
+ .RS 3
+ .TP 3
+-sourcefiles
+-Zero or more source files to be processed.
++sourcefiles
++Zero or more source files to be processed.
+ .TP 3
+-@files
+-One or more files that list source files or other options
++@files
++One or more files that list source files or other options
+ .RE
+
+ .LP
+@@ -56,80 +56,80 @@
+ The tool \f2apt\fP, annotation processing tool, includes reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP.
+ .LP
+ .LP
+-A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in
++A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in
+ .na
+ \f4Getting Started with \fP\f4apt\fP. @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html
+ .LP
+ .SH "OPTIONS"
+ .LP
+-.SS
++.SS
+ apt specific options
+ .LP
+ .RS 3
+ .TP 3
+-\-s dir
+-Specify the directory root under which processor\-generated source files will be placed; files are placed in subdirectories based on package namespace.
++\-s dir
++Specify the directory root under which processor\-generated source files will be placed; files are placed in subdirectories based on package namespace.
+ .TP 3
+-\-nocompile
+-Do not compile source files to class files.
++\-nocompile
++Do not compile source files to class files.
+ .TP 3
+-\-print
+-Print out textual representation of specified types; perform no annotation processing or compilation.
++\-print
++Print out textual representation of specified types; perform no annotation processing or compilation.
+ .TP 3
+-\-A[key[=val]]
+-Options to pass to annotation processors \-\- these are not interpreted by \f2apt\fP directly, but are made available for use by individual processors
++\-A[key[=val]]
++Options to pass to annotation processors \-\- these are not interpreted by \f2apt\fP directly, but are made available for use by individual processors
+ .TP 3
+-\-factorypath path
+-Specify where to find annotation processor factories; if this option is used, the classpath is \f2not\fP searched for factories.
++\-factorypath path
++Specify where to find annotation processor factories; if this option is used, the classpath is \f2not\fP searched for factories.
+ .TP 3
+-\-factory classname
+-Name of annotation processor factory to use; bypasses default discovery process
++\-factory classname
++Name of annotation processor factory to use; bypasses default discovery process
+ .TP 3
+-\-version
+-Print version information.
++\-version
++Print version information.
+ .TP 3
+-\-X
+-Display information about non\-standard options.
++\-X
++Display information about non\-standard options.
+ .RE
+
+ .LP
+-.SS
++.SS
+ Options shared with javac
+ .LP
+ .RS 3
+ .TP 3
+-\-d dir
+-Specify where to place processor and javac generated class files
++\-d dir
++Specify where to place processor and javac generated class files
+ .TP 3
+-\-cp path or \-classpath path
+-Specify where to find user class files and annotation processor factories. If \f2\-factorypath\fP is given, the classpath is not searched for factories.
++\-cp path or \-classpath path
++Specify where to find user class files and annotation processor factories. If \f2\-factorypath\fP is given, the classpath is not searched for factories.
+ .RE
+
+ .LP
+ .LP
+ Consult the javac(1) man page for information on \f2javac\fP options.
+ .LP
+-.SS
++.SS
+ Non\-Standard Options
+ .LP
+ .RS 3
+ .TP 3
+-\-XListAnnotationTypes
+-List found annotation types.
++\-XListAnnotationTypes
++List found annotation types.
+ .TP 3
+-\-XListDeclarations
+-List specified and included declarations.
++\-XListDeclarations
++List specified and included declarations.
+ .TP 3
+-\-XPrintAptRounds
+-Print information about initial and recursive \f2apt\fP rounds.
++\-XPrintAptRounds
++Print information about initial and recursive \f2apt\fP rounds.
+ .TP 3
+-\-XPrintFactoryInfo
+-Print information about which annotations a factory is asked to process.
++\-XPrintFactoryInfo
++Print information about which annotations a factory is asked to process.
+ .TP 3
+-\-XclassesAsDecls
+-Treat both class and source files as declarations to process.
++\-XclassesAsDecls
++Treat both class and source files as declarations to process.
+ .RE
+
+ .LP
+@@ -146,8 +146,8 @@
+ .RS 3
+ .TP 2
+ o
+-javac(1), java(1)
++javac(1), java(1)
+ .RE
+
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/extcheck.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/extcheck.1 2013-12-01 12:37:34.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH extcheck 1 "10 May 2011"
++.TH extcheck 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+@@ -57,11 +57,11 @@
+ .LP
+ .RS 3
+ .TP 3
+-\-verbose
+-Lists Jar files in the extension directory as they are checked. Additionally, manifest attributes of the target jar file and any conflicting jar files are also reported.
++\-verbose
++Lists Jar files in the extension directory as they are checked. Additionally, manifest attributes of the target jar file and any conflicting jar files are also reported.
+ .TP 3
+-\-Joption
+-Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes.
++\-Joption
++Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes.
+ .RE
+
+ .LP
+@@ -70,4 +70,4 @@
+ .LP
+ jar(1)
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/idlj.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/idlj.1 2013-12-01 12:37:34.000000000 -0800
+@@ -19,13 +19,13 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH idlj 1 "10 May 2011"
++.TH idlj 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+ idlj \- The IDL\-to\-Java Compiler
+ .LP
+-\f3idlj\fP generates Java bindings from a given IDL file.
++\f3idlj\fP generates Java bindings from a given IDL file.
+ .SH "Synopsis"
+ .LP
+ .nf
+@@ -43,13 +43,13 @@
+ .SH "Description"
+ .LP
+ .LP
+-The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\ For binding details, see the
++The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\ For binding details, see the
+ .na
+ \f2OMG IDL to Java Language Language Mapping Specification\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP.
++http://docs.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP.
+ .LP
+-.SS
++.SS
+ Emitting Client and Server Bindings
+ .LP
+ .LP
+@@ -106,18 +106,18 @@
+ The default server\-side model is the \f2Portable Servant Inheritance Model\fP. Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2MyPOA.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2MyPOA\fP.
+ .LP
+ .LP
+-\f2MyPOA.java\fP is a stream\-based skeleton that extends
++\f2MyPOA.java\fP is a stream\-based skeleton that extends
+ .na
+ \f2org.omg.PortableServer.Servant\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements.
++http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements.
+ .LP
+ .LP
+-The \f2PortableServer\fP module for the
++The \f2PortableServer\fP module for the
+ .na
+ \f2Portable Object Adapter (POA)\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.
++http://docs.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.
+ .LP
+ .LP
+ Another option for the Inheritance Model is to use the \f2\-oldImplBase\fP flag in order to generate server\-side bindings that are compatible with versions of the Java programming language prior to J2SE 1.4. Note that using the \f2\-oldImplBase\fP flag is non\-standard: these APIs are being deprecated. You would use this flag ONLY for compatibility with existing servers written in J2SE 1.3. In that case, you would need to modify an existing MAKEFILE to add the \f2\-oldImplBase\fP flag to the \f2idlj\fP compiler, otherwise POA\-based server\-side mappings will be generated. To generate server\-side bindings that are backwards compatible:
+@@ -170,7 +170,7 @@
+ .fl
+ MyServant myDelegate = new MyServant();
+ .fl
+- myDelegate.setORB(orb);
++ myDelegate.setORB(orb);
+ .fl
+
+ .fl
+@@ -218,7 +218,7 @@
+ .fl
+ MyServant myDelegate = new MyServant();
+ .fl
+- myDelegate.setORB(orb);
++ myDelegate.setORB(orb);
+ .fl
+
+ .fl
+@@ -236,7 +236,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Specifying Alternate Locations for Emitted Files
+ .LP
+ .LP
+@@ -253,7 +253,7 @@
+ .LP
+ For the interface \f2My\fP, the bindings will be emitted to \f2/altdir/My.java\fP, etc., instead of \f2./My.java\fP.
+ .LP
+-.SS
++.SS
+ Specifying Alternate Locations for Include Files
+ .LP
+ .LP
+@@ -291,13 +291,13 @@
+
+ .LP
+ .LP
+-The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the
++The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the
+ .na
+ \f2Setting the Classpath\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general.
++http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#general.
+ .LP
+-.SS
++.SS
+ Emitting Bindings for Include Files
+ .LP
+ .LP
+@@ -469,7 +469,7 @@
+ .LP
+ If the \f2\-emitAll\fP flag had been used in the previous example, then all types in all included files would be emitted.
+ .LP
+-.SS
++.SS
+ Inserting Package Prefixes
+ .LP
+ .LP
+@@ -525,7 +525,7 @@
+ .fi
+
+ .LP
+-So the line for the above example would be:
++So the line for the above example would be:
+ .nf
+ \f3
+ .fl
+@@ -538,7 +538,7 @@
+ .LP
+ The use of this option does not affect the Repository ID.
+ .LP
+-.SS
++.SS
+ Defining Symbols Before Compilation
+ .LP
+ .LP
+@@ -555,7 +555,7 @@
+ .LP
+ is the equivalent of putting the line \f2#define MYDEF\fP inside \f2My.idl\fP.
+ .LP
+-.SS
++.SS
+ Preserving Pre\-Existing Bindings
+ .LP
+ .LP
+@@ -572,7 +572,7 @@
+ .LP
+ emits all client\-side bindings that do not already exist.
+ .LP
+-.SS
++.SS
+ Viewing Progress of Compilation
+ .LP
+ .LP
+@@ -589,7 +589,7 @@
+ .LP
+ By default the compiler does not operate in verbose mode.
+ .LP
+-.SS
++.SS
+ Displaying Version Information
+ .LP
+ .LP
+@@ -611,8 +611,8 @@
+ .LP
+ .RS 3
+ .TP 3
+-\-d symbol
+-This is equivalent to the following line in an IDL file:
++\-d symbol
++This is equivalent to the following line in an IDL file:
+ .nf
+ \f3
+ .fl
+@@ -621,32 +621,32 @@
+ \fP
+ .fi
+ .TP 3
+-\-emitAll
+-Emit all types, including those found in \f2#include\fP files.
++\-emitAll
++Emit all types, including those found in \f2#include\fP files.
+ .TP 3
+-\-fside
+-Defines what bindings to emit. \f2side\fP is one of \f2client\fP, \f2server\fP, \f2serverTIE\fP, \f2all\fP, or \f2allTIE\fP. The \f2\-fserverTIE\fP and \f2\-fallTIE\fP options cause delegate model skeletons to be emitted. Assumes \f2\-fclient\fP if the flag is not specified.
++\-fside
++Defines what bindings to emit. \f2side\fP is one of \f2client\fP, \f2server\fP, \f2serverTIE\fP, \f2all\fP, or \f2allTIE\fP. The \f2\-fserverTIE\fP and \f2\-fallTIE\fP options cause delegate model skeletons to be emitted. Assumes \f2\-fclient\fP if the flag is not specified.
+ .TP 3
+-\-i include\-path
+-By default, the current directory is scanned for included files. This option adds another directory.
++\-i include\-path
++By default, the current directory is scanned for included files. This option adds another directory.
+ .TP 3
+-\-keep
+-If a file to be generated already exists, do not overwrite it. By default it is overwritten.
++\-keep
++If a file to be generated already exists, do not overwrite it. By default it is overwritten.
+ .TP 3
+-\-noWarn
+-Suppresses warning messages.
++\-noWarn
++Suppresses warning messages.
+ .TP 3
+-\-oldImplBase
+-Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inheritance Model server\-side bindings are generated. This option provides backward\-compatibility with older versions of the Java programming language by generating server\-side bindings that are \f2ImplBase\fP Inheritance Model classes.
++\-oldImplBase
++Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inheritance Model server\-side bindings are generated. This option provides backward\-compatibility with older versions of the Java programming language by generating server\-side bindings that are \f2ImplBase\fP Inheritance Model classes.
+ .TP 3
+-\-pkgPrefix type prefix
+-Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module.
++\-pkgPrefix type prefix
++Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module.
+ .TP 3
+-\-pkgTranslate type package
++\-pkgTranslate type package
+ Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly.
+ .br
+ .br
+-If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include:
++If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include:
+ .nf
+ \f3
+ .fl
+@@ -654,7 +654,7 @@
+ .fl
+ \fP
+ .fi
+-The following translations would occur:
++The following translations would occur:
+ .nf
+ \f3
+ .fl
+@@ -668,47 +668,47 @@
+ .fl
+ \fP
+ .fi
+-The following package names cannot be translated:
++The following package names cannot be translated:
+ .RS 3
+ .TP 2
+ o
+-\f2org\fP
++\f2org\fP
+ .TP 2
+ o
+-\f2org.omg\fP or any subpackages of \f2org.omg\fP
++\f2org.omg\fP or any subpackages of \f2org.omg\fP
+ .RE
+-Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error.
++Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error.
+ .TP 3
+-\-skeletonName xxx%yyy
+-Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are:
++\-skeletonName xxx%yyy
++Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are:
+ .RS 3
+ .TP 2
+ o
+-%POA for the \f2POA\fP base class (\f2\-fserver\fP or \f2\-fall\fP)
++%POA for the \f2POA\fP base class (\f2\-fserver\fP or \f2\-fall\fP)
+ .TP 2
+ o
+-_%ImplBase for the \f2oldImplBase\fP class (\f2\-oldImplBase\fP and (\f2\-fserver\fP or \f2\-fall\fP))
++_%ImplBase for the \f2oldImplBase\fP class (\f2\-oldImplBase\fP and (\f2\-fserver\fP or \f2\-fall\fP))
+ .RE
+ .TP 3
+-\-td dir
+-Use \f2dir\fP for the output directory instead of the current directory.
++\-td dir
++Use \f2dir\fP for the output directory instead of the current directory.
+ .TP 3
+-\-tieName xxx%yyy
+-Name the tie according to the pattern. The defaults are:
++\-tieName xxx%yyy
++Name the tie according to the pattern. The defaults are:
+ .RS 3
+ .TP 2
+ o
+-%POATie for the \f2POA\fP tie base class (\f2\-fserverTie\fP or \f2\-fallTie\fP)
++%POATie for the \f2POA\fP tie base class (\f2\-fserverTie\fP or \f2\-fallTie\fP)
+ .TP 2
+ o
+-%_Tie for the \f2oldImplBase\fP tie class (\f2\-oldImplBase\fP and (\f2\-fserverTie\fP or \f2\-fallTie\fP))
++%_Tie for the \f2oldImplBase\fP tie class (\f2\-oldImplBase\fP and (\f2\-fserverTie\fP or \f2\-fallTie\fP))
+ .RE
+ .TP 3
+-\-nowarn, \-verbose
+-Verbose mode.
++\-nowarn, \-verbose
++Verbose mode.
+ .TP 3
+-\-version
+-Display version information and terminate.
++\-version
++Display version information and terminate.
+ .RE
+
+ .LP
+@@ -720,10 +720,10 @@
+ .RS 3
+ .TP 2
+ o
+-Escaped identifiers in the global scope may not have the same spelling as IDL primitive types, \f2Object\fP, or \f2ValueBase\fP. This is because the symbol table is pre\-loaded with these identifiers; allowing them to be redefined would overwrite their original definitions. (Possible permanent restriction).
++Escaped identifiers in the global scope may not have the same spelling as IDL primitive types, \f2Object\fP, or \f2ValueBase\fP. This is because the symbol table is pre\-loaded with these identifiers; allowing them to be redefined would overwrite their original definitions. (Possible permanent restriction).
+ .TP 2
+ o
+-The \f2fixed\fP IDL type is not supported.
++The \f2fixed\fP IDL type is not supported.
+ .RE
+
+ .LP
+@@ -732,8 +732,8 @@
+ .RS 3
+ .TP 2
+ o
+-No import generated for global identifiers. If you invoke on an unexported local impl, you do get an exception, but it seems to be due to a \f2NullPointerException\fP in the \f2ServerDelegate\fP DSI code.
++No import generated for global identifiers. If you invoke on an unexported local impl, you do get an exception, but it seems to be due to a \f2NullPointerException\fP in the \f2ServerDelegate\fP DSI code.
+ .RE
+
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/jar.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/jar.1 2013-12-01 12:37:33.000000000 -0800
+@@ -19,31 +19,31 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH jar 1 "10 May 2011"
++.TH jar 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+ jar\-The Java Archive Tool
+ .LP
+-\f3jar\fP combines multiple files into a single JAR archive file.
++\f3jar\fP combines multiple files into a single JAR archive file.
+ .SH "SYNOPSIS"
+ .LP
+ .RS 3
+ .TP 3
+-Create jar file
+-\f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
++Create jar file
++\f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
+ .TP 3
+-Update jar file
+-\f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
++Update jar file
++\f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP
+ .TP 3
+-Extract jar file
+-\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
++Extract jar file
++\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
+ .TP 3
+-List table of contents of jar file
+-\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
++List table of contents of jar file
++\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP
+ .TP 3
+-Add index to jar file
+-\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP
++Add index to jar file
++\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP
+ .RE
+
+ .LP
+@@ -52,36 +52,36 @@
+ .LP
+ .RS 3
+ .TP 3
+-cuxtiv0Mmfe
+-Options that control the \f2jar\fP command.
++cuxtiv0Mmfe
++Options that control the \f2jar\fP command.
+ .TP 3
+-jarfile
+-Jar file to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), or have its table of contents viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if either is present, they must both appear. Note that omitting \f2f\fP and \f2jarfile\fP accepts a "jar file" from standard input (for x and t) or sends the "jar file" to standard output (for c and u).
++jarfile
++Jar file to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), or have its table of contents viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if either is present, they must both appear. Note that omitting \f2f\fP and \f2jarfile\fP accepts a "jar file" from standard input (for x and t) or sends the "jar file" to standard output (for c and u).
+ .TP 3
+-inputfiles
+-Files or directories, separated by spaces, to be combined into \f2jarfile\fP (for c and u), or to be extracted (for x) or listed (for t) from \f2jarfile\fP. All directories are processed recursively. The files are compressed unless option \f20\fP (zero) is used.
++inputfiles
++Files or directories, separated by spaces, to be combined into \f2jarfile\fP (for c and u), or to be extracted (for x) or listed (for t) from \f2jarfile\fP. All directories are processed recursively. The files are compressed unless option \f20\fP (zero) is used.
+ .TP 3
+-manifest
+-Pre\-existing manifest file whose \f2name\fP\f2:\fP \f2value\fP pairs are to be included in MANIFEST.MF in the jar file. The \f2\-m\fP option and filename \f2manifest\fP are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear.
++manifest
++Pre\-existing manifest file whose \f2name\fP\f2:\fP \f2value\fP pairs are to be included in MANIFEST.MF in the jar file. The \f2\-m\fP option and filename \f2manifest\fP are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear.
+ .TP 3
+-entrypoint
+-The name of the class that set as the application entry point for stand\-alone applications bundled into executable jar file. The \f2\-e\fP option and entrypoint are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear.
++entrypoint
++The name of the class that set as the application entry point for stand\-alone applications bundled into executable jar file. The \f2\-e\fP option and entrypoint are a pair \-\- if either is present, they must both appear. The letters \f3m\fP, \f3f\fP and \f3e\fP must appear in the same order that \f2manifest\fP, \f2jarfile\fP, \f2entrypoint\fP appear.
+ .TP 3
+-\-C\ dir
+-Temporarily changes directories to \f2dir\fP while processing the following \f2inputfiles\fP argument. Multiple \f2\-C\ \fP\f2dir\fP \f2inputfiles\fP sets are allowed.
++\-C\ dir
++Temporarily changes directories to \f2dir\fP while processing the following \f2inputfiles\fP argument. Multiple \f2\-C\ \fP\f2dir\fP \f2inputfiles\fP sets are allowed.
+ .TP 3
+-\-Joption
+-Option to be passed into the Java runtime environment. (There must be no space between \f2\-J\fP and \f2option\fP).
++\-Joption
++Option to be passed into the Java runtime environment. (There must be no space between \f2\-J\fP and \f2option\fP).
+ .RE
+
+ .LP
+ .SH "DESCRIPTION"
+ .LP
+-The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3jar\fP is a general\-purpose archiving and compression tool, based on ZIP and the
++The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3jar\fP is a general\-purpose archiving and compression tool, based on ZIP and the
+ .na
+ \f2ZLIB\fP @
+ .fi
+-http://www.gzip.org/zlib/ compression format. However, \f3jar\fP was designed mainly package java applets or applications into a single archive. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be downloaded by a java agent (like a browser) in a single HTTP transaction, rather than requiring a new connection for each piece. This dramatically improves download times. \f3jar\fP also compresses files and so further improves download time. In addition, it allows individual entries in a file to be signed by the applet author so that their origin can be authenticated. The syntax for the jar tool is almost identical to the syntax for the \f2tar\fP command. A \f3jar\fP archive can be used as a class path entry, whether or not it is compressed.
++http://www.gzip.org/zlib/ compression format. However, \f3jar\fP was designed mainly package java applets or applications into a single archive. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be downloaded by a java agent (like a browser) in a single HTTP transaction, rather than requiring a new connection for each piece. This dramatically improves download times. \f3jar\fP also compresses files and so further improves download time. In addition, it allows individual entries in a file to be signed by the applet author so that their origin can be authenticated. The syntax for the jar tool is almost identical to the syntax for the \f2tar\fP command. A \f3jar\fP archive can be used as a class path entry, whether or not it is compressed.
+ .LP
+ Typical usage to combine files into a jar file is:
+ .LP
+@@ -94,11 +94,11 @@
+ .fi
+
+ .LP
+-In this example, all the class files in the current directory are placed into the file named \f2myFile.jar\fP. The jar tool automatically generates a manifest file entry named \f2META\-INF/MANIFEST.MF\fP. It is always the first entry in the jar file. The manifest file declares meta\-information about the archive, and stores that data as \f2name\ :\ value\fP pairs. Refer to the
++In this example, all the class files in the current directory are placed into the file named \f2myFile.jar\fP. The jar tool automatically generates a manifest file entry named \f2META\-INF/MANIFEST.MF\fP. It is always the first entry in the jar file. The manifest file declares meta\-information about the archive, and stores that data as \f2name\ :\ value\fP pairs. Refer to the
+ .na
+ \f2JAR file specification\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file.
++http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file.
+ .LP
+ If a jar file should include \f2name\ :\ value\fP pairs contained in an existing manifest file, specify that file using the \f2\-m\fP option:
+ .LP
+@@ -118,7 +118,7 @@
+ .br
+
+ .LP
+-\f3Note:\ \fP A jar command that specifies \f2cfm\fP on the command line instead of \f2cmf\fP (the order of the m and \-f options are reversed), the \f3jar\fP command line must specify the name of the jar archive first, followed by the name of the manifest file:
++\f3Note:\ \fP A jar command that specifies \f2cfm\fP on the command line instead of \f2cmf\fP (the order of the m and \-f options are reversed), the \f3jar\fP command line must specify the name of the jar archive first, followed by the name of the manifest file:
+ .nf
+ \f3
+ .fl
+@@ -128,7 +128,7 @@
+ .fi
+
+ .LP
+-The manifest is in a text format inspired by RFC822 ASCII format, so it is easy to view and process manifest\-file contents.
++The manifest is in a text format inspired by RFC822 ASCII format, so it is easy to view and process manifest\-file contents.
+ .LP
+ To extract the files from a jar file, use \f2x\fP:
+ .LP
+@@ -154,11 +154,11 @@
+
+ .LP
+ .LP
+-Beginning with version 1.3 of the JDK, the \f2jar\fP utility supports
++Beginning with version 1.3 of the JDK, the \f2jar\fP utility supports
+ .na
+ \f2JarIndex\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest.
++http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest.
+ .LP
+ .nf
+ \f3
+@@ -188,21 +188,21 @@
+
+ .LP
+ .LP
+-To review command samples which use \f2jar\fP to opeate on jar files and jar file manifests, see Examples, below. Also refer to the jar trail of the
++To review command samples which use \f2jar\fP to opeate on jar files and jar file manifests, see Examples, below. Also refer to the jar trail of the
+ .na
+ \f2Java Tutorial\fP @
+ .fi
+-http://download.oracle.com/javase/tutorial/deployment/jar.
++http://docs.oracle.com/javase/tutorial/deployment/jar.
+ .LP
+ .SH "OPTIONS"
+ .LP
+ .RS 3
+ .TP 3
+-c
+-Creates a new archive file named \f2jarfile\fP (if \f2f\fP is specified) or to standard output (if \f2f\fP and \f2jarfile\fP are omitted). Add to it the files and directories specified by \f2inputfiles\fP.
++c
++Creates a new archive file named \f2jarfile\fP (if \f2f\fP is specified) or to standard output (if \f2f\fP and \f2jarfile\fP are omitted). Add to it the files and directories specified by \f2inputfiles\fP.
+ .TP 3
+-u
+-Updates an existing file \f2jarfile\fP (when \f2f\fP is specified) by adding to it files and directories specified by \f2inputfiles\fP. For example:
++u
++Updates an existing file \f2jarfile\fP (when \f2f\fP is specified) by adding to it files and directories specified by \f2inputfiles\fP. For example:
+ .nf
+ \f3
+ .fl
+@@ -210,7 +210,7 @@
+ .fl
+ \fP
+ .fi
+-would add the file \f2foo.class\fP to the existing jar file \f2foo.jar\fP. The \f2\-u\fP option can also update the manifest entry, as given by this example:
++would add the file \f2foo.class\fP to the existing jar file \f2foo.jar\fP. The \f2\-u\fP option can also update the manifest entry, as given by this example:
+ .nf
+ \f3
+ .fl
+@@ -218,16 +218,16 @@
+ .fl
+ \fP
+ .fi
+-updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP.
++updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP.
+ .TP 3
+-x
+-Extracts files and directories from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are extracted. Otherwise, all files and directories are extracted. The time and date of the extracted files are those given in the archive.
++x
++Extracts files and directories from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are extracted. Otherwise, all files and directories are extracted. The time and date of the extracted files are those given in the archive.
+ .TP 3
+-t
+-Lists the table of contents from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are listed. Otherwise, all files and directories are listed.
++t
++Lists the table of contents from \f2jarfile\fP (if \f2f\fP is specified) or standard input (if \f2f\fP and \f2jarfile\fP are omitted). If \f2inputfiles\fP is specified, only those specified files and directories are listed. Otherwise, all files and directories are listed.
+ .TP 3
+-i
+-Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example:
++i
++Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example:
+ .nf
+ \f3
+ .fl
+@@ -236,25 +236,25 @@
+ \fP
+ .fi
+ .LP
+-would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example.
++would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example.
+ .TP 3
+-f
+-Specifies the file \f2jarfile\fP to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), indexed (\f2i\fP), or viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if present, they must both appear. Omitting \f2f\fP and \f2jarfile\fP accepts a jar file name from \f2stdin\fP(for x and t) or sends jar file to \f2stdout\fP (for c and u).
++f
++Specifies the file \f2jarfile\fP to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), indexed (\f2i\fP), or viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if present, they must both appear. Omitting \f2f\fP and \f2jarfile\fP accepts a jar file name from \f2stdin\fP(for x and t) or sends jar file to \f2stdout\fP (for c and u).
+ .TP 3
+-v
+-Generates verbose output to standard output. Examples shown below.
++v
++Generates verbose output to standard output. Examples shown below.
+ .TP 3
+-0
+-(zero) Store without using ZIP compression.
++0
++(zero) Store without using ZIP compression.
+ .TP 3
+-M
+-Do not create a manifest file entry (for c and u), or delete a manifest file entry if one exists (for u).
++M
++Do not create a manifest file entry (for c and u), or delete a manifest file entry if one exists (for u).
+ .TP 3
+-m
++m
+ Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value.
+ .br
+ .br
+-On the command line, the letters \f3m\fP and \f3f\fP must appear in the same order that \f2manifest\fP and \f2jarfile\fP appear. Example use:
++On the command line, the letters \f3m\fP and \f3f\fP must appear in the same order that \f2manifest\fP and \f2jarfile\fP appear. Example use:
+ .nf
+ \f3
+ .fl
+@@ -262,18 +262,18 @@
+ .fl
+ \fP
+ .fi
+-You can add special\-purpose \f2name\ :\ value\fP attribute pairs to the manifest that aren't contained in the default manifest. For example, you can add attributes specifying vendor information, version information, package sealing, or to make JAR\-bundled applications executable. See the
++You can add special\-purpose \f2name\ :\ value\fP attribute pairs to the manifest that aren't contained in the default manifest. For example, you can add attributes specifying vendor information, version information, package sealing, or to make JAR\-bundled applications executable. See the
+ .na
+ \f2JAR Files\fP @
+ .fi
+-http://download.oracle.com/javase/tutorial/deployment/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option.
++http://docs.oracle.com/javase/tutorial/deployment/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option.
+ .TP 3
+-e
++e
+ Sets \f2entrypoint\fP as the application entry point for stand\-alone applications bundled into executable jar file. The use of this option creates or overrides the \f2Main\-Class\fP attribute value in the manifest file. This option can be used during creation of jar file or while updating the jar file. This option specifies the application entry point without editing or creating the manifest file.
+ .br
+ .br
+ .br
+-For example, this command creates \f2Main.jar\fP where the \f2Main\-Class\fP attribute value in the manifest is set to \f2Main\fP:
++For example, this command creates \f2Main.jar\fP where the \f2Main\-Class\fP attribute value in the manifest is set to \f2Main\fP:
+ .nf
+ \f3
+ .fl
+@@ -281,7 +281,7 @@
+ .fl
+ \fP
+ .fi
+-The java runtime can directly invoke this application by running the following command:
++The java runtime can directly invoke this application by running the following command:
+ .nf
+ \f3
+ .fl
+@@ -289,7 +289,7 @@
+ .fl
+ \fP
+ .fi
+-If the entrypoint class name is in a package it may use either a dot (".") or slash ("/") character as the delimiter. For example, if \f2Main.class\fP is in a package called \f2foo\fP the entry point can be specified in the following ways:
++If the entrypoint class name is in a package it may use either a dot (".") or slash ("/") character as the delimiter. For example, if \f2Main.class\fP is in a package called \f2foo\fP the entry point can be specified in the following ways:
+ .nf
+ \f3
+ .fl
+@@ -297,7 +297,7 @@
+ .fl
+ \fP
+ .fi
+-or
++or
+ .nf
+ \f3
+ .fl
+@@ -305,13 +305,13 @@
+ .fl
+ \fP
+ .fi
+-\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted.
++\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted.
+ .TP 3
+-\-C\ dir
++\-C\ dir
+ Temporarily changes directories (\f2cd\fP\ \f2dir\fP) during execution of the \f2jar\fP command while processing the following \f2inputfiles\fP argument. Its operation is intended to be similar to the \f2\-C\fP option of the UNIX \f2tar\fP utility.
+ .br
+ .br
+-For example, this command changes to the \f2classes\fP directory and adds the \f2bar.class\fP from that directory to \f2foo.jar\fP:
++For example, this command changes to the \f2classes\fP directory and adds the \f2bar.class\fP from that directory to \f2foo.jar\fP:
+ .nf
+ \f3
+ .fl
+@@ -319,7 +319,7 @@
+ .fl
+ \fP
+ .fi
+-This command changes to the \f2classes\fP directory and adds to \f2foo.jar\fP all files within the \f2classes\fP directory (without creating a classes directory in the jar file), then changes back to the original directory before changing to the \f2bin\fP directory to add \f2xyz.class\fP to \f2foo.jar\fP.
++This command changes to the \f2classes\fP directory and adds to \f2foo.jar\fP all files within the \f2classes\fP directory (without creating a classes directory in the jar file), then changes back to the original directory before changing to the \f2bin\fP directory to add \f2xyz.class\fP to \f2foo.jar\fP.
+ .nf
+ \f3
+ .fl
+@@ -327,7 +327,7 @@
+ .fl
+ \fP
+ .fi
+-If \f2classes\fP holds files \f2bar1\fP and \f2bar2\fP, then here's what the jar file will contain using \f2jar tf foo.jar\fP:
++If \f2classes\fP holds files \f2bar1\fP and \f2bar2\fP, then here's what the jar file will contain using \f2jar tf foo.jar\fP:
+ .nf
+ \f3
+ .fl
+@@ -345,14 +345,14 @@
+ .fi
+ .LP
+ .TP 3
+-\-Joption
+-Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of the options described on the reference page for the java application launcher. For example, \f4\-J\-Xmx48M\fP sets the maximum memory to 48 megabytes. It is a common convention for \f2\-J\fP to pass options to the underlying runtime environment.
++\-Joption
++Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of the options described on the reference page for the java application launcher. For example, \f4\-J\-Xmx48M\fP sets the maximum memory to 48 megabytes. It is a common convention for \f2\-J\fP to pass options to the underlying runtime environment.
+ .RE
+
+ .LP
+ .SH "COMMAND LINE ARGUMENT FILES"
+ .LP
+-To shorten or simplify the jar command line, you can specify one or more files that themselves contain arguments to the \f2jar\fP command (except \f2\-J\fP options). This enables you to create jar commands of any length, overcoming command line limits imposed by the operating system.
++To shorten or simplify the jar command line, you can specify one or more files that themselves contain arguments to the \f2jar\fP command (except \f2\-J\fP options). This enables you to create jar commands of any length, overcoming command line limits imposed by the operating system.
+ .LP
+ An argument file can include options and filenames. The arguments within a file can be space\-separated or newline\-separated. Filenames within an argument file are relative to the current directory, not relative to the location of the argument file. Wildcards (*) that might otherwise be expanded by the operating system shell are not expanded. Use of the \f2@\fP character to recursively interpret files is not supported. The \f2\-J\fP options are not supported because they are passed to the launcher, which does not support argument files.
+ .LP
+@@ -360,7 +360,7 @@
+ When executing \f2jar\fP, pass in the path and name of each argument file with the \f2@\fP leading character. When \f2jar\fP encounters an argument beginning with the character \f2@\fP, it expands the contents of that file into the argument list.
+ .br
+ .br
+-The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command:
++The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command:
+ .LP
+ .nf
+ \f3
+@@ -382,7 +382,7 @@
+ .fi
+
+ .LP
+-An argument file can specify a path, but any filenames inside the argument file that have relative paths are relative to the current working directory, not to the path passed in. Here is an example:
++An argument file can specify a path, but any filenames inside the argument file that have relative paths are relative to the current working directory, not to the path passed in. Here is an example:
+ .nf
+ \f3
+ .fl
+@@ -397,7 +397,7 @@
+ .LP
+ .SH "EXAMPLES"
+ .LP
+-To add all the files in a particular directory to an archive (overwriting contents if the archive already exists). Enumerating verbosely (with the \f2\-v\fP option) will tell you more information about the files in the archive, such as their size and last modified date.
++To add all the files in a particular directory to an archive (overwriting contents if the archive already exists). Enumerating verbosely (with the \f2\-v\fP option) will tell you more information about the files in the archive, such as their size and last modified date.
+ .nf
+ \f3
+ .fl
+@@ -435,7 +435,7 @@
+ .fi
+
+ .LP
+-If you already have separate subdirectories for images, audio files and classes, you can combine them into a single jar file:
++If you already have separate subdirectories for images, audio files and classes, you can combine them into a single jar file:
+ .nf
+ \f3
+ .fl
+@@ -481,7 +481,7 @@
+ .fi
+
+ .LP
+-To see the entry names in the jarfile, use the \f2t\fP option:
++To see the entry names in the jarfile, use the \f2t\fP option:
+ .nf
+ \f3
+ .fl
+@@ -526,7 +526,7 @@
+ .br
+
+ .LP
+-If you specify the \f2Class\-path\fP attribute in the \f2main.jar\fP manifest as:
++If you specify the \f2Class\-path\fP attribute in the \f2main.jar\fP manifest as:
+ .nf
+ \f3
+ .fl
+@@ -536,7 +536,7 @@
+ .fi
+
+ .LP
+-then you can use the \f2\-i\fP option to speed up the class loading time for your application:
++then you can use the \f2\-i\fP option to speed up the class loading time for your application:
+ .nf
+ \f3
+ .fl
+@@ -546,34 +546,34 @@
+ .fi
+
+ .LP
+-An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources.
++An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources.
+ .SH "SEE ALSO"
+ .LP
+ .LP
+ .na
+ \f2The Jar Overview\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html
+ .LP
+ .LP
+ .na
+ \f2The Jar File Specification\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html
+ .LP
+ .LP
+ .na
+ \f2The JarIndex Spec\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index
++http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index
+ .LP
+ .LP
+ .na
+ \f2Jar Tutorial\fP @
+ .fi
+-http://download.oracle.com/javase/tutorial/deployment/jar/index.html
++http://docs.oracle.com/javase/tutorial/deployment/jar/index.html
+ .LP
+ .LP
+ pack200(1)
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/jarsigner.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/jarsigner.1 2013-12-01 12:37:33.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH jarsigner 1 "10 May 2011"
++.TH jarsigner 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+@@ -51,10 +51,10 @@
+ .RS 3
+ .TP 3
+ 1.
+-to sign Java ARchive (JAR) files, and
++to sign Java ARchive (JAR) files, and
+ .TP 3
+ 2.
+-to verify the signatures and integrity of signed JAR files.
++to verify the signatures and integrity of signed JAR files.
+ .RE
+
+ .LP
+@@ -67,16 +67,16 @@
+ .RS 3
+ .TP 2
+ o
+-Its authenticity can be verified, via a computation that uses the public key corresponding to the private key used to generate the signature.
++Its authenticity can be verified, via a computation that uses the public key corresponding to the private key used to generate the signature.
+ .TP 2
+ o
+-It cannot be forged, assuming the private key is kept secret.
++It cannot be forged, assuming the private key is kept secret.
+ .TP 2
+ o
+-It is a function of the data signed and thus can't be claimed to be the signature for other data as well.
++It is a function of the data signed and thus can't be claimed to be the signature for other data as well.
+ .TP 2
+ o
+-The signed data cannot be changed; if it is, the signature will no longer verify as being authentic.
++The signed data cannot be changed; if it is, the signature will no longer verify as being authentic.
+ .RE
+
+ .LP
+@@ -98,7 +98,7 @@
+ .LP
+ The default \f3jarsigner\fP behavior is to \f2sign\fP a JAR (or zip) file. Use the \f2\-verify\fP option to instead have it \f2verify\fP a signed JAR file.
+ .LP
+-.SS
++.SS
+ Keystore Aliases
+ .LP
+ .LP
+@@ -121,7 +121,7 @@
+ .LP
+ Keystores are protected with a password, so the store password must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password.
+ .LP
+-.SS
++.SS
+ Keystore Location
+ .LP
+ .LP
+@@ -130,7 +130,7 @@
+ .LP
+ Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based, for example, if it resides on a hardware token device.
+ .LP
+-.SS
++.SS
+ Keystore Implementation
+ .LP
+ .LP
+@@ -143,11 +143,11 @@
+ There is a built\-in default implementation, provided by Sun Microsystems. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password.
+ .LP
+ .LP
+-Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f2KeyStore\fP are implemented in terms of a "Service Provider Interface" (SPI). That is, there is a corresponding abstract \f2KeystoreSpi\fP class, also in the \f2java.security\fP package, which defines the Service Provider Interface methods that "providers" must implement. (The term "provider" refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API.) Thus, to provide a keystore implementation, clients must implement a provider and supply a KeystoreSpi subclass implementation, as described in
++Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f2KeyStore\fP are implemented in terms of a "Service Provider Interface" (SPI). That is, there is a corresponding abstract \f2KeystoreSpi\fP class, also in the \f2java.security\fP package, which defines the Service Provider Interface methods that "providers" must implement. (The term "provider" refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API.) Thus, to provide a keystore implementation, clients must implement a provider and supply a KeystoreSpi subclass implementation, as described in
+ .na
+ \f2How to Implement a Provider for the Java Cryptography Architecture\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html.
++http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html.
+ .LP
+ .LP
+ Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible.
+@@ -204,13 +204,13 @@
+
+ .LP
+ .LP
+-Note that if you us the PKCS#11 provider package, you should refer to the
++Note that if you us the PKCS#11 provider package, you should refer to the
+ .na
+ \f2KeyTool and JarSigner\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details.
++http://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details.
+ .LP
+-.SS
++.SS
+ Supported Algorithms
+ .LP
+ .LP
+@@ -219,13 +219,13 @@
+ .RS 3
+ .TP 2
+ o
+-DSA (Digital Signature Algorithm) with the SHA1 digest algorithm
++DSA (Digital Signature Algorithm) with the SHA1 digest algorithm
+ .TP 2
+ o
+-RSA algorithm with the SHA256 digest algorithm.
++RSA algorithm with the SHA256 digest algorithm.
+ .TP 2
+ o
+-EC (Elliptic Curve) cryptography algorithm with the SHA256 with ECDSA (Elliptic Curve Digital Signature Algorithm).
++EC (Elliptic Curve) cryptography algorithm with the SHA256 with ECDSA (Elliptic Curve Digital Signature Algorithm).
+ .RE
+
+ .LP
+@@ -235,7 +235,7 @@
+ .LP
+ These default signature algorithms can be overridden using the \f2\-sigalg\fP option.
+ .LP
+-.SS
++.SS
+ The Signed JAR File
+ .LP
+ .LP
+@@ -244,10 +244,10 @@
+ .RS 3
+ .TP 2
+ o
+-a signature file, with a .SF extension, and
++a signature file, with a .SF extension, and
+ .TP 2
+ o
+-a signature block file, with a .DSA, .RSA, or .EC extension.
++a signature block file, with a .DSA, .RSA, or .EC extension.
+ .RE
+
+ .LP
+@@ -277,13 +277,13 @@
+ .RS 3
+ .TP 2
+ o
+-the file name,
++the file name,
+ .TP 2
+ o
+-the name of the digest algorithm used (SHA), and
++the name of the digest algorithm used (SHA), and
+ .TP 2
+ o
+-a SHA digest value.
++a SHA digest value.
+ .RE
+
+ .LP
+@@ -295,8 +295,8 @@
+ .LP
+ \f3The Signature Block File\fP
+ .LP
+-The .SF file is signed and the signature is placed in the signature block file. This file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. The file has the extension .DSA, .RSA, or .EC depending on the digest algorithm used.
+-.SS
++The .SF file is signed and the signature is placed in the signature block file. This file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. The file has the extension .DSA, .RSA, or .EC depending on the digest algorithm used.
++.SS
+ Signature Timestamp
+ .LP
+ .LP
+@@ -305,23 +305,23 @@
+ .RS 3
+ .TP 2
+ o
+-\f2\-tsa url\fP
++\f2\-tsa url\fP
+ .TP 2
+ o
+-\f2\-tsacert alias\fP
++\f2\-tsacert alias\fP
+ .TP 2
+ o
+-\f2\-altsigner class\fP
++\f2\-altsigner class\fP
+ .TP 2
+ o
+-\f2\-altsignerpath classpathlist\fP
++\f2\-altsignerpath classpathlist\fP
+ .RE
+
+ .LP
+ .LP
+ Each of these options is detailed in the Options section below.
+ .LP
+-.SS
++.SS
+ JAR File Verification
+ .LP
+ .LP
+@@ -333,7 +333,7 @@
+ Verify the signature of the .SF file itself.
+ .br
+ .br
+-That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with.
++That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with.
+ .TP 3
+ 2.
+ Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest.
+@@ -345,17 +345,17 @@
+ If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File).
+ .br
+ .br
+-One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file.
++One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file.
+ .TP 3
+ 3.
+-Read each file in the JAR file that has an entry in the .SF file. While reading, compute the file's digest, and then compare the result with the digest for this file in the manifest section. The digests should be the same, or verification fails.
++Read each file in the JAR file that has an entry in the .SF file. While reading, compute the file's digest, and then compare the result with the digest for this file in the manifest section. The digests should be the same, or verification fails.
+ .RE
+
+ .LP
+ .LP
+ If any serious verification failures occur during the verification process, the process is stopped and a security exception is thrown. It is caught and displayed by \f3jarsigner\fP.
+ .LP
+-.SS
++.SS
+ Multiple Signatures for a JAR File
+ .LP
+ .LP
+@@ -401,22 +401,22 @@
+ .RS 3
+ .TP 2
+ o
+-All option names are preceded by a minus sign (\-).
++All option names are preceded by a minus sign (\-).
+ .TP 2
+ o
+-The options may be provided in any order.
++The options may be provided in any order.
+ .TP 2
+ o
+-Items in italics (option values) represent the actual values that must be supplied.
++Items in italics (option values) represent the actual values that must be supplied.
+ .TP 2
+ o
+-The \f2\-keystore\fP, \f2\-storepass\fP, \f2\-keypass\fP, \f2\-sigfile\fP, \f2\-sigalg\fP, \f2\-digestalg\fP, and \f2\-signedjar\fP options are only relevant when signing a JAR file, not when verifying a signed JAR file. Similarly, an alias is only specified on the command line when signing a JAR file.
++The \f2\-keystore\fP, \f2\-storepass\fP, \f2\-keypass\fP, \f2\-sigfile\fP, \f2\-sigalg\fP, \f2\-digestalg\fP, and \f2\-signedjar\fP options are only relevant when signing a JAR file, not when verifying a signed JAR file. Similarly, an alias is only specified on the command line when signing a JAR file.
+ .RE
+
+ .LP
+ .RS 3
+ .TP 3
+-\-keystore url
++\-keystore url
+ Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property.
+ .br
+ .br
+@@ -426,7 +426,7 @@
+ A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore.
+ .br
+ .br
+-Note: the \f2\-keystore\fP argument can actually be a file name (and path) specification rather than a URL, in which case it will be treated the same as a "file:" URL. That is,
++Note: the \f2\-keystore\fP argument can actually be a file name (and path) specification rather than a URL, in which case it will be treated the same as a "file:" URL. That is,
+ .nf
+ \f3
+ .fl
+@@ -434,7 +434,7 @@
+ .fl
+ \fP
+ .fi
+-is treated as equivalent to
++is treated as equivalent to
+ .nf
+ \f3
+ .fl
+@@ -442,16 +442,16 @@
+ .fl
+ \fP
+ .fi
+-If the Sun PKCS#11 provider has been configured in the \f2java.security\fP security properties file (located in the JRE's \f2$JAVA_HOME/lib/security\fP directory), then keytool and jarsigner can operate on the PKCS#11 token by specifying these options:
++If the Sun PKCS#11 provider has been configured in the \f2java.security\fP security properties file (located in the JRE's \f2$JAVA_HOME/lib/security\fP directory), then keytool and jarsigner can operate on the PKCS#11 token by specifying these options:
+ .RS 3
+ .TP 2
+ o
+-\f2\-keystore NONE\fP
++\f2\-keystore NONE\fP
+ .TP 2
+ o
+-\f2\-storetype PKCS11\fP
++\f2\-storetype PKCS11\fP
+ .RE
+-For example, this command lists the contents of the configured PKCS#11 token:
++For example, this command lists the contents of the configured PKCS#11 token:
+ .nf
+ \f3
+ .fl
+@@ -460,113 +460,113 @@
+ \fP
+ .fi
+ .TP 3
+-\-storetype storetype
++\-storetype storetype
+ Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP.
+ .br
+ .br
+-The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified.
++The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified.
+ .TP 3
+-\-storepass[:env | :file] argument
++\-storepass[:env | :file] argument
+ Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password.
+ .br
+ .br
+-If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows:
++If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows:
+ .RS 3
+ .TP 2
+ o
+-\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP
++\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP
+ .TP 2
+ o
+-\f2file\fP: Retrieve the password from the file named \f2argument\fP
++\f2file\fP: Retrieve the password from the file named \f2argument\fP
+ .RE
+-Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system.
++Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system.
+ .TP 3
+-\-keypass[:env | :file] argument
++\-keypass[:env | :file] argument
+ Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it.
+ .br
+ .br
+-If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows:
++If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows:
+ .RS 3
+ .TP 2
+ o
+-\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP
++\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP
+ .TP 2
+ o
+-\f2file\fP: Retrieve the password from the file named \f2argument\fP
++\f2file\fP: Retrieve the password from the file named \f2argument\fP
+ .RE
+-Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system.
++Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system.
+ .TP 3
+-\-sigfile file
++\-sigfile file
+ Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file.
+ .br
+ .br
+ The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names.
+ .br
+ .br
+-If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name.
++If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name.
+ .TP 3
+-\-sigalg algorithm
++\-sigalg algorithm
+ Specifies the name of the signature algorithm to use to sign the JAR file.
+ .br
+ .br
+-See
++See
+ .na
+ \f2Appendix A\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA, SHA256withRSA, or SHA256withECDSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
++http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA, SHA256withRSA, or SHA256withECDSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
+ .TP 3
+-\-digestalg algorithm
++\-digestalg algorithm
+ Specifies the name of the message digest algorithm to use when digesting the entries of a jar file.
+ .br
+ .br
+-See
++See
+ .na
+ \f2Appendix A\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
++http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed.
+ .TP 3
+-\-signedjar file
++\-signedjar file
+ Specifies the name to be used for the signed JAR file.
+ .br
+ .br
+-If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file.
++If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file.
+ .TP 3
+-\-verify
++\-verify
+ If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)"
+ .br
+ .br
+ It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both.
+ .br
+ .br
+-For further information on verification, see JAR File Verification.
++For further information on verification, see JAR File Verification.
+ .TP 3
+-\-certs
+-If this appears on the command line, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file. This information includes
++\-certs
++If this appears on the command line, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file. This information includes
+ .RS 3
+ .TP 2
+ o
+-the name of the type of certificate (stored in the .DSA file) that certifies the signer's public key
++the name of the type of certificate (stored in the .DSA file) that certifies the signer's public key
+ .TP 2
+ o
+-if the certificate is an X.509 certificate (more specifically, an instance of \f2java.security.cert.X509Certificate\fP): the distinguished name of the signer
++if the certificate is an X.509 certificate (more specifically, an instance of \f2java.security.cert.X509Certificate\fP): the distinguished name of the signer
+ .RE
+-The keystore is also examined. If no keystore value is specified on the command line, the default keystore file (if any) will be checked. If the public key certificate for a signer matches an entry in the keystore, then the following information will also be displayed:
++The keystore is also examined. If no keystore value is specified on the command line, the default keystore file (if any) will be checked. If the public key certificate for a signer matches an entry in the keystore, then the following information will also be displayed:
+ .RS 3
+ .TP 2
+ o
+-in parentheses, the alias name for the keystore entry for that signer. If the signer actually comes from a JDK 1.1 identity database instead of from a keystore, the alias name will appear in brackets instead of parentheses.
++in parentheses, the alias name for the keystore entry for that signer. If the signer actually comes from a JDK 1.1 identity database instead of from a keystore, the alias name will appear in brackets instead of parentheses.
+ .RE
+ .TP 3
+-\-certchain file
+-Specifies the certificate chain to be used, if the certificate chain associated with the private key of the keystore entry, addressed by the alias specified on the command line, is not complete. This may happen if the keystore is located on a hardware token where there is not enough capacity to hold a complete certificate chain. The file can be a sequence of X.509 certificates concatenated together, or a single PKCS#7 formatted data block, either in binary encoding format or in printable encoding format (also known as BASE64 encoding) as defined by the Internet RFC 1421 standard.
++\-certchain file
++Specifies the certificate chain to be used, if the certificate chain associated with the private key of the keystore entry, addressed by the alias specified on the command line, is not complete. This may happen if the keystore is located on a hardware token where there is not enough capacity to hold a complete certificate chain. The file can be a sequence of X.509 certificates concatenated together, or a single PKCS#7 formatted data block, either in binary encoding format or in printable encoding format (also known as BASE64 encoding) as defined by the Internet RFC 1421 standard.
+ .TP 3
+-\-verbose
+-If this appears on the command line, it indicates "verbose" mode, which causes \f3jarsigner\fP to output extra information as to the progress of the JAR signing or verification.
++\-verbose
++If this appears on the command line, it indicates "verbose" mode, which causes \f3jarsigner\fP to output extra information as to the progress of the JAR signing or verification.
+ .TP 3
+-\-internalsf
+-In the past, the .DSA (signature block) file generated when a JAR file was signed used to include a complete encoded copy of the .SF file (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the .DSA file by default doesn't contain a copy of the .SF file anymore. But if \f2\-internalsf\fP appears on the command line, the old behavior is utilized. \f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP
++\-internalsf
++In the past, the .DSA (signature block) file generated when a JAR file was signed used to include a complete encoded copy of the .SF file (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the .DSA file by default doesn't contain a copy of the .SF file anymore. But if \f2\-internalsf\fP appears on the command line, the old behavior is utilized. \f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP
+ .TP 3
+-\-sectionsonly
++\-sectionsonly
+ If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File .
+ .br
+ .br
+@@ -576,84 +576,84 @@
+ For further information, see JAR File Verification.
+ .br
+ .br
+-\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP
++\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP
+ .TP 3
+-\-protected
+-Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader.
++\-protected
++Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader.
+ .TP 3
+-\-providerClass provider\-class\-name
++\-providerClass provider\-class\-name
+ Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP.
+ .br
+ .br
+-Used in conjunction with the \f2\-providerArg\fP \f2ConfigFilePath\fP option, keytool and jarsigner will install the provider dynamically (where \f2ConfigFilePath\fP is the path to the token configuration file). Here's an example of a command to list a PKCS#11 keystore when the Sun PKCS#11 provider has not been configured in the security properties file.
++Used in conjunction with the \f2\-providerArg\fP \f2ConfigFilePath\fP option, keytool and jarsigner will install the provider dynamically (where \f2ConfigFilePath\fP is the path to the token configuration file). Here's an example of a command to list a PKCS#11 keystore when the Sun PKCS#11 provider has not been configured in the security properties file.
+ .nf
+ \f3
+ .fl
+-jarsigner \-keystore NONE \-storetype PKCS11 \\
++jarsigner \-keystore NONE \-storetype PKCS11 \\
+ .fl
+- \-providerClass sun.security.pkcs11.SunPKCS11 \\
++ \-providerClass sun.security.pkcs11.SunPKCS11 \\
+ .fl
+- \-providerArg /foo/bar/token.config \\
++ \-providerArg /foo/bar/token.config \\
+ .fl
+ \-list
+ .fl
+ \fP
+ .fi
+ .TP 3
+-\-providerName providerName
++\-providerName providerName
+ If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider.
+ .br
+ .br
+-For the Sun PKCS#11 provider, \f2providerName\fP is of the form \f2SunPKCS11\-\fP\f2TokenName\fP, where \f2TokenName\fP is the name suffix that the provider instance has been configured with, as detailed in the
++For the Sun PKCS#11 provider, \f2providerName\fP is of the form \f2SunPKCS11\-\fP\f2TokenName\fP, where \f2TokenName\fP is the name suffix that the provider instance has been configured with, as detailed in the
+ .na
+ \f2configuration attributes table\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP:
++http://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP:
+ .nf
+ \f3
+ .fl
+-jarsigner \-keystore NONE \-storetype PKCS11 \\
++jarsigner \-keystore NONE \-storetype PKCS11 \\
+ .fl
+- \-providerName SunPKCS11\-SmartCard \\
++ \-providerName SunPKCS11\-SmartCard \\
+ .fl
+ \-list
+ .fl
+ \fP
+ .fi
+ .TP 3
+-\-Jjavaoption
+-Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line.
++\-Jjavaoption
++Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line.
+ .TP 3
+-\-tsa url
++\-tsa url
+ If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore.
+ .br
+ .br
+-To generate the timestamp, \f2jarsigner\fP communicates with the TSA using the Time\-Stamp Protocol (TSP) defined in
++To generate the timestamp, \f2jarsigner\fP communicates with the TSA using the Time\-Stamp Protocol (TSP) defined in
+ .na
+ \f2RFC 3161\fP @
+ .fi
+-http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file.
++http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file.
+ .TP 3
+-\-tsacert alias
++\-tsacert alias
+ If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA.
+ .br
+ .br
+-The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP.
++The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP.
+ .TP 3
+-\-altsigner class
++\-altsigner class
+ Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism.
+ .br
+ .br
+-For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP
++For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP
+ .TP 3
+-\-altsignerpath classpathlist
++\-altsignerpath classpathlist
+ Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below.
+ .br
+ .br
+ An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path.
+ .br
+ .br
+-Example of specifying the path to a jar file that contains the class file:
++Example of specifying the path to a jar file that contains the class file:
+ .nf
+ \f3
+ .fl
+@@ -664,7 +664,7 @@
+ Note that the JAR file name is included.
+ .br
+ .br
+-Example of specifying the path to the jar file that contains the class file:
++Example of specifying the path to the jar file that contains the class file:
+ .nf
+ \f3
+ .fl
+@@ -672,19 +672,19 @@
+ .fl
+ \fP
+ .fi
+-Note that the JAR file name is omitted.
++Note that the JAR file name is omitted.
+ .TP 3
+-\-strict
+-During the signing or verifying process, some warning messages may be shown. If this option appears on the command line, the exit code of the tool will reflect the warning messages that are found. Read the "WARNINGS" section for details.
++\-strict
++During the signing or verifying process, some warning messages may be shown. If this option appears on the command line, the exit code of the tool will reflect the warning messages that are found. Read the "WARNINGS" section for details.
+ .TP 3
+-\-verbose:sub\-options
+-For the verifying process, the \f2\-verbose\fP option takes sub\-options to determine how much information will be shown. If \f2\-certs\fP is also specified, the default mode (or sub\-option all) displays each entry as it is being processed and following that, the certificate information for each signer of the JAR file. If \f2\-certs\fP and the \f2\-verbose:grouped\fP sub\-option are specified, entries with the same signer info are grouped and displayed together along with their certificate information. If \f2\-certs\fP and the \f2\-verbose:summary\fP sub\-option are specified, then entries with the same signer info are grouped and displayed together along with their certificate information but details about each entry are summarized and displayed as "one entry (and more)". See the examples section for more information.
++\-verbose:sub\-options
++For the verifying process, the \f2\-verbose\fP option takes sub\-options to determine how much information will be shown. If \f2\-certs\fP is also specified, the default mode (or sub\-option all) displays each entry as it is being processed and following that, the certificate information for each signer of the JAR file. If \f2\-certs\fP and the \f2\-verbose:grouped\fP sub\-option are specified, entries with the same signer info are grouped and displayed together along with their certificate information. If \f2\-certs\fP and the \f2\-verbose:summary\fP sub\-option are specified, then entries with the same signer info are grouped and displayed together along with their certificate information but details about each entry are summarized and displayed as "one entry (and more)". See the examples section for more information.
+ .RE
+
+ .LP
+ .SH "EXAMPLES"
+ .LP
+-.SS
++.SS
+ Signing a JAR File
+ .LP
+ .LP
+@@ -742,7 +742,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Verifying a Signed JAR File
+ .LP
+ .LP
+@@ -808,7 +808,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Verification with Certificate Information
+ .LP
+ .LP
+@@ -867,7 +867,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Verification of a JAR File that Includes Identity Database Signers
+ .LP
+ .LP
+@@ -924,7 +924,7 @@
+ .LP
+ .SH "WARNINGS"
+ .LP
+-During the signing/verifying process, jarsigner may display various warnings. These warning codes are defined as follows:
++During the signing/verifying process, jarsigner may display various warnings. These warning codes are defined as follows:
+ .nf
+ \f3
+ .fl
+@@ -1011,7 +1011,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Compatibility with JDK 1.1
+ .LP
+ .LP
+@@ -1023,13 +1023,13 @@
+ .RS 3
+ .TP 2
+ o
+-It is possible to import the information from an identity database into a keystore, via the \f3keytool\fP \f2\-identitydb\fP command.
++It is possible to import the information from an identity database into a keystore, via the \f3keytool\fP \f2\-identitydb\fP command.
+ .TP 2
+ o
+-\f3jarsigner\fP can sign JAR files also previously signed using \f3javakey\fP.
++\f3jarsigner\fP can sign JAR files also previously signed using \f3javakey\fP.
+ .TP 2
+ o
+-\f3jarsigner\fP can verify JAR files signed using \f3javakey\fP. Thus, it recognizes and can work with signer aliases that are from a JDK 1.1 identity database rather than a Java 2 SDK keystore.
++\f3jarsigner\fP can verify JAR files signed using \f3javakey\fP. Thus, it recognizes and can work with signer aliases that are from a JDK 1.1 identity database rather than a Java 2 SDK keystore.
+ .RE
+
+ .LP
+@@ -1037,6 +1037,7 @@
+ The following table explains how JAR files that were signed in JDK 1.1.x are treated in the Java 2 platform.
+ .LP
+ .LP
++.TS
+ .if \n+(b.=1 .nr d. \n(.c-\n(c.-1
+ .de 35
+ .ps \n(.s
+@@ -1361,7 +1362,7 @@
+ .ne \n(b|u+\n(.Vu
+ .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v)
+ .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f3JAR File Type\fP\h'|\n(41u'\f3Identity in 1.1 database\fP\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3Privileges Granted\fP
+@@ -1384,7 +1385,7 @@
+ .sp |\n(31u
+ .ne \n(c|u+\n(.Vu
+ .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
+@@ -1400,7 +1401,7 @@
+ .sp |\n(31u
+ .ne \n(d|u+\n(.Vu
+ .if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Unsigned JAR\h'|\n(41u'NO\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
+@@ -1416,7 +1417,7 @@
+ .sp |\n(31u
+ .ne \n(e|u+\n(.Vu
+ .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'YES\h'|\n(43u'NO\h'|\n(44u'
+@@ -1432,7 +1433,7 @@
+ .sp |\n(31u
+ .ne \n(f|u+\n(.Vu
+ .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Untrusted\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'
+@@ -1448,7 +1449,7 @@
+ .sp |\n(31u
+ .ne \n(g|u+\n(.Vu
+ .if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Untrusted\h'|\n(42u'NO\h'|\n(43u'YES\h'|\n(44u'
+@@ -1464,7 +1465,7 @@
+ .sp |\n(31u
+ .ne \n(h|u+\n(.Vu
+ .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'NO\h'|\n(42u'YES\h'|\n(43u'YES\h'|\n(44u'
+@@ -1480,7 +1481,7 @@
+ .sp |\n(31u
+ .ne \n(i|u+\n(.Vu
+ .if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'YES\h'|\n(43u'YES\h'|\n(44u'
+@@ -1494,15 +1495,15 @@
+ .mk 32
+ .if \n(32>\n(31 .nr 31 \n(32
+ .sp |\n(31u
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'NO\h'|\n(43u'NO\h'|\n(44u'All privileges
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'YES\h'|\n(43u'NO\h'|\n(44u'All privileges (1)
+-.ta \n(80u \n(81u \n(82u \n(83u \n(84u
++.ta \n(80u \n(81u \n(82u \n(83u \n(84u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'Signed JAR\h'|\n(41u'YES/Trusted\h'|\n(42u'NO\h'|\n(43u'YES\h'|\n(44u'All privileges (1)
+@@ -1519,6 +1520,7 @@
+ .rm g+
+ .rm h+
+ .rm i+
++.TE
+ .if \n-(b.=0 .nr c. \n(.c-\n(d.-42
+
+ .LP
+@@ -1528,16 +1530,16 @@
+ .RS 3
+ .TP 3
+ 1.
+-If an identity/alias is mentioned in the policy file, it must be imported into the keystore for the policy file to have any effect on privileges granted.
++If an identity/alias is mentioned in the policy file, it must be imported into the keystore for the policy file to have any effect on privileges granted.
+ .TP 3
+ 2.
+-The policy file/keystore combination has precedence over a trusted identity in the identity database.
++The policy file/keystore combination has precedence over a trusted identity in the identity database.
+ .TP 3
+ 3.
+-Untrusted identities are ignored in the Java 2 platform.
++Untrusted identities are ignored in the Java 2 platform.
+ .TP 3
+ 4.
+-Only trusted identities can be imported into Java 2 SDK keystores.
++Only trusted identities can be imported into Java 2 SDK keystores.
+ .RE
+
+ .LP
+@@ -1546,22 +1548,22 @@
+ .RS 3
+ .TP 2
+ o
+-jar(1) tool documentation
++jar(1) tool documentation
+ .TP 2
+ o
+-keytool(1) tool documentation
++keytool(1) tool documentation
+ .TP 2
+ o
+-the
++the
+ .na
+ \f4Security\fP @
+ .fi
+-http://download.oracle.com/javase/tutorial/security/index.html trail of the
++http://docs.oracle.com/javase/tutorial/security/index.html trail of the
+ .na
+ \f4Java Tutorial\fP @
+ .fi
+-http://download.oracle.com/javase/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool
++http://docs.oracle.com/javase/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool
+ .RE
+
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/javac.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/javac.1 2013-12-01 12:37:33.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH javac 1 "10 May 2011"
++.TH javac 1 "16 Mar 2012"
+
+ .LP
+ .SH "Name"
+@@ -42,17 +42,17 @@
+ .LP
+ .RS 3
+ .TP 3
+-options
+-Command\-line options.
++options
++Command\-line options.
+ .TP 3
+-sourcefiles
+-One or more source files to be compiled (such as MyClass.java).
++sourcefiles
++One or more source files to be compiled (such as MyClass.java).
+ .TP 3
+-classes
+-One or more classes to be processed for annotations (such as MyPackage.MyClass).
++classes
++One or more classes to be processed for annotations (such as MyPackage.MyClass).
+ .TP 3
+-@argfiles
+-One or more files that lists options and source files. The \f2\-J\fP options are not allowed in these files.
++@argfiles
++One or more files that lists options and source files. The \f2\-J\fP options are not allowed in these files.
+ .RE
+
+ .LP
+@@ -67,10 +67,10 @@
+ .RS 3
+ .TP 2
+ o
+-For a small number of source files, simply list the file names on the command line.
++For a small number of source files, simply list the file names on the command line.
+ .TP 2
+ o
+-For a large number of source files, list the file names in a file, separated by blanks or line breaks. Then use the list file name on the \f3javac\fP command line, preceded by an \f3@\fP character.
++For a large number of source files, list the file names in a file, separated by blanks or line breaks. Then use the list file name on the \f3javac\fP command line, preceded by an \f3@\fP character.
+ .RE
+
+ .LP
+@@ -91,150 +91,150 @@
+ .LP
+ The compiler has a set of standard options that are supported on the current development environment and will be supported in future releases. An additional set of non\-standard options are specific to the current virtual machine and compiler implementations and are subject to change in the future. Non\-standard options begin with \f3\-X\fP.
+ .LP
+-.SS
++.SS
+ Standard Options
+ .LP
+ .RS 3
+ .TP 3
+-\-Akey[=value]
+-Options to pass to annotation processors. These are not interpreted by javac directly, but are made available for use by individual processors. \f2key\fP should be one or more identifiers separated by ".".
++\-Akey[=value]
++Options to pass to annotation processors. These are not interpreted by javac directly, but are made available for use by individual processors. \f2key\fP should be one or more identifiers separated by ".".
+ .TP 3
+-\-cp path or \-classpath path
++\-cp path or \-classpath path
+ Specify where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the \f3CLASSPATH\fP environment variable. If neither \f3CLASSPATH\fP, \f3\-cp\fP nor \f3\-classpath\fP is specified, the user class path consists of the current directory. See Setting the Class Path for more details.
+ .br
+ .br
+ >If the \f3\-sourcepath\fP option is not specified, the user class path is also searched for source files.
+ .br
+ .br
+-If the \f3\-processorpath\fP option is not specified, the class path is also searched for annotation processors.
++If the \f3\-processorpath\fP option is not specified, the class path is also searched for annotation processors.
+ .TP 3
+-\-Djava.ext.dirs=directories
+-Override the location of installed extensions.
++\-Djava.ext.dirs=directories
++Override the location of installed extensions.
+ .TP 3
+-\-Djava.endorsed.dirs=directories
+-Override the location of endorsed standards path.
++\-Djava.endorsed.dirs=directories
++Override the location of endorsed standards path.
+ .TP 3
+-\-d directory
++\-d directory
+ Set the destination directory for class files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, \f3javac\fP puts the class file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-d /home/myclasses\fP and the class is called \f2com.mypackage.MyClass\fP, then the class file is called \f2/home/myclasses/com/mypackage/MyClass.class\fP.
+ .br
+ .br
+ If \f3\-d\fP is not specified, \f3javac\fP puts each class files in the same directory as the source file from which it was generated.
+ .br
+ .br
+-\f3Note:\fP The directory specified by \f3\-d\fP is not automatically added to your user class path.
++\f3Note:\fP The directory specified by \f3\-d\fP is not automatically added to your user class path.
+ .TP 3
+-\-deprecation
+-Show a description of each use or override of a deprecated member or class. Without \f3\-deprecation\fP, \f3javac\fP shows a summary of the source files that use or override deprecated members or classes. \f3\-deprecation\fP is shorthand for \f3\-Xlint:deprecation\fP.
++\-deprecation
++Show a description of each use or override of a deprecated member or class. Without \f3\-deprecation\fP, \f3javac\fP shows a summary of the source files that use or override deprecated members or classes. \f3\-deprecation\fP is shorthand for \f3\-Xlint:deprecation\fP.
+ .TP 3
+-\-encoding encoding
+-Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used.
++\-encoding encoding
++Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used.
+ .TP 3
+-\-endorseddirs directories
+-Override the location of endorsed standards path.
++\-endorseddirs directories
++Override the location of endorsed standards path.
+ .TP 3
+-\-extdirs directories
++\-extdirs directories
+ Overrides the location of the \f2ext\fP directory. The \f2directories\fP variable is a colon\-separated list of directories. Each JAR archive in the specified directories is searched for class files. All JAR archives found are automatically part of the class path.
+ .br
+ .br
+-If you are cross\-compiling (compiling classes against bootstrap and extension classes of a different Java platform implementation), this option specifies the directories that contain the extension classes. See Cross\-Compilation Options for more information.
++If you are cross\-compiling (compiling classes against bootstrap and extension classes of a different Java platform implementation), this option specifies the directories that contain the extension classes. See Cross\-Compilation Options for more information.
+ .TP 3
+-\-g
+-Generate all debugging information, including local variables. By default, only line number and source file information is generated.
++\-g
++Generate all debugging information, including local variables. By default, only line number and source file information is generated.
+ .TP 3
+-\-g:none
+-Do not generate any debugging information.
++\-g:none
++Do not generate any debugging information.
+ .TP 3
+-\-g:{keyword list}
+-Generate only some kinds of debugging information, specified by a comma separated list of keywords. Valid keywords are:
++\-g:{keyword list}
++Generate only some kinds of debugging information, specified by a comma separated list of keywords. Valid keywords are:
+ .RS 3
+ .TP 3
+-source
+-Source file debugging information
++source
++Source file debugging information
+ .TP 3
+-lines
+-Line number debugging information
++lines
++Line number debugging information
+ .TP 3
+-vars
+-Local variable debugging information
++vars
++Local variable debugging information
+ .RE
+ .TP 3
+-\-help
+-Print a synopsis of standard options.
++\-help
++Print a synopsis of standard options.
+ .TP 3
+-\-implicit:{class,none}
+-Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types.
++\-implicit:{class,none}
++Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types.
+ .TP 3
+-\-Joption
++\-Joption
+ Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. It is a common convention for \f3\-J\fP to pass options to the underlying VM executing applications written in Java.
+ .br
+ .br
+-\f3Note:\fP \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher.
++\f3Note:\fP \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher.
+ .TP 3
+-\-nowarn
+-Disable warning messages. This has the same meaning as \f3\-Xlint:none\fP.
++\-nowarn
++Disable warning messages. This has the same meaning as \f3\-Xlint:none\fP.
+ .TP 3
+-\-proc: {none,only}
+-Controls whether annotation processing and/or compilation is done. \f3\-proc:none\fP means that compilation takes place without annotation processing. \f3\-proc:only\fP means that only annotation processing is done, without any subsequent compilation.
++\-proc: {none,only}
++Controls whether annotation processing and/or compilation is done. \f3\-proc:none\fP means that compilation takes place without annotation processing. \f3\-proc:only\fP means that only annotation processing is done, without any subsequent compilation.
+ .TP 3
+-\-processor class1[,class2,class3...]
+-Names of the annotation processors to run. This bypasses the default discovery process.
++\-processor class1[,class2,class3...]
++Names of the annotation processors to run. This bypasses the default discovery process.
+ .TP 3
+-\-processorpath path
+-Specify where to find annotation processors; if this option is not used, the class path will be searched for processors.
++\-processorpath path
++Specify where to find annotation processors; if this option is not used, the class path will be searched for processors.
+ .TP 3
+-\-s dir
+-Specify the directory where to place generated source files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, the compiler puts the source file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-s /home/mysrc\fP and the class is called \f2com.mypackage.MyClass\fP, then the source file will be placed in \f2/home/mysrc/com/mypackage/MyClass.java\fP.
++\-s dir
++Specify the directory where to place generated source files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, the compiler puts the source file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-s /home/mysrc\fP and the class is called \f2com.mypackage.MyClass\fP, then the source file will be placed in \f2/home/mysrc/com/mypackage/MyClass.java\fP.
+ .TP 3
+-\-source release
+-Specifies the version of source code accepted. The following values for \f2release\fP are allowed:
++\-source release
++Specifies the version of source code accepted. The following values for \f2release\fP are allowed:
+ .RS 3
+ .TP 3
+-1.3
+-The compiler does \f2not\fP support assertions, generics, or other language features introduced after JDK 1.3.
++1.3
++The compiler does \f2not\fP support assertions, generics, or other language features introduced after Java SE 1.3.
+ .TP 3
+-1.4
+-The compiler accepts code containing assertions, which were introduced in JDK 1.4.
++1.4
++The compiler accepts code containing assertions, which were introduced in Java SE 1.4.
+ .TP 3
+-1.5
+-The compiler accepts code containing generics and other language features introduced in JDK 5.
++1.5
++The compiler accepts code containing generics and other language features introduced in Java SE 5.
+ .TP 3
+-5
+-Synonym for 1.5.
++5
++Synonym for 1.5.
+ .TP 3
+-1.6
+-This is the default value. No language changes were introduced in Java SE 6. However, encoding errors in source files are now reported as errors, instead of warnings, as previously.
++1.6
++No language changes were introduced in Java SE 6. However, encoding errors in source files are now reported as errors instead of warnings as in previous releases of Java SE.
+ .TP 3
+-6
+-Synonym for 1.6.
++6
++Synonym for 1.6.
+ .TP 3
+-1.7
+-The compiler accepts code with features introduced in JDK 7.
++1.7
++This is the default value. The compiler accepts code with features introduced in Java SE 7.
+ .TP 3
+-7
+-Synonym for 1.7.
++7
++Synonym for 1.7.
+ .RE
+ .TP 3
+-\-sourcepath sourcepath
++\-sourcepath sourcepath
+ Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name.
+ .br
+ .br
+-\f3Note:\fP Classes found through the class path may be subject to automatic recompilation if their sources are also found. See Searching For Types.
++\f3Note:\fP Classes found through the class path may be subject to automatic recompilation if their sources are also found. See Searching For Types.
+ .TP 3
+-\-verbose
+-Verbose output. This includes information about each class loaded and each source file compiled.
++\-verbose
++Verbose output. This includes information about each class loaded and each source file compiled.
+ .TP 3
+-\-version
+-Print version information.
++\-version
++Print version information.
+ .TP 3
+-\-Werror
+-Terminate compilation if warnings occur.
++\-Werror
++Terminate compilation if warnings occur.
+ .TP 3
+-\-X
+-Display information about non\-standard options and exit.
++\-X
++Display information about non\-standard options and exit.
+ .RE
+
+ .LP
+-.SS
++.SS
+ Cross\-Compilation Options
+ .LP
+ .LP
+@@ -242,87 +242,92 @@
+ .LP
+ .RS 3
+ .TP 3
+-\-target version
+-Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP \f31.2\fP \f31.3\fP \f31.4\fP \f31.5\fP (also \f35\fP) \f31.6\fP (also \f36\fP) and \f31.7\fP (also \f37\fP).
+-.br
+-.br
+-The default for \f3\-target\fP depends on the value of \f3\-source\fP:
++\-target version
++Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP, \f31.2\fP, \f31.3\fP, \f31.4\fP, \f31.5\fP (also \f35\fP), \f31.6\fP (also \f36\fP), and \f31.7\fP (also \f37\fP).
++.LP
++The default for \f3\-target\fP depends on the value of \f3\-source\fP:
+ .RS 3
+ .TP 2
+ o
+-If \-source is \f3not specified\fP, the value of \-target is \f31.7\fP
++If \-source is \f3not specified\fP, the value of \-target is \f31.7\fP
++.TP 2
++o
++If \-source is \f31.2\fP, the value of \-target is \f31.4\fP
+ .TP 2
+ o
+-If \-source is \f31.2\fP, the value of \-target is \f31.4\fP
++If \-source is \f31.3\fP, the value of \-target is \f31.4\fP
+ .TP 2
+ o
+-If \-source is \f31.3\fP, the value of \-target is \f31.4\fP
++If \-source is \f31.5\fP, the value of \-target is \f31.7\fP
+ .TP 2
+ o
+-For \f3all other values\fP of \-source, the value of \f3\-target\fP is the value of \f3\-source\fP.
++If \-source is \f31.6\fP, the value of \-target is \f31.7\fP
++.TP 2
++o
++For \f3all other values\fP of \-source, the value of \f3\-target\fP is the value of \f3\-source\fP.
+ .RE
+ .TP 3
+-\-bootclasspath bootclasspath
+-Cross\-compile against the specified set of boot classes. As with the user class path, boot class path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives.
++\-bootclasspath bootclasspath
++Cross\-compile against the specified set of boot classes. As with the user class path, boot class path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives.
+ .RE
+
+ .LP
+-.SS
++.SS
+ Non\-Standard Options
+ .LP
+ .RS 3
+ .TP 3
+-\-Xbootclasspath/p:path
+-Prepend to the bootstrap class path.
++\-Xbootclasspath/p:path
++Prepend to the bootstrap class path.
+ .TP 3
+-\-Xbootclasspath/a:path
+-Append to the bootstrap class path.
++\-Xbootclasspath/a:path
++Append to the bootstrap class path.
+ .TP 3
+-\-Xbootclasspath/:path
+-Override location of bootstrap class files.
++\-Xbootclasspath/:path
++Override location of bootstrap class files.
+ .TP 3
+-\-Xlint
+-Enable all recommended warnings. In this release, enabling all available warnings is recommended.
++\-Xlint
++Enable all recommended warnings. In this release, enabling all available warnings is recommended.
+ .TP 3
+-\-Xlint:all
+-Enable all recommended warnings. In this release, enabling all available warnings is recommended.
++\-Xlint:all
++Enable all recommended warnings. In this release, enabling all available warnings is recommended.
+ .TP 3
+-\-Xlint:none
+-Disable all warnings.
++\-Xlint:none
++Disable all warnings.
+ .TP 3
+-\-Xlint:name
+-Enable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can enable with this option.
++\-Xlint:name
++Enable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can enable with this option.
+ .TP 3
+-\-Xlint:\-name
+-Disable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can disable with this option.
++\-Xlint:\-name
++Disable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can disable with this option.
+ .TP 3
+-\-Xmaxerrs number
+-Set the maximum number of errors to print.
++\-Xmaxerrs number
++Set the maximum number of errors to print.
+ .TP 3
+-\-Xmaxwarns number
+-Set the maximum number of warnings to print.
++\-Xmaxwarns number
++Set the maximum number of warnings to print.
+ .TP 3
+-\-Xstdout filename
+-Send compiler messages to the named file. By default, compiler messages go to \f2System.err\fP.
++\-Xstdout filename
++Send compiler messages to the named file. By default, compiler messages go to \f2System.err\fP.
+ .TP 3
+-\-Xprefer:{newer,source}
+-Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP.
++\-Xprefer:{newer,source}
++Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP.
+ .TP 3
+-\-Xpkginfo:{always,legacy,nonempty}
+-Specify handling of package\-info files
++\-Xpkginfo:{always,legacy,nonempty}
++Specify handling of package\-info files
+ .TP 3
+-\-Xprint
+-Print out textual representation of specified types for debugging purposes; perform neither annotation processing nor compilation. The format of the output may change.
++\-Xprint
++Print out textual representation of specified types for debugging purposes; perform neither annotation processing nor compilation. The format of the output may change.
+ .TP 3
+-\-XprintProcessorInfo
+-Print information about which annotations a processor is asked to process.
++\-XprintProcessorInfo
++Print information about which annotations a processor is asked to process.
+ .TP 3
+-\-XprintRounds
+-Print information about initial and subsequent annotation processing rounds.
++\-XprintRounds
++Print information about initial and subsequent annotation processing rounds.
+ .RE
+
+ .LP
+-.SS
++.SS
+ Warnings That Can Be Enabled or Disabled with \-Xlint Option
+ .LP
+ .LP
+@@ -330,8 +335,8 @@
+ .LP
+ .RS 3
+ .TP 3
+-cast
+-Warn about unnecessary and redundant casts. For example:
++cast
++Warn about unnecessary and redundant casts. For example:
+ .nf
+ \f3
+ .fl
+@@ -340,11 +345,11 @@
+ \fP
+ .fi
+ .TP 3
+-classfile
+-Warn about issues related to classfile contents.
++classfile
++Warn about issues related to classfile contents.
+ .TP 3
+-deprecation
+-Warn about use of deprecated items. For example:
++deprecation
++Warn about use of deprecated items. For example:
+ .nf
+ \f3
+ .fl
+@@ -354,10 +359,10 @@
+ .fl
+ \fP
+ .fi
+-The method \f2java.util.Date.getDay\fP has been deprecated since JDK 1.1.
++The method \f2java.util.Date.getDay\fP has been deprecated since JDK 1.1.
+ .TP 3
+-dep\-ann
+-Warn about items that are documented with an \f2@deprecated\fP Javadoc comment, but do not have a \f2@Deprecated\fP annotation. For example:
++dep\-ann
++Warn about items that are documented with an \f2@deprecated\fP Javadoc comment, but do not have a \f2@Deprecated\fP annotation. For example:
+ .nf
+ \f3
+ .fl
+@@ -378,8 +383,8 @@
+ \fP
+ .fi
+ .TP 3
+-divzero
+-Warn about division by constant integer 0. For example:
++divzero
++Warn about division by constant integer 0. For example:
+ .nf
+ \f3
+ .fl
+@@ -388,8 +393,8 @@
+ \fP
+ .fi
+ .TP 3
+-empty
+-Warn about empty statements after \f2if\fP statements. For example:
++empty
++Warn about empty statements after \f2if\fP statements. For example:
+ .nf
+ \f3
+ .fl
+@@ -406,8 +411,8 @@
+ \fP
+ .fi
+ .TP 3
+-fallthrough
+-Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement:
++fallthrough
++Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement:
+ .nf
+ \f3
+ .fl
+@@ -427,10 +432,10 @@
+ .fl
+ \fP
+ .fi
+-If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question.
++If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question.
+ .TP 3
+-finally
+-Warn about \f2finally\fP clauses that cannot complete normally. For example:
++finally
++Warn about \f2finally\fP clauses that cannot complete normally. For example:
+ .nf
+ \f3
+ .fl
+@@ -456,13 +461,13 @@
+ .fl
+ \fP
+ .fi
+-The compiler generates a warning for \f2finally\fP block in this example. When this method is called, it returns a value of \f20\fP, not \f21\fP. A \f2finally\fP block always executes when the \f2try\fP block exits. In this example, if control is transferred to the \f2catch\fP, then the method exits. However, the \f2finally\fP block must be executed, so it is executed, even though control has already been transferred outside the method.
++The compiler generates a warning for \f2finally\fP block in this example. When this method is called, it returns a value of \f20\fP, not \f21\fP. A \f2finally\fP block always executes when the \f2try\fP block exits. In this example, if control is transferred to the \f2catch\fP, then the method exits. However, the \f2finally\fP block must be executed, so it is executed, even though control has already been transferred outside the method.
+ .TP 3
+-options
+-Warn about issues relating to the use of command line options. See Cross\-Compilation Example for an example of this kind of warning.
++options
++Warn about issues relating to the use of command line options. See Cross\-Compilation Example for an example of this kind of warning.
+ .TP 3
+-overrides
+-Warn about issues regarding method overrides. For example, consider the following two classes:
++overrides
++Warn about issues regarding method overrides. For example, consider the following two classes:
+ .nf
+ \f3
+ .fl
+@@ -493,10 +498,10 @@
+ \f2warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...'\fP
+ .br
+ .br
+-When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. In the method \f2ClassWithVarargsMethod.varargsMethod\fP, the compiler translates the varargs formal parameter \f2String... s\fP to the formal parameter \f2String[] s\fP, an array, which matches the formal parameter of the method \f2ClassWithOverridingMethod.varargsMethod\fP. Consequently, this example compiles.
++When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. In the method \f2ClassWithVarargsMethod.varargsMethod\fP, the compiler translates the varargs formal parameter \f2String... s\fP to the formal parameter \f2String[] s\fP, an array, which matches the formal parameter of the method \f2ClassWithOverridingMethod.varargsMethod\fP. Consequently, this example compiles.
+ .TP 3
+-path
+-Warn about invalid path elements and nonexistent path directories on the command line (with regards to the class path, the source path, and other paths). Such warnings cannot be suppressed with the \f2@SuppressWarnings\fP annotation. For example:
++path
++Warn about invalid path elements and nonexistent path directories on the command line (with regards to the class path, the source path, and other paths). Such warnings cannot be suppressed with the \f2@SuppressWarnings\fP annotation. For example:
+ .nf
+ \f3
+ .fl
+@@ -505,11 +510,11 @@
+ \fP
+ .fi
+ .TP 3
+-processing
++processing
+ Warn about issues regarding annotation processing. The compiler generates this warning if you have a class that has an annotation, and you use an annotation processor that cannot handle that type of exception. For example, the following is a simple annotation processor:
+ .br
+ .br
+-\f3Source file \fP\f4AnnoProc.java\fP:
++\f3Source file \fP\f4AnnoProc.java\fP:
+ .nf
+ \f3
+ .fl
+@@ -545,7 +550,7 @@
+ .fl
+ \fP
+ .fi
+-\f3Source file \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP
++\f3Source file \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP
+ .nf
+ \f3
+ .fl
+@@ -559,15 +564,14 @@
+ .fl
+ \fP
+ .fi
+-The following commands compile the annotation processor \f2AnnoProc\fP, then run this annotation processor against the source file \f2AnnosWithoutProcessors.java\fP:
++The following commands compile the annotation processor \f2AnnoProc\fP, then run this annotation processor against the source file \f2AnnosWithoutProcessors.java\fP:
+ .nf
+ \f3
+ .fl
+-% javac AnnoProc.java
++% \fP\f3javac AnnoProc.java\fP
+ .fl
+-% javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java
++% \f3javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java\fP
+ .fl
+-\fP
+ .fi
+ When the compiler runs the annotation processor against the source file \f2AnnosWithoutProcessors.java\fP, it generates the following warning:
+ .br
+@@ -575,10 +579,10 @@
+ \f2warning: [processing] No processor claimed any of these annotations: Anno\fP
+ .br
+ .br
+-To resolve this issue, you can rename the annotation defined and used in the class \f2AnnosWithoutProcessors\fP from \f2Anno\fP to \f2NotAnno\fP.
++To resolve this issue, you can rename the annotation defined and used in the class \f2AnnosWithoutProcessors\fP from \f2Anno\fP to \f2NotAnno\fP.
+ .TP 3
+-rawtypes
+-Warn about unchecked operations on raw types. The following statement generates a \f2rawtypes\fP warning:
++rawtypes
++Warn about unchecked operations on raw types. The following statement generates a \f2rawtypes\fP warning:
+ .nf
+ \f3
+ .fl
+@@ -586,7 +590,7 @@
+ .fl
+ \fP
+ .fi
+-The following does not generate a \f2rawtypes\fP warning:
++The following does not generate a \f2rawtypes\fP warning:
+ .nf
+ \f3
+ .fl
+@@ -594,10 +598,10 @@
+ .fl
+ \fP
+ .fi
+-\f2List\fP is a raw type. However, \f2List>\fP is a unbounded wildcard parameterized type. Because \f2List\fP is a parameterized interface, you should always specify its type argument. In this example, the \f2List\fP formal argument is specified with a unbounded wildcard (\f2?\fP) as its formal type parameter, which means that the \f2countElements\fP method can accept any instantiation of the \f2List\fP interface.
++\f2List\fP is a raw type. However, \f2List>\fP is a unbounded wildcard parameterized type. Because \f2List\fP is a parameterized interface, you should always specify its type argument. In this example, the \f2List\fP formal argument is specified with a unbounded wildcard (\f2?\fP) as its formal type parameter, which means that the \f2countElements\fP method can accept any instantiation of the \f2List\fP interface.
+ .TP 3
+-serial
+-Warn about missing \f2serialVersionUID\fP definitions on serializable classes. For example:
++serial
++Warn about missing \f2serialVersionUID\fP definitions on serializable classes. For example:
+ .nf
+ \f3
+ .fl
+@@ -633,10 +637,10 @@
+ \f2warning: [serial] serializable class PersistentTime has no definition of serialVersionUID\fP
+ .br
+ .br
+-If a serializable class does not explicitly declare a field named \f2serialVersionUID\fP, then the serialization runtime will calculate a default \f2serialVersionUID\fP value for that class based on various aspects of the class, as described in the Java Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare \f2serialVersionUID\fP values because the default process of computing \f2serialVersionUID\fP vales is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected \f2InvalidClassExceptions\fP during deserialization. Therefore, to guarantee a consistent \f2serialVersionUID\fP value across different Java compiler implementations, a serializable class must declare an explicit \f2serialVersionUID\fP value.
++If a serializable class does not explicitly declare a field named \f2serialVersionUID\fP, then the serialization runtime will calculate a default \f2serialVersionUID\fP value for that class based on various aspects of the class, as described in the Java Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare \f2serialVersionUID\fP values because the default process of computing \f2serialVersionUID\fP vales is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected \f2InvalidClassExceptions\fP during deserialization. Therefore, to guarantee a consistent \f2serialVersionUID\fP value across different Java compiler implementations, a serializable class must declare an explicit \f2serialVersionUID\fP value.
+ .TP 3
+-static
+-Warn about issues relating to use of statics. For example:
++static
++Warn about issues relating to use of statics. For example:
+ .nf
+ \f3
+ .fl
+@@ -650,7 +654,7 @@
+ .fl
+ \fP
+ .fi
+-The compiler generates the following warning:
++The compiler generates the following warning:
+ .nf
+ \f3
+ .fl
+@@ -658,7 +662,7 @@
+ .fl
+ \fP
+ .fi
+-To resolve this issue, you can call the static method \f2m1\fP as follows:
++To resolve this issue, you can call the static method \f2m1\fP as follows:
+ .nf
+ \f3
+ .fl
+@@ -666,10 +670,10 @@
+ .fl
+ \fP
+ .fi
+-Alternatively, you can remove the \f2static\fP keyword from the declaration of the method \f2m1\fP.
++Alternatively, you can remove the \f2static\fP keyword from the declaration of the method \f2m1\fP.
+ .TP 3
+-try
+-Warn about issues relating to use of \f2try\fP blocks, including try\-with\-resources statements. For example, a warning is generated for the following statement because the resource \f2ac\fP declared in the \f2try\fP statement is not used:
++try
++Warn about issues relating to use of \f2try\fP blocks, including try\-with\-resources statements. For example, a warning is generated for the following statement because the resource \f2ac\fP declared in the \f2try\fP statement is not used:
+ .nf
+ \f3
+ .fl
+@@ -682,8 +686,8 @@
+ \fP
+ .fi
+ .TP 3
+-unchecked
+-Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. For example:
++unchecked
++Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. For example:
+ .nf
+ \f3
+ .fl
+@@ -699,10 +703,10 @@
+ The variable \f2ls\fP has the parameterized type \f2List\fP. When the \f2List\fP referenced by \f2l\fP is assigned to \f2ls\fP, the compiler generates an unchecked warning; the compiler is unable to determine at compile time, and moreover knows that the JVM will not be able to determine at runtime, if \f2l\fP refers to a \f2List\fP type; it does not. Consequently, heap pollution occurs.
+ .br
+ .br
+-In detail, a heap pollution situation occurs when the \f2List\fP object \f2l\fP, whose static type is \f2List\fP, is assigned to another \f2List\fP object, \f2ls\fP, that has a different static type, \f2List\fP. However, the compiler still allows this assignment. It must allow this assignment to preserve backwards compatibility with versions of Java SE that do not support generics. Because of type erasure, \f2List\fP and \f2List\fP both become \f2List\fP. Consequently, the compiler allows the assignment of the object \f2l\fP, which has a raw type of \f2List\fP, to the object \f2ls\fP.
++In detail, a heap pollution situation occurs when the \f2List\fP object \f2l\fP, whose static type is \f2List\fP, is assigned to another \f2List\fP object, \f2ls\fP, that has a different static type, \f2List\fP. However, the compiler still allows this assignment. It must allow this assignment to preserve backwards compatibility with versions of Java SE that do not support generics. Because of type erasure, \f2List\fP and \f2List\fP both become \f2List\fP. Consequently, the compiler allows the assignment of the object \f2l\fP, which has a raw type of \f2List\fP, to the object \f2ls\fP.
+ .TP 3
+-varargs
+-Warn about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non\-reifiable arguments. For example:
++varargs
++Warn about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non\-reifiable arguments. For example:
+ .nf
+ \f3
+ .fl
+@@ -722,7 +726,7 @@
+ .fl
+ \fP
+ .fi
+-The compiler generates the following warning for the definition of the method \f2ArrayBuilder.addToList\fP:
++The compiler generates the following warning for the definition of the method \f2ArrayBuilder.addToList\fP:
+ .nf
+ \f3
+ .fl
+@@ -730,7 +734,7 @@
+ .fl
+ \fP
+ .fi
+-When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. However, the Java programming language does not permit the creation of arrays of parameterized types. In the method \f2ArrayBuilder.addToList\fP, the compiler translates the varargs formal parameter \f2T... elements\fP to the formal parameter \f2T[] elements\fP, an array. However, because of type erasure, the compiler converts the varargs formal parameter to \f2Object[] elements\fP. Consequently, there is a possibility of heap pollution.
++When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. However, the Java programming language does not permit the creation of arrays of parameterized types. In the method \f2ArrayBuilder.addToList\fP, the compiler translates the varargs formal parameter \f2T... elements\fP to the formal parameter \f2T[] elements\fP, an array. However, because of type erasure, the compiler converts the varargs formal parameter to \f2Object[] elements\fP. Consequently, there is a possibility of heap pollution.
+ .RE
+
+ .LP
+@@ -748,7 +752,7 @@
+ .LP
+ When executing javac, pass in the path and name of each argument file with the '\f2@\fP' leading character. When javac encounters an argument beginning with the character `\f2@\fP', it expands the contents of that file into the argument list.
+ .LP
+-.SS
++.SS
+ Example \- Single Arg File
+ .LP
+ .LP
+@@ -765,7 +769,7 @@
+ .LP
+ This argument file could contain the contents of both files shown in the next example.
+ .LP
+-.SS
++.SS
+ Example \- Two Arg Files
+ .LP
+ .LP
+@@ -820,7 +824,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Example \- Arg Files with Paths
+ .LP
+ .LP
+@@ -842,7 +846,7 @@
+ .LP
+ The API for annotation processors is defined in the \f2javax.annotation.processing\fP and \f2javax.lang.model\fP packages and subpackages.
+ .LP
+-.SS
++.SS
+ Overview of annotation processing
+ .LP
+ .LP
+@@ -857,7 +861,7 @@
+ .LP
+ After a round occurs where no new source files are generated, the annotation processors will be invoked one last time, to give them a chance to complete any work they may need to do. Finally, unless the \f3\-proc:only\fP option is used, the compiler will compile the original and all the generated source files.
+ .LP
+-.SS
++.SS
+ Implicitly loaded source files
+ .LP
+ .LP
+@@ -894,7 +898,7 @@
+ .LP
+ \f3javac\fP supports the new Java Compiler API defined by the classes and interfaces in the \f2javax.tools\fP package.
+ .LP
+-.SS
++.SS
+ Example
+ .LP
+ .LP
+@@ -917,7 +921,7 @@
+ .LP
+ You can use other methods on the \f2javax.tools.JavaCompiler\fP interface to handle diagnostics, control where files are read from and written to, and so on.
+ .LP
+-.SS
++.SS
+ Old Interface
+ .LP
+ .LP
+@@ -951,7 +955,7 @@
+ .LP
+ .SH "EXAMPLES"
+ .LP
+-.SS
++.SS
+ Compiling a Simple Program
+ .LP
+ .LP
+@@ -1005,7 +1009,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Compiling Multiple Source Files
+ .LP
+ .LP
+@@ -1033,7 +1037,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Specifying a User Class Path
+ .LP
+ .LP
+@@ -1068,7 +1072,7 @@
+ .nf
+ \f3
+ .fl
+-% \fP\f3javac \-classpath /examples:/lib/Banners.jar \\
++% \fP\f3javac \-classpath /examples:/lib/Banners.jar \\
+ .fl
+ /examples/greetings/Hi.java\fP
+ .fl
+@@ -1086,7 +1090,7 @@
+ .fi
+
+ .LP
+-.SS
++.SS
+ Separating Source Files and Class Files
+ .LP
+ .LP
+@@ -1113,7 +1117,7 @@
+ .fl
+ % \f3ls classes\fP
+ .fl
+-% \f3javac \-sourcepath src \-classpath classes:lib/Banners.jar \\
++% \f3javac \-sourcepath src \-classpath classes:lib/Banners.jar \\
+ .fl
+ src/farewells/GoodBye.java \-d classes\fP
+ .fl
+@@ -1131,16 +1135,16 @@
+ .LP
+ \f3Note:\fP The compiler compiled \f2src/farewells/Base.java\fP, even though we didn't specify it on the command line. To trace automatic compiles, use the \f3\-verbose\fP option.
+ .LP
+-.SS
++.SS
+ Cross\-Compilation Example
+ .LP
+ .LP
+-Here we use \f3javac\fP to compile code that will run on a 1.6 VM.
++The following example uses \f3javac\fP to compile code that will run on a 1.6 VM.
+ .LP
+ .nf
+ \f3
+ .fl
+-% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\
++% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\
+ .fl
+ \-extdirs "" OldCode.java\fP
+ .fl
+@@ -1174,32 +1178,32 @@
+ .na
+ \f2The javac Guide\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/javac/index.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/javac/index.html
+ .TP 2
+ o
+-java(1) \- the Java Application Launcher
++java(1) \- the Java Application Launcher
+ .TP 2
+ o
+-jdb(1) \- Java Application Debugger
++jdb(1) \- Java Application Debugger
+ .TP 2
+ o
+-javah(1) \- C Header and Stub File Generator
++javah(1) \- C Header and Stub File Generator
+ .TP 2
+ o
+-javap(1) \- Class File Disassembler
++javap(1) \- Class File Disassembler
+ .TP 2
+ o
+-javadoc(1) \- API Documentation Generator
++javadoc(1) \- API Documentation Generator
+ .TP 2
+ o
+-jar(1) \- JAR Archive Tool
++jar(1) \- JAR Archive Tool
+ .TP 2
+ o
+ .na
+ \f2The Java Extensions Framework\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/extensions/index.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/extensions/index.html
+ .RE
+
+ .LP
+-
++
+--- jdk/src/bsd/doc/man/javadoc.1 2013-09-06 11:27:46.000000000 -0700
++++ jdk/src/bsd/doc/man/javadoc.1 2013-12-01 12:37:33.000000000 -0800
+@@ -19,7 +19,7 @@
+ ." or visit www.oracle.com if you need additional information or have any
+ ." questions.
+ ."
+-.TH javadoc 1 "10 May 2011"
++.TH javadoc 1 "16 Mar 2012"
+ .SH "Name"
+ javadoc \- The Java API Documentation Generator
+ .LP
+@@ -31,68 +31,68 @@
+ Arguments can be in any order. See processing of Source Files for details on how the Javadoc tool determines which "\f2.java\fP" files to process.
+ .RS 3
+ .TP 3
+-options
+-Command\-line options, as specified in this document. To see a typical use of javadoc options, see Real\-World Example.
++options
++Command\-line options, as specified in this document. To see a typical use of javadoc options, see Real\-World Example.
+ .TP 3
+-packagenames
+-A series of names of packages, separated by spaces, such as \f2java.lang\ java.lang.reflect\ java.awt\fP. You must separately specify each package you want to document. Wildcards are not allowed; use \-subpackages for recursion. The Javadoc tool uses \f2\-sourcepath\fP to look for these package names. See Example \- Documenting One or More Packages
++packagenames
++A series of names of packages, separated by spaces, such as \f2java.lang\ java.lang.reflect\ java.awt\fP. You must separately specify each package you want to document. Wildcards are not allowed; use \-subpackages for recursion. The Javadoc tool uses \f2\-sourcepath\fP to look for these package names. See Example \- Documenting One or More Packages
+ .TP 3
+-sourcefilenames
+-A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see the Java Language Specification). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes
++sourcefilenames
++A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see the Java Language Specification). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes
+ .TP 3
+-\-subpackages pkg1:pkg2:...
+-Generates documentation from source files in the specified packages and recursively in their subpackages. An alternative to supplying packagenames or sourcefilenames.
++\-subpackages pkg1:pkg2:...
++Generates documentation from source files in the specified packages and recursively in their subpackages. An alternative to supplying packagenames or sourcefilenames.
+ .TP 3
+-@argfiles
+-One or more files that contain a list of Javadoc options, packagenames and sourcefilenames in any order. Wildcards (*) and \f2\-J\fP options are not allowed in these files.
++@argfiles
++One or more files that contain a list of Javadoc options, packagenames and sourcefilenames in any order. Wildcards (*) and \f2\-J\fP options are not allowed in these files.
+ .RE
+ .SH "DESCRIPTION"
+ .LP
+ The \f3Javadoc\fP tool parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages describing (by default) the public and protected classes, nested classes (but not anonymous inner classes), interfaces, constructors, methods, and fields. You can use it to generate the API (Application Programming Interface) documentation or the implementation documentation for a set of source files.
+ .LP
+ You can run the Javadoc tool on entire packages, individual source files, or both. When documenting entire packages, you can either use \f2\-subpackages\fP for traversing recursively down from a top\-level directory, or pass in an explicit list of package names. When documenting individual source files, you pass in a list of source (\f2.java\fP) filenames. Examples are given at the end of this document. How Javadoc processes source files is covered next.
+-.SS
++.SS
+ Processing of source files
+ .LP
+ The Javadoc tool processes files that end in "\f2.java\fP" plus other files described under Source Files. If you run the Javadoc tool by explicitly passing in individual source filenames, you can determine exactly which "\f2.java\fP" files are processed. However, that is not how most developers want to work, as it is simpler to pass in package names. The Javadoc tool can be run three ways without explicitly specifying the source filenames. You can (1) pass in package names, (2) use \f2\-subpackages\fP, and (3) use wildcards with source filenames (\f2*.java\fP). In these cases, the Javadoc tool processes a "\f2.java\fP" file only if it fulfills all of the following requirements:
+ .RS 3
+ .TP 2
+ o
+-Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see the Java Language Specification for legal characters)
++Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see the Java Language Specification for legal characters)
+ .TP 2
+ o
+-Its directory path relative to the root of the source tree is actually a legal package name (after converting its separators to dots)
++Its directory path relative to the root of the source tree is actually a legal package name (after converting its separators to dots)
+ .TP 2
+ o
+-Its package statement contains the legal package name (specified in the previous bullet)
++Its package statement contains the legal package name (specified in the previous bullet)
+ .RE
+ .LP
+ \f3Processing of links\fP \- During a run, the Javadoc tool automatically adds cross\-reference links to package, class and member names that are being documented as part of that run. Links appear in several places:
+ .RS 3
+ .TP 2
+ o
+-Declarations (return types, argument types, field types)
++Declarations (return types, argument types, field types)
+ .TP 2
+ o
+-"See Also" sections generated from \f2@see\fP tags
++"See Also" sections generated from \f2@see\fP tags
+ .TP 2
+ o
+-In\-line text generated from \f2{@link}\fP tags
++In\-line text generated from \f2{@link}\fP tags
+ .TP 2
+ o
+-Exception names generated from \f2@throws\fP tags
++Exception names generated from \f2@throws\fP tags
+ .TP 2
+ o
+-"Specified by" links to members in interfaces and "Overrides" links to members in classes
++"Specified by" links to members in interfaces and "Overrides" links to members in classes
+ .TP 2
+ o
+-Summary tables listing packages, classes and members
++Summary tables listing packages, classes and members
+ .TP 2
+ o
+-Package and class inheritance trees
++Package and class inheritance trees
+ .TP 2
+ o
+-The index
++The index
+ .RE
+ .LP
+ You can add hyperlinks to existing text for classes not included on the command line (but generated separately) by way of the \f2\-link\fP and \f2\-linkoffline\fP options.
+@@ -107,12 +107,12 @@
+ .LP
+ In many cases, the Javadoc tool allows you to generate documentation for source files whose code is incomplete or erroneous. This is a benefit that enables you to generate documentation before all debugging and troubleshooting is done. For example, according to the \f2Java Language Specification\fP, a class that contains an abstract method should itself be declared abstract. The Javadoc tool does not check for this, and would proceed without a warning, whereas the javac compiler stops on this error. The Javadoc tool does do some primitive checking of doc comments. Use the DocCheck doclet to check the doc comments more thoroughly.
+ .LP
+-When the Javadoc tool builds its internal structure for the documentation, it loads all referenced classes. Because of this, the Javadoc tool must be able to find all referenced classes, whether bootstrap classes, extensions, or user classes. For more about this, see
++When the Javadoc tool builds its internal structure for the documentation, it loads all referenced classes. Because of this, the Javadoc tool must be able to find all referenced classes, whether bootstrap classes, extensions, or user classes. For more about this, see
+ .na
+ \f2How Classes Are Found\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path.
+-.SS
++http://docs.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path.
++.SS
+ Javadoc Doclets
+ .LP
+ You can customize the content and format of the Javadoc tool's output by using doclets. The Javadoc tool has a default "built\-in" doclet, called the standard doclet, that generates HTML\-formatted API documentation. You can modify or subclass the standard doclet, or write your own doclet to generate HTML, XML, MIF, RTF or whatever output format you'd like. Information about doclets and their use is at the following locations:
+@@ -122,14 +122,14 @@
+ .na
+ \f2Javadoc Doclets\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html
++http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html
+ .TP 2
+ o
+-The \f2\-doclet\fP command\-line option
++The \f2\-doclet\fP command\-line option
+ .RE
+ .LP
+ When a custom doclet is not specified with the \f2\-doclet\fP command line option, the Javadoc tool will use the default standard doclet. The javadoc tool has several command line options that are available regardless of which doclet is being used. The standard doclet adds a supplementary set of command line options. Both sets of options are described below in the options section.
+-.SS
++.SS
+ Related Documentation and Doclets
+ .RS 3
+ .TP 2
+@@ -137,89 +137,89 @@
+ .na
+ \f2Javadoc Enhancements\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc.
++http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc.
+ .TP 2
+ o
+ .na
+ \f2Javadoc FAQ\fP @
+ .fi
+-http://java.sun.com/j2se/javadoc/faq/index.html for answers to common questions, information about Javadoc\-related tools, and workarounds for bugs.
++http://java.sun.com/j2se/javadoc/faq/index.html for answers to common questions, information about Javadoc\-related tools, and workarounds for bugs.
+ .TP 2
+ o
+ .na
+ \f2How to Write Doc Comments for Javadoc\fP @
+ .fi
+-http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html for more information about Sun conventions for writing documentation comments.
++http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html for more information about Sun conventions for writing documentation comments.
+ .TP 2
+ o
+ .na
+ \f2Requirements for Writing API Specifications\fP @
+ .fi
+-http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Standard requirements used when writing the Java SE Platform Specification. It can be useful whether you are writing API specifications in source file documentation comments or in other formats. It covers requirements for packages, classes, interfaces, fields and methods to satisfy testable assertions.
++http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Standard requirements used when writing the Java SE Platform Specification. It can be useful whether you are writing API specifications in source file documentation comments or in other formats. It covers requirements for packages, classes, interfaces, fields and methods to satisfy testable assertions.
+ .TP 2
+ o
+ .na
+ \f2Documentation Comment Specification\fP @
+ .fi
+-http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- The original specification on documentation comments, Chapter 18, Documentation Comments, in the \f2Java Language Specification\fP, First Edition, by James Gosling, Bill Joy, and Guy Steele. (This chapter was removed from the second edition.)
++http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- The original specification on documentation comments, Chapter 18, Documentation Comments, in the \f2Java Language Specification\fP, First Edition, by James Gosling, Bill Joy, and Guy Steele. (This chapter was removed from the second edition.)
+ .TP 2
+ o
+ .na
+ \f2DocCheck Doclet\fP @
+ .fi
+-http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Doc Check Utilities.
++http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Doc Check Utilities.
+ .TP 2
+ o
+ .na
+ \f2MIF Doclet\fP @
+ .fi
+-http://java.sun.com/j2se/javadoc/mifdoclet/ \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format.
++http://java.sun.com/j2se/javadoc/mifdoclet/ \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format.
+ .RE
+-.SS
++.SS
+ Terminology
+ .LP
+ The terms \f2documentation comment\fP, \f2doc comment\fP, \f2main description\fP, \f2tag\fP, \f2block tag\fP, and \f2in\-line tag\fP are described at Documentation Comments. These other terms have specific meanings within the context of the Javadoc tool:
+ .RS 3
+ .TP 3
+-generated document
+-The document generated by the javadoc tool from the doc comments in Java source code. The default generated document is in HTML and is created by the standard doclet.
++generated document
++The document generated by the javadoc tool from the doc comments in Java source code. The default generated document is in HTML and is created by the standard doclet.
+ .LP
+ .TP 3
+-name
+-A name of a program element written in the Java Language \-\- that is, the name of a package, class, interface, field, constructor or method. A name can be fully\-qualified, such as \f2java.lang.String.equals(java.lang.Object)\fP, or partially\-qualified, such as \f2equals(Object)\fP.
++name
++A name of a program element written in the Java Language \-\- that is, the name of a package, class, interface, field, constructor or method. A name can be fully\-qualified, such as \f2java.lang.String.equals(java.lang.Object)\fP, or partially\-qualified, such as \f2equals(Object)\fP.
+ .LP
+ .TP 3
+-documented classes
+-The classes and interfaces for which detailed documentation is generated during a javadoc run. To be documented, the source files must be available, their source filenames or package names must be passed into the javadoc command, and they must not be filtered out by their access modifier (public, protected, package\-private or private). We also refer to these as the classes included in the javadoc output, or the \f2included classes\fP.
++documented classes
++The classes and interfaces for which detailed documentation is generated during a javadoc run. To be documented, the source files must be available, their source filenames or package names must be passed into the javadoc command, and they must not be filtered out by their access modifier (public, protected, package\-private or private). We also refer to these as the classes included in the javadoc output, or the \f2included classes\fP.
+ .LP
+ .TP 3
+-included classes
+-Classes and interfaces whose details are documented during a run of the Javadoc tool. Same as \f2documented classes\fP.
++included classes
++Classes and interfaces whose details are documented during a run of the Javadoc tool. Same as \f2documented classes\fP.
+ .LP
+ .TP 3
+-excluded classes
+-Classes and interfaces whose details are \f2not\fP documented during a run of the Javadoc tool.
++excluded classes
++Classes and interfaces whose details are \f2not\fP documented during a run of the Javadoc tool.
+ .LP
+ .TP 3
+-referenced classes
+-The classes and interfaces that are explicitly referred to in the definition (implementation) or doc comments of the documented classes and interfaces. Examples of references include return type, parameter type, cast type, extended class, implemented interface, imported classes, classes used in method bodies, @see, {@link}, {@linkplain}, and {@inheritDoc} tags. (Notice this definition has changed since
++referenced classes
++The classes and interfaces that are explicitly referred to in the definition (implementation) or doc comments of the documented classes and interfaces. Examples of references include return type, parameter type, cast type, extended class, implemented interface, imported classes, classes used in method bodies, @see, {@link}, {@linkplain}, and {@inheritDoc} tags. (Notice this definition has changed since
+ .na
+ \f21.3\fP @
+ .fi
+-http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members.
++http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members.
+ .LP
+ .TP 3
+-external referenced classes
+-The referenced classes whose documentation is not being generated during a javadoc run. In other words, these classes are not passed into the Javadoc tool on the command line. Links in the generated documentation to those classes are said to be \f2external references\fP or \f2external links\fP. For example, if you run the Javadoc tool on only the \f2java.awt\fP package, then any class in \f2java.lang\fP, such as \f2Object\fP, is an external referenced class. External referenced classes can be linked to using the \f2\-link\fP and \f2\-linkoffline\fP options. An important property of an external referenced class is that its source comments are normally not available to the Javadoc run. In this case, these comments cannot be inherited.
++external referenced classes
++The referenced classes whose documentation is not being generated during a javadoc run. In other words, these classes are not passed into the Javadoc tool on the command line. Links in the generated documentation to those classes are said to be \f2external references\fP or \f2external links\fP. For example, if you run the Javadoc tool on only the \f2java.awt\fP package, then any class in \f2java.lang\fP, such as \f2Object\fP, is an external referenced class. External referenced classes can be linked to using the \f2\-link\fP and \f2\-linkoffline\fP options. An important property of an external referenced class is that its source comments are normally not available to the Javadoc run. In this case, these comments cannot be inherited.
+ .RE
+ .SH "SOURCE FILES"
+ .LP
+ The Javadoc tool will generate output originating from four different types of "source" files: Java language source files for classes (\f2.java\fP), package comment files, overview comment files, and miscellaneous unprocessed files. This section also covers test files and template files that can also be in the source tree, but which you want to be sure not to document.
+-.SS
++.SS
+ Class Source Code Files
+ .LP
+ Each class or interface and its members can have their own documentation comments, contained in a \f2.java\fP file. For more details about these doc comments, see Documentation Comments.
+-.SS
++.SS
+ Package Comment Files
+ .LP
+ Each package can have its own documentation comment, contained in its own "source" file, that the Javadoc tool will merge into the package summary page that it generates. You typically include in this comment any documentation that applies to the entire package.
+@@ -228,10 +228,10 @@
+ .RS 3
+ .TP 2
+ o
+-\f2package\-info.java\fP \- Can contain a package declaration, package annotations, package comments and Javadoc tags. This file is generally preferred over package.html.
++\f2package\-info.java\fP \- Can contain a package declaration, package annotations, package comments and Javadoc tags. This file is generally preferred over package.html.
+ .TP 2
+ o
+-\f2package.html\fP \- Can contain only package comments and Javadoc tags, no package annotations.
++\f2package.html\fP \- Can contain only package comments and Javadoc tags, no package annotations.
+ .RE
+ .LP
+ A package may have a single \f2package.html\fP file or a single \f2package\-info.java\fP file but not both. Place either file in the package directory in the source tree along with your \f2.java\fP files.
+@@ -244,9 +244,9 @@
+ .fl
+ /**
+ .fl
+- * Provides the classes necessary to create an
++ * Provides the classes necessary to create an
+ .fl
+- * applet and the classes an applet uses
++ * applet and the classes an applet uses
+ .fl
+ * to communicate with its applet context.
+ .fl
+@@ -260,7 +260,7 @@
+ .fl
+ * {@link java.awt.Panel} class) with a few extra
+ .fl
+- * methods that the applet context can use to
++ * methods that the applet context can use to
+ .fl
+ * initialize, start, and stop the applet.
+ .fl
+@@ -289,7 +289,7 @@
+ .fl
+
+ .fl
+-Provides the classes necessary to create an applet and the
++Provides the classes necessary to create an applet and the
+ .fl
+ classes an applet uses to communicate with its applet context.
+ .fl
+@@ -303,11 +303,11 @@
+ .fl
+ few extra methods that the applet context can use to
+ .fl
+-initialize, start, and stop the applet.
++initialize, start, and stop the applet.
+ .fl
+
+ .fl
+-@since 1.0
++@since 1.0
+ .fl
+ @see java.awt
+ .fl
+@@ -318,7 +318,7 @@
+ \fP
+ .fi
+ .LP
+-Notice this is just a normal HTML file and does not include a package declaration. The content of the package comment file is written in HTML, like all other comments, with one exception: The documentation comment should not include the comment separators \f2/**\fP and \f2*/\fP or leading asterisks. When writing the comment, you should make the first sentence a summary about the package, and not put a title or any other text between \f2\fP and the first sentence. You can include package tags; as with any documentation comment, all block tags must appear after the main description. If you add a \f2@see\fP tag in a package comment file, it must have a fully\-qualified name. For more details, see the
++Notice this is just a normal HTML file and does not include a package declaration. The content of the package comment file is written in HTML, like all other comments, with one exception: The documentation comment should not include the comment separators \f2/**\fP and \f2*/\fP or leading asterisks. When writing the comment, you should make the first sentence a summary about the package, and not put a title or any other text between \f2\fP and the first sentence. You can include package tags; as with any documentation comment, all block tags must appear after the main description. If you add a \f2@see\fP tag in a package comment file, it must have a fully\-qualified name. For more details, see the
+ .na
+ \f2example of \fP\f2package.html\fP @
+ .fi
+@@ -328,26 +328,26 @@
+ .RS 3
+ .TP 2
+ o
+-Copies the comment for processing. (For \f2package.html\fP, copies all content between \f2\fP and \f2\fP HTML tags. You can include a \f2\fP section to put a \f2\fP, source file copyright statement, or other information, but none of these will appear in the generated documentation.)
++Copies the comment for processing. (For \f2package.html\fP, copies all content between \f2\fP and \f2\fP HTML tags. You can include a \f2\fP section to put a \f2\fP, source file copyright statement, or other information, but none of these will appear in the generated documentation.)
+ .TP 2
+ o
+-Processes any package tags that are present.
++Processes any package tags that are present.
+ .TP 2
+ o
+-Inserts the processed text at the bottom of the package summary page it generates, as shown in
++Inserts the processed text at the bottom of the package summary page it generates, as shown in
+ .na
+ \f2Package Summary\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/api/java/applet/package\-summary.html.
++http://docs.oracle.com/javase/7/docs/api/java/applet/package\-summary.html.
+ .TP 2
+ o
+-Copies the first sentence of the package comment to the top of the package summary page. It also adds the package name and this first sentence to the list of packages on the overview page, as shown in
++Copies the first sentence of the package comment to the top of the package summary page. It also adds the package name and this first sentence to the list of packages on the overview page, as shown in
+ .na
+ \f2Overview Summary\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions.
++http://docs.oracle.com/javase/7/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions.
+ .RE
+-.SS
++.SS
+ Overview Comment File
+ .LP
+ Each application or set of packages that you are documenting can have its own overview documentation comment, kept in its own "source" file, that the Javadoc tool will merge into the overview page that it generates. You typically include in this comment any documentation that applies to the entire application or set of packages.
+@@ -362,22 +362,22 @@
+ .RS 3
+ .TP 2
+ o
+-Copies all content between \f2\fP and \f2\fP tags for processing.
++Copies all content between \f2\fP and \f2\fP tags for processing.
+ .TP 2
+ o
+-Processes any overview tags that are present.
++Processes any overview tags that are present.
+ .TP 2
+ o
+-Inserts the processed text at the bottom of the overview page it generates, as shown in
++Inserts the processed text at the bottom of the overview page it generates, as shown in
+ .na
+ \f2Overview Summary\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/api/overview\-summary.html.
++http://docs.oracle.com/javase/7/docs/api/overview\-summary.html.
+ .TP 2
+ o
+-Copies the first sentence of the overview comment to the top of the overview summary page.
++Copies the first sentence of the overview comment to the top of the overview summary page.
+ .RE
+-.SS
++.SS
+ Miscellaneous Unprocessed Files
+ .LP
+ You can also include in your source any miscellaneous files that you want the Javadoc tool to copy to the destination directory. These typically includes graphic files, example Java source (.java) and class (.class) files, and self\-standing HTML files whose content would overwhelm the documentation comment of a normal Java source file.
+@@ -390,7 +390,7 @@
+ .fl
+ /**
+ .fl
+- * This button looks like this:
++ * This button looks like this:
+ .fl
+ *
+ .fl
+@@ -398,7 +398,7 @@
+ .fl
+ \fP
+ .fi
+-.SS
++.SS
+ Test Files and Template Files
+ .LP
+ Some developers have indicated they want to store test files and templates files in the source tree near their corresponding source files. That is, they would like to put them in the same directory, or a subdirectory, of those source files.
+@@ -429,60 +429,60 @@
+ .RS 3
+ .TP 2
+ o
+-One \f3class or interface page\fP (\f2classname\fP\f2.html\fP) for each class or interface it is documenting.
++One \f3class or interface page\fP (\f2classname\fP\f2.html\fP) for each class or interface it is documenting.
+ .TP 2
+ o
+-One \f3package page\fP (\f2package\-summary.html\fP) for each package it is documenting. The Javadoc tool will include any HTML text provided in a file named \f2package.html\fP or \f2package\-info.java\fP in the package directory of the source tree.
++One \f3package page\fP (\f2package\-summary.html\fP) for each package it is documenting. The Javadoc tool will include any HTML text provided in a file named \f2package.html\fP or \f2package\-info.java\fP in the package directory of the source tree.
+ .TP 2
+ o
+-One \f3overview page\fP (\f2overview\-summary.html\fP) for the entire set of packages. This is the front page of the generated document. The Javadoc tool will include any HTML text provided in a file specified with the \f2\-overview\fP option. Note that this file is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.)
++One \f3overview page\fP (\f2overview\-summary.html\fP) for the entire set of packages. This is the front page of the generated document. The Javadoc tool will include any HTML text provided in a file specified with the \f2\-overview\fP option. Note that this file is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.)
+ .RE
+ .LP
+ \f3Cross\-Reference Pages\fP
+ .RS 3
+ .TP 2
+ o
+-One \f3class hierarchy page for the entire set of packages\fP (\f2overview\-tree.html\fP). To view this, click on "Overview" in the navigation bar, then click on "Tree".
++One \f3class hierarchy page for the entire set of packages\fP (\f2overview\-tree.html\fP). To view this, click on "Overview" in the navigation bar, then click on "Tree".
+ .TP 2
+ o
+-One \f3class hierarchy page for each package\fP (\f2package\-tree.html\fP) To view this, go to a particular package, class or interface page; click "Tree" to display the hierarchy for that package.
++One \f3class hierarchy page for each package\fP (\f2package\-tree.html\fP) To view this, go to a particular package, class or interface page; click "Tree" to display the hierarchy for that package.
+ .TP 2
+ o
+-One \f3"use" page\fP for each package (\f2package\-use.html\fP) and a separate one for each class and interface (\f2class\-use/\fP\f2classname\fP\f2.html\fP). This page describes what packages, classes, methods, constructors and fields use any part of the given class, interface or package. Given a class or interface A, its "use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
++One \f3"use" page\fP for each package (\f2package\-use.html\fP) and a separate one for each class and interface (\f2class\-use/\fP\f2classname\fP\f2.html\fP). This page describes what packages, classes, methods, constructors and fields use any part of the given class, interface or package. Given a class or interface A, its "use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+ .TP 2
+ o
+-A \f3deprecated API page\fP (\f2deprecated\-list.html\fP) listing all deprecated names. (A deprecated name is not recommended for use, generally due to improvements, and a replacement name is usually given. Deprecated APIs may be removed in future implementations.)
++A \f3deprecated API page\fP (\f2deprecated\-list.html\fP) listing all deprecated names. (A deprecated name is not recommended for use, generally due to improvements, and a replacement name is usually given. Deprecated APIs may be removed in future implementations.)
+ .TP 2
+ o
+-A \f3constant field values page\fP (\f2constant\-values.html\fP) for the values of static fields.
++A \f3constant field values page\fP (\f2constant\-values.html\fP) for the values of static fields.
+ .TP 2
+ o
+-A \f3serialized form page\fP (\f2serialized\-form.html\fP) for information about serializable and externalizable classes. Each such class has a description of its serialization fields and methods. This information is of interest to re\-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class comment. The standard doclet automatically generates a serialized form page: any class (public or non\-public) that implements Serializable is included, along with \f2readObject\fP and \f2writeObject\fP methods, the fields that are serialized, and the doc comments from the \f2@serial\fP, \f2@serialField\fP, and \f2@serialData\fP tags. Public serializable classes can be excluded by marking them (or their package) with \f2@serial exclude\fP, and package\-private serializable classes can be included by marking them (or their package) with \f2@serial include\fP. As of 1.4, you can generate the complete serialized form for public and private classes by running javadoc \f2without\fP specifying the \f2\-private\fP option.
++A \f3serialized form page\fP (\f2serialized\-form.html\fP) for information about serializable and externalizable classes. Each such class has a description of its serialization fields and methods. This information is of interest to re\-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class comment. The standard doclet automatically generates a serialized form page: any class (public or non\-public) that implements Serializable is included, along with \f2readObject\fP and \f2writeObject\fP methods, the fields that are serialized, and the doc comments from the \f2@serial\fP, \f2@serialField\fP, and \f2@serialData\fP tags. Public serializable classes can be excluded by marking them (or their package) with \f2@serial exclude\fP, and package\-private serializable classes can be included by marking them (or their package) with \f2@serial include\fP. As of 1.4, you can generate the complete serialized form for public and private classes by running javadoc \f2without\fP specifying the \f2\-private\fP option.
+ .TP 2
+ o
+-An \f3index\fP (\f2index\-*.html\fP) of all class, interface, constructor, field and method names, alphabetically arranged. This is internationalized for Unicode and can be generated as a single file or as a separate file for each starting character (such as A\-Z for English).
++An \f3index\fP (\f2index\-*.html\fP) of all class, interface, constructor, field and method names, alphabetically arranged. This is internationalized for Unicode and can be generated as a single file or as a separate file for each starting character (such as A\-Z for English).
+ .RE
+ .LP
+ \f3Support Files\fP
+ .RS 3
+ .TP 2
+ o
+-A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP.
++A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP.
+ .TP 2
+ o
+-One \f3index.html file\fP which creates the HTML frames for display. This is the file you load to display the front page with frames. This file itself contains no text content.
++One \f3index.html file\fP which creates the HTML frames for display. This is the file you load to display the front page with frames. This file itself contains no text content.
+ .TP 2
+ o
+-Several \f3frame files\fP (\f2*\-frame.html\fP) containing lists of packages, classes and interfaces, used when HTML frames are being displayed.
++Several \f3frame files\fP (\f2*\-frame.html\fP) containing lists of packages, classes and interfaces, used when HTML frames are being displayed.
+ .TP 2
+ o
+-A \f3package list\fP file (\f2package\-list\fP), used by the \f2\-link\fP and \f2\-linkoffline\fP options. This is a text file, not HTML, and is not reachable through any links.
++A \f3package list\fP file (\f2package\-list\fP), used by the \f2\-link\fP and \f2\-linkoffline\fP options. This is a text file, not HTML, and is not reachable through any links.
+ .TP 2
+ o
+-A \f3style sheet\fP file (\f2stylesheet.css\fP) that controls a limited amount of color, font family, font size, font style and positioning on the generated pages.
++A \f3style sheet\fP file (\f2stylesheet.css\fP) that controls a limited amount of color, font family, font size, font style and positioning on the generated pages.
+ .TP 2
+ o
+-A \f3doc\-files\fP directory that holds any image, example, source code or other files that you want copied to the destination directory. These files are not processed by the Javadoc tool in any manner \-\- that is, any javadoc tags in them will be ignored. This directory is not generated unless it exists in the source tree.
++A \f3doc\-files\fP directory that holds any image, example, source code or other files that you want copied to the destination directory. These files are not processed by the Javadoc tool in any manner \-\- that is, any javadoc tags in them will be ignored. This directory is not generated unless it exists in the source tree.
+ .RE
+ .LP
+ \f3HTML Frames\fP
+@@ -495,10 +495,10 @@
+ .RS 3
+ .TP 2
+ o
+-\f2index.html\fP (for frames)
++\f2index.html\fP (for frames)
+ .TP 2
+ o
+-\f2overview\-summary.html\fP (for no frames)
++\f2overview\-summary.html\fP (for no frames)
+ .RE
+ .LP
+ \f3Generated File Structure\fP
+@@ -590,7 +590,7 @@
+ AudioClip.html Page for AudioClip source code
+ .fl
+ .fi
+-.SS
++.SS
+ Generated API Declarations
+ .LP
+ The Javadoc tool generates a declaration at the start of each class, interface, field, constructor, and method description for that API item. For example, the declaration for the \f2Boolean\fP class is:
+@@ -611,7 +611,7 @@
+ .SH "DOCUMENTATION COMMENTS"
+ .LP
+ The original "Documentation Comment Specification" can be found under related documentation.
+-.SS
++.SS
+ Commenting the Source Code
+ .LP
+ You can include \f2documentation comments\fP ("doc comments") in the source code, ahead of declarations for any class, interface, method, constructor, or field. You can also create doc comments for each package and another one for the overview, though their syntax is slightly different. Doc comments are also known informally as "Javadoc comments" (but this term violates its trademark usage). A doc comment consists of the characters between the characters \f2/**\fP that begin the comment and the characters \f2*/\fP that end it. Leading asterisks are allowed on each line and are described further below. The text in a comment can continue onto multiple lines.
+@@ -718,13 +718,13 @@
+ .nf
+ \f3
+ .fl
+-/**
++/**
+ .fl
+ * The horizontal and vertical distances of point (x,y)
+ .fl
+ */
+ .fl
+-public int x, y; // Avoid this
++public int x, y; // Avoid this
+ .fl
+ \fP
+ .fi
+@@ -737,7 +737,7 @@
+ .fl
+ .fi
+ .RS 3
+-The horizontal and vertical distances of point (x,y)
++The horizontal and vertical distances of point (x,y)
+ .RE
+ .nf
+ \f3
+@@ -746,25 +746,25 @@
+ .fl
+ .fi
+ .RS 3
+-The horizontal and vertical distances of point (x,y)
++The horizontal and vertical distances of point (x,y)
+ .RE
+ .LP
+ \f3Use header tags carefully\fP \- When writing documentation comments for members, it's best not to use HTML heading tags such as
and
, because the Javadoc tool creates an entire structured document and these structural tags might interfere with the formatting of the generated document. However, it is fine to use these headings in class and package comments to provide your own structure.
+-.SS
++.SS
+ Automatic Copying of Method Comments
+ .LP
+ The Javadoc tool has the ability to copy or "inherit" method comments in classes and interfaces under the following two circumstances. Constructors, fields and nested classes do not inherit doc comments.
+ .RS 3
+ .TP 2
+ o
+-\f3Automatically inherit comment to fill in missing text\fP \- When a main description, or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag is missing from a method comment, the Javadoc tool copies the corresponding main description or tag comment from the method it overrides or implements (if any), according to the algorithm below.
++\f3Automatically inherit comment to fill in missing text\fP \- When a main description, or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag is missing from a method comment, the Javadoc tool copies the corresponding main description or tag comment from the method it overrides or implements (if any), according to the algorithm below.
+ .LP
+-More specifically, when a \f2@param\fP tag for a particular parameter is missing, then the comment for that parameter is copied from the method further up the inheritance hierarchy. When a \f2@throws\fP tag for a particular exception is missing, the \f2@throws\fP tag is copied \f2only if that exception is declared\fP.
++More specifically, when a \f2@param\fP tag for a particular parameter is missing, then the comment for that parameter is copied from the method further up the inheritance hierarchy. When a \f2@throws\fP tag for a particular exception is missing, the \f2@throws\fP tag is copied \f2only if that exception is declared\fP.
+ .LP
+-This behavior contrasts with version 1.3 and earlier, where the presence of any main description or tag would prevent all comments from being inherited.
++This behavior contrasts with version 1.3 and earlier, where the presence of any main description or tag would prevent all comments from being inherited.
+ .TP 2
+ o
+-\f3Explicitly inherit comment with {@inheritDoc} tag\fP \- Insert the inline tag \f2{@inheritDoc}\fP in a method main description or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag comment \-\- the corresponding inherited main description or tag comment is copied into that spot.
++\f3Explicitly inherit comment with {@inheritDoc} tag\fP \- Insert the inline tag \f2{@inheritDoc}\fP in a method main description or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag comment \-\- the corresponding inherited main description or tag comment is copied into that spot.
+ .RE
+ .LP
+ The source file for the inherited method need only be on the path specified by \-sourcepath for the doc comment to actually be available to copy. Neither the class nor its package needs to be passed in on the command line. This contrasts with 1.3.x and earlier releases, where the class had to be a documented class
+@@ -773,13 +773,13 @@
+ .RS 3
+ .TP 2
+ o
+-When a method in a class overrides a method in a superclass
++When a method in a class overrides a method in a superclass
+ .TP 2
+ o
+-When a method in an interface overrides a method in a superinterface
++When a method in an interface overrides a method in a superinterface
+ .TP 2
+ o
+-When a method in a class implements a method in an interface
++When a method in a class implements a method in an interface
+ .RE
+ .LP
+ In the first two cases, for method overrides, the Javadoc tool generates a subheading "Overrides" in the documentation for the overriding method, with a link to the method it is overriding, whether or not the comment is inherited.
+@@ -790,37 +790,37 @@
+ .RS 3
+ .TP 3
+ 1.
+-Look in each directly implemented (or extended) interface in the order they appear following the word implements (or extends) in the method declaration. Use the first doc comment found for this method.
++Look in each directly implemented (or extended) interface in the order they appear following the word implements (or extends) in the method declaration. Use the first doc comment found for this method.
+ .TP 3
+ 2.
+-If step 1 failed to find a doc comment, recursively apply this entire algorithm to each directly implemented (or extended) interface, in the same order they were examined in step 1.
++If step 1 failed to find a doc comment, recursively apply this entire algorithm to each directly implemented (or extended) interface, in the same order they were examined in step 1.
+ .TP 3
+ 3.
+-If step 2 failed to find a doc comment and this is a class other than Object (not an interface):
++If step 2 failed to find a doc comment and this is a class other than Object (not an interface):
+ .RS 3
+ .TP 3
+ a.
+-If the superclass has a doc comment for this method, use it.
++If the superclass has a doc comment for this method, use it.
+ .TP 3
+ b.
+-If step 3a failed to find a doc comment, recursively apply this entire algorithm to the superclass.
++If step 3a failed to find a doc comment, recursively apply this entire algorithm to the superclass.
+ .RE
+ .RE
+ .SH "JAVADOC TAGS"
+ .LP
+-The Javadoc tool parses special tags when they are embedded within a Java doc comment. These doc tags enable you to autogenerate a complete, well\-formatted API from your source code. The tags start with an "at" sign (\f2@\fP) and are case\-sensitive \-\- they must be typed with the uppercase and lowercase letters as shown. A tag must start at the beginning of a line (after any leading spaces and an optional asterisk) or it is treated as normal text. By convention, tags with the same name are grouped together. For example, put all \f2@see\fP tags together.
++The Javadoc tool parses special tags when they are embedded within a Java doc comment. These doc tags enable you to autogenerate a complete, well\-formatted API from your source code. The tags start with an "at" sign (\f2@\fP) and are case\-sensitive \-\- they must be typed with the uppercase and lowercase letters as shown. A tag must start at the beginning of a line (after any leading spaces and an optional asterisk) or it is treated as normal text. By convention, tags with the same name are grouped together. For example, put all \f2@see\fP tags together.
+ .LP
+ Tags come in two types:
+ .RS 3
+ .TP 2
+ o
+-\f3Block tags\fP \- Can be placed only in the tag section that follows the main description. Block tags are of the form: \f2@tag\fP.
++\f3Block tags\fP \- Can be placed only in the tag section that follows the main description. Block tags are of the form: \f2@tag\fP.
+ .TP 2
+ o
+-\f3Inline tags\fP \- Can be placed anywhere in the main description or in the comments for block tags. Inline tags are denoted by curly braces: \f2{@tag}\fP.
++\f3Inline tags\fP \- Can be placed anywhere in the main description or in the comments for block tags. Inline tags are denoted by curly braces: \f2{@tag}\fP.
+ .RE
+ .LP
+-For information about tags we might introduce in future releases, see
++For information about tags we might introduce in future releases, see
+ .na
+ \f2Proposed Tags\fP @
+ .fi
+@@ -828,6 +828,7 @@
+ .LP
+ The current tags are:
+ .LP
++.TS
+ .if \n+(b.=1 .nr d. \n(.c-\n(c.-1
+ .de 35
+ .ps \n(.s
+@@ -952,83 +953,83 @@
+ .ls
+ ..
+ .ec
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f3Tag\fP\h'|\n(41u'\f3Introduced in JDK/SDK\fP
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@author\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@code}\fP\h'|\n(41u'1.5
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@docRoot}\fP\h'|\n(41u'1.3
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@deprecated\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@exception\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@inheritDoc}\fP\h'|\n(41u'1.4
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@link}\fP\h'|\n(41u'1.2
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@linkplain}\fP\h'|\n(41u'1.4
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@literal}\fP\h'|\n(41u'1.5
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@param\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@return\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@see\fP\h'|\n(41u'1.0
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@serial\fP\h'|\n(41u'1.2
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@serialData\fP\h'|\n(41u'1.2
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@serialField\fP\h'|\n(41u'1.2
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@since\fP\h'|\n(41u'1.1
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@throws\fP\h'|\n(41u'1.2
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2{@value}\fP\h'|\n(41u'1.4
+-.ta \n(80u \n(81u
++.ta \n(80u \n(81u
+ .nr 31 \n(.f
+ .nr 35 1m
+ \&\h'|\n(40u'\f2@version\fP\h'|\n(41u'1.0
+@@ -1036,16 +1037,17 @@
+ .nr T. 1
+ .T# 1
+ .35
++.TE
+ .if \n-(b.=0 .nr c. \n(.c-\n(d.-42
+ .LP
+ For custom tags, see the \-tag option.
+ .RS 3
+ .TP 3
+-@author\ name\-text
+-Adds an "Author" entry with the specified \f2name\-text\fP to the generated docs when the \-author option is used. A doc comment may contain multiple \f2@author\fP tags. You can specify one name per \f2@author\fP tag or multiple names per tag. In the former case, the Javadoc tool inserts a comma (\f2,\fP) and space between names. In the latter case, the entire text is simply copied to the generated document without being parsed. Therefore, you can use multiple names per line if you want a localized name separator other than comma.
++@author\ name\-text
++Adds an "Author" entry with the specified \f2name\-text\fP to the generated docs when the \-author option is used. A doc comment may contain multiple \f2@author\fP tags. You can specify one name per \f2@author\fP tag or multiple names per tag. In the former case, the Javadoc tool inserts a comma (\f2,\fP) and space between names. In the latter case, the entire text is simply copied to the generated document without being parsed. Therefore, you can use multiple names per line if you want a localized name separator other than comma.
+ .RE
+ .LP
+-For more details, see Where Tags Can Be Used and
++For more details, see Where Tags Can Be Used and
+ .na
+ \f2writing @author tags\fP @
+ .fi
+@@ -1053,14 +1055,14 @@
+ .LP
+ .RS 3
+ .TP 3
+-@deprecated\ deprecated\-text Note: You can deprecate a program element using the @Deprecated annotation.
++@deprecated\ deprecated\-text Note: You can deprecate a program element using the @Deprecated annotation.
+ .RE
+ .LP
+ Adds a comment indicating that this API should no longer be used (even though it may continue to work). The Javadoc tool moves the \f2deprecated\-text\fP ahead of the main description, placing it in italics and preceding it with a bold warning: "Deprecated". This tag is valid in all doc comments: overview, package, class, interface, constructor, method and field.
+ .LP
+ The first sentence of \f2deprecated\-text\fP should at least tell the user when the API was deprecated and what to use as a replacement. The Javadoc tool copies just the first sentence to the summary section and index. Subsequent sentences can also explain why it has been deprecated. You should include a \f2{@link}\fP tag (for Javadoc 1.2 or later) that points to the replacement API:
+ .LP
+-For more details, see
++For more details, see
+ .na
+ \f2writing @deprecated tags\fP @
+ .fi
+@@ -1068,7 +1070,7 @@
+ .RS 3
+ .TP 2
+ o
+-For Javadoc 1.2 and later, use a \f2{@link}\fP tag. This creates the link in\-line, where you want it. For example:
++For Javadoc 1.2 and later, use a \f2{@link}\fP tag. This creates the link in\-line, where you want it. For example:
+ .nf
+ \f3
+ .fl
+@@ -1078,75 +1080,75 @@
+ .fl
+ */
+ .fl
+-
++
+ .fl
+ \fP
+ .fi
+ .TP 2
+ o
+-For Javadoc 1.1, the standard format is to create a \f2@see\fP tag (which cannot be in\-line) for each \f2@deprecated\fP tag.
++For Javadoc 1.1, the standard format is to create a \f2@see\fP tag (which cannot be in\-line) for each \f2@deprecated\fP tag.
+ .RE
+ .LP
+-For more about deprecation, see
++For more about deprecation, see
+ .na
+ \f2The @deprecated tag\fP @
+ .fi
+-http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/index.html.
++http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/index.html.
+ .LP
+ .RS 3
+ .TP 3
+-{@code\ text}
+-Equivalent to \f2{@literal}\fP.
++{@code\ text}
++Equivalent to \f2{@literal}\fP.
+ .LP
+-Displays \f2text\fP in \f2code\fP font without interpreting the text as HTML markup or nested javadoc tags. This enables you to use regular angle brackets (\f2<\fP and \f2>\fP) instead of the HTML entities (\f2<\fP and \f2>\fP) in doc comments, such as in parameter types (\f2