aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Ushakov <alexey.ushakov@jetbrains.com>2016-02-15 14:12:02 +0300
committerAlexey Ushakov <alexey.ushakov@jetbrains.com>2016-02-15 14:12:02 +0300
commit0c908c64c7f05eb5b7e3cb5c5da4c9dde841fbb9 (patch)
treeb9260b6da32300f1768844b36f676935bc998399
parent1b76940ab0abaff1d9512222fe5abc07b049b9bb (diff)
parent4c8c22d9296373b4d528c177a90e0f19f0044da4 (diff)
downloadjdk8u_corba-jetbrains-master-mirror-osx.tar.gz
Merged changes from defaultjetbrains-master-mirror-osx
--HG-- branch : 8u40-verified-fixes
-rw-r--r--.hgtags157
-rw-r--r--THIRD_PARTY_README45
-rw-r--r--src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java249
-rw-r--r--src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java4
-rw-r--r--src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java14
-rw-r--r--src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties4
-rw-r--r--src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties4
-rw-r--r--src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java2
-rw-r--r--src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java35
9 files changed, 404 insertions, 110 deletions
diff --git a/.hgtags b/.hgtags
index 57e1d98..d41487c 100644
--- a/.hgtags
+++ b/.hgtags
@@ -334,6 +334,8 @@ f560274aec4f42283c10070921afae403a153de2 jdk8u25-b12
f46df0af2ca8c7d896de375c8edac8ce09318318 jdk8u25-b17
ee069d67c12df902cdb06ecf1747f8ff9d495a61 jdk8u25-b18
8d0faa0eac61c04c6a5bbff2e084c9da0bd5251c jdk8u25-b31
+6617e1de7aa536d2e3671e3c50c340262b2b053e jdk8u25-b32
+c123ac2adfdc6049034d5970bec89b51ce5d8889 jdk8u25-b33
69793b08060c9d216fa84d679c48b9e22d2400ac jdk8u31-b00
fd5f8e3713803ca2d7898407a53996f3aa41521e jdk8u31-b01
b6e2d1b1b24585bd02512e360d842d4713afa644 jdk8u31-b02
@@ -348,6 +350,10 @@ b47677f7c1d122a2d05e03dec70de86feaedcd4c jdk8u31-b08
7e2056eba0b62247407e065f3f88a89358fc26a6 jdk8u31-b11
285b0e589c50e46ca7ad3434221335901a547d66 jdk8u31-b12
f89b454638d89ee5f44422b7a5b8e5651260e68f jdk8u31-b13
+705d3a4298f44f0a14925bfee5017f5824b6c0ca jdk8u31-b31
+072d325a052a5894019b74118803bf5fb9e30692 jdk8u31-b32
+bfd820cde577ba687222196e6c5159d9763df887 jdk8u31-b33
+f45b782d5583cb36a45329ce4d54f3975be8cd81 jdk8u31-b34
7d1e0f0b63f1d66c77924d8b2a1accdf8f7480db jdk8u40-b00
c5d9822a3c18cd9e274dfe99e91c33e02bd8f8f4 jdk8u40-b01
504b4455570e14b7fc0a837a09c6401c603516d9 jdk8u40-b02
@@ -376,3 +382,154 @@ a1e2c13de84e00f2aedf4c40e96347306ede84f3 jdk8u40-b18
2220744100b8487976debff79e5d0c7d70738bda jdk8u40-b25
cab2b99c6bb2e15165a58eaa36157788f82592f1 jdk8u40-b26
bd0186cd2419129357b110fe3f13519f68b29774 jdk8u40-b27
+28a1dbd4bb9ec97427790c88d21514af2f878c94 jdk8u40-b31
+663a3151c688bc3f4c092bcad21cc81e29139d62 jdk8u40-b32
+5761efbc739fdedcbff224e22f920e88b29af4cf jdk8u45-b00
+6a52852476c9ccb2d52153d1b94b675e863bb28c jdk8u45-b01
+3b9d342f9f584465ea5976e06357b45682f9681d jdk8u45-b02
+d3678799ed35f162928f387308d72f5401b37e84 jdk8u45-b03
+9dd8c8e1b0facfcf21657c91fc99bcb5319d1196 jdk8u45-b04
+b82ecb056ae3fd6ee06e765995c564b17a761221 jdk8u45-b05
+f538a9334f09535ef8fe13072f6a4a52e3187e1c jdk8u45-b06
+4dec7b828f1ee3adbf3c2b6430400db8b1abb5ad jdk8u45-b07
+16cb989c8b6220330a54fe78ae27b2f50fc5e794 jdk8u45-b08
+ace36a054b7faadb702d6f23e569efb77f0a7513 jdk8u45-b09
+b9ef43c59b425961526b04e92d7fa66014ec25eb jdk8u45-b10
+08c2ce4b6d59bc6b29e61fd8562b9e3d39b257a5 jdk8u45-b11
+c9bf2543c0c045ef31f0296bc355381e1a4bd4ac jdk8u45-b12
+326f02235e7a9a6da78428410320dcc980827d40 jdk8u45-b13
+50fb9bed64c9366b7bf68bddcdc553cd7295d905 jdk8u45-b14
+4afc048fe6ff7fc3fdbdadd8027549805c426d0d jdk8u45-b15
+e67045c893eaf5e3336c4fd849786fa15b81b601 jdk8u45-b31
+f2aeb52cb7cef1f984661a583baac67402f633a5 jdk8u45-b32
+e26a2620b5d206837fedab74fc84f068c7f47fa2 jdk8u45-b33
+c1399b5a4592414a8b8e6f64be019e8cf1f46074 jdk8u45-b34
+2f010018174e90b8673e5c4a3cdfed0a3c4c2fe2 jdk8u45-b35
+e953ae033f0c530f3588df430589582b6b7108d7 jdk8u45-b36
+883940e19107877d2b8c486b003253d2433fd59d jdk8u45-b37
+72d116eea419824044f8dd4ae9d3a012946f72a4 jdk8u51-b00
+b9638b9fe23876fd2413f336ee1d4e05d409e6a9 jdk8u51-b01
+bc5562ed3c2d69ffbff357e96d9e383479042000 jdk8u51-b02
+75c09ffd6c62f90153e4b043e0b40db4fa03954d jdk8u51-b03
+66908961baaec267141b1e80d04feed0c93f68fe jdk8u51-b04
+1c0a26d561f3a6b2d5a4c91161d7c92409d5f227 jdk8u51-b05
+dba5c9ee56abce73e1f6ed99a36a99d6907266c6 jdk8u51-b06
+00d57e68b59879ee59352ae18c7e40216d9e2243 jdk8u51-b07
+47492841bb10e6c995c68be533d2b4905856a17e jdk8u51-b08
+b9e5fa1d3f251d5cce02d1e7ff97279064aecdb1 jdk8u51-b09
+0011162b38bf4dab36c72bf25640c59d7128274a jdk8u51-b10
+4d59046bdb8a05cfb9e07d8e18d44956f700fe29 jdk8u51-b11
+e51a2deadf774452d98b339d65d33c72a466a453 jdk8u51-b12
+4886143e8749caf2ec42a6e77c70a98516e140a3 jdk8u51-b13
+1fbfa02e524872a75e98ee3a80e2472fa7012fde jdk8u51-b14
+d6e1f914c954f98caa31edd0037837830774dfb6 jdk8u51-b15
+3b9b39af6c36216418b78c449dd3af17b865a952 jdk8u51-b16
+5980dad8f264bb5ec3982d64a7c0af86fc5b3d16 jdk8u51-b31
+eb269a395660200c33cd58acca2df20da03567ab jdk8u51-b32
+b0daf4d3eb5f5de0f073ec9d264b1964b1920c67 jdk8u51-b33
+8bbc2bb414b7e9331c2014c230553d72c9d161c5 jdk8u60-b00
+15ae8298b34beb30f2bd7baa7ff895af2bec13f6 jdk8u60-b01
+a98524c04cbd24bbc3029b21c033abf9108e92b4 jdk8u60-b02
+50cef81aa68539d0af7c5c48e370108a5b0d5a4f jdk8u60-b03
+d0e7c0ba4671c6a20ba5885e075ffa7196b738a1 jdk8u60-b04
+983825f6835055c24ed7580b6d4bd2f4e17e5425 jdk8u60-b05
+587b011966468537b1ff40a007aa51e52c823bc8 jdk8u60-b06
+058a6dd8d04cbb3d3bcc0b9d60dd05111fb37b22 jdk8u60-b07
+b184ceca742eb1a6469442af91f918ac1e1cf95c jdk8u60-b08
+e8af97f98cad81672e713c1af68d9059792a4ef2 jdk8u60-b09
+bd691208dfd6c97ffd10e2314f457d7badc47dab jdk8u60-b10
+43892f96d79eea91e67c193141f76ec31eb351d8 jdk8u60-b11
+449f9a900771900310a3f49e034c4cca478c6aff jdk8u60-b12
+b4e22b44d44664a3aa4fc2737cd63115328084b1 jdk8u60-b13
+c4108e15fbde9c67f5085aa60cd9f03e69d245dd jdk8u60-b14
+68b50073c52a2c77aa35f90d6cfdec966effc4ef jdk8u60-b15
+3b19c17ea11c3831a8a0099d6d7a1a3c7e4897c4 jdk8u60-b16
+7ef66778231f234b69515202b2dc2287143ecb49 jdk8u60-b17
+cf83b578af1935db8474d01b8642e4803a534d3a jdk8u60-b18
+eb0caffe34c6bea2ff40966757142b3dcd3a2a4c jdk8u60-b19
+4f3a29adbf4cfa2127e1108d82aaaa0d29f3c583 jdk8u60-b20
+d68de92de3bad991546b11d77de6e9c17edf7ec2 jdk8u60-b21
+3a04901d83880634ecd70c8be992189228ccd746 jdk8u60-b22
+0828bb6521738ad5a7fe11f0aa3495465f002848 jdk8u60-b23
+b0779099d006fcb2a0af493e2a2f828411bfad33 jdk8u60-b24
+c665dd5d32b04c1dbc2cf21a595fe73330849c03 jdk8u60-b25
+7828b9af7733eeaf2cafa8e05e68a2661dc3c7a8 jdk8u60-b26
+be922f27d05991e3099f42988b8ea4ad89809749 jdk8u60-b27
+1c146aed705a76fd488402219b0b7740e2aeb5e2 jdk8u60-b31
+dccb1de9712dd6aa2a1edafba861af9998ad3e62 jdk8u60-b32
+8e247b5216a5a4623c1bef7331585d78e7c0fb15 jdk8u52-b06
+974e2fd9b5b3cec38cceb35c93bcc3b5bedbe91c jdk8u52-b07
+8e247b5216a5a4623c1bef7331585d78e7c0fb15 jdk8u65-b00
+31ceb15b19bee8e02aa2cf4be5c3f147ad6afb22 jdk8u65-b01
+4c8bc7757f825f9fe0806fa13f0fe85b1a20982a jdk8u65-b02
+7a98523691a9657d4f5ecf8fb71476cecc6d5c4d jdk8u65-b03
+771cf2ce97e332e1ecffe4818d0fbe77f11e28a2 jdk8u65-b04
+5b6ff67eed5f25cc710a53026e706597c9193f56 jdk8u65-b05
+05084f644c07a81e2b246db38917df253f5e2882 jdk8u65-b06
+bc23767d08cf1e2ba8793106882a3ec9b926d9e0 jdk8u65-b07
+cc1eef73fb58c59317a0be13f31ef7a77b46b8e3 jdk8u65-b08
+db639a8f026b01059114cd32d9e44dfad2b55de0 jdk8u65-b09
+98ad80b71e1fb5c3343c33dffd40e9e92e65f087 jdk8u65-b10
+98ad80b71e1fb5c3343c33dffd40e9e92e65f087 jdk8u65-b10
+0000000000000000000000000000000000000000 jdk8u65-b10
+0000000000000000000000000000000000000000 jdk8u65-b10
+6b5f81fcbdde7bca924364448e7d98912992ac2f jdk8u65-b10
+2dcd36bfa8a4e5d789cd86ee24bdc1045bac4e06 jdk8u65-b11
+55f0343bcba5f486f955ffe7b25aac261c0003b4 jdk8u65-b12
+d7ec3a9f57de2e6c403410f7b45aa69171f18892 jdk8u65-b13
+4d70db073f332c38b861585b46fe7252b1c5b9fa jdk8u65-b14
+ac282c2b32cdc6c8f8948fca6980cb1505b36c80 jdk8u65-b15
+a844676401a206b1e98f4b5b69141b784a559766 jdk8u65-b16
+d9c2dcdd835ca332c9c44430747f9f2633c2dfd9 jdk8u65-b17
+3a04901d83880634ecd70c8be992189228ccd746 jdk8u66-b00
+3717d70ac87f5e5579e540cd990b4e958c5990a4 jdk8u66-b01
+15851994f9f81f6de37b63683c8cd9b19ae90ed1 jdk8u66-b02
+8e9e5c715064a55865975ec3626b17e0439613c7 jdk8u66-b07
+6802a364b568ce4f4398c0fc90ee0f675337a3c2 jdk8u66-b08
+81d11adaf5aa0b37ffabf45fbeb8fa19f13de596 jdk8u66-b09
+12e44aa2069b20ecbff03285dea4681325b9c05f jdk8u66-b10
+ebe5ae51f625a9d3f5e1aac835a416502c71a4a0 jdk8u66-b11
+3acb9f1828c5e9ed64a45c0101d1c59d1e784ee0 jdk8u66-b12
+f71aabee169f8342298e38923848bdb863c0f37a jdk8u66-b13
+0db478b43d7fcf26dc613241654737756ec982c5 jdk8u66-b14
+b88ba0b818831eb6f3a7954e218b371ed6f5d154 jdk8u66-b15
+606448f919ad288412669c3e78482b99d8f5f416 jdk8u66-b16
+c53412824d4ef81343418a71877172776b0980af jdk8u66-b17
+efb736c1edb983bd231617a2619d68a3eee4d850 jdk8u66-b18
+d555fb895611d083724442be79e5592ba676825c jdk8u66-b31
+cd1b3e5a3126d0808c845d2df518095b10a98059 jdk8u71-b00
+8c21767afa1a241e8312a1d4280efadfded4883d jdk8u71-b01
+c775f50c022007b4f482f51dafb95224886aca8b jdk8u71-b02
+c58d76c5ebf109d600073c919c7cd07fab8b22da jdk8u71-b03
+40c0d0766618ce3bf465b97e9effed131c4327b0 jdk8u71-b04
+ca7c15cd6f1d31067b7f29cf21d96ff69e5a9728 jdk8u71-b05
+a48ae298304c929b8952eaae45cbc91d8872bcff jdk8u71-b06
+cdc7f7d08434d1219016a0098d27c0e528a0f3dd jdk8u71-b07
+68e0b5479460cbce7b91f3eec723a652bbd2f3b8 jdk8u71-b08
+a6d5b4ad93ac5c0d53ee956ff6c121708eae1804 jdk8u71-b09
+45eccf50c18385dad143f0969671bb715c7defc5 jdk8u71-b10
+661364a8ca3415f0380a14270b69314113edcf7a jdk8u71-b11
+df868f22501c87aac038325cf1592d9677e467ed jdk8u71-b12
+82a6eb78e6a804650c5f51ffef68ba47081241ad jdk8u71-b13
+f8923f3121241a28f5107497df4c499ae4808adc jdk8u71-b14
+01490a24fddd040179bb11da9d3aabc26acd3253 jdk8u71-b15
+81296d52090354da1eb9748d63a29d30bb1230f7 jdk8u72-b00
+f0c760a2a888db7c84ec7d7a11892b8de867b2ae jdk8u72-b01
+4483a58cf74e7c237208059f94eced2ac9e2ed89 jdk8u72-b02
+c7110d67f536f9ff356ab5d871cf8316962da096 jdk8u72-b03
+948d562cd00d4a94264c5f97e55e16ce763a6367 jdk8u72-b04
+c752f355ace8127ef54b1e02968fcab934e199bd jdk8u72-b05
+ad9ef5b972345cdb79ebaf688dd026f8c2ecfd8c jdk8u72-b06
+812a4a1c5cf055413e5035ddc5ea6bff35d6ef57 jdk8u72-b07
+163f56ecf17237f326b3175a825762bae5149ce5 jdk8u72-b08
+f0d5b961f6992333074f9fe314c3e09b9d8eb43b jdk8u72-b09
+474cc933bc1ad7a3b63163aa09f4bb3fe978eda3 jdk8u72-b10
+afc6230d35e74394b14d10ec915bbdf4037e1da9 jdk8u72-b11
+3eb18c06118e0bc2fca1e1ea6c1cbddd21a27479 jdk8u72-b12
+0d9849ba664dc3381d8d6d85d5e04c00fdd476b1 jdk8u72-b13
+baa49bb35fc1798a5951fcfd3f9232332651d4e9 jdk8u72-b14
+91e3b8e2e00618f237f571fbefdfee3f4134026f jdk8u72-b15
+7deeb4f70404e4f52306f9d0bcfc482fc5f16fb3 jdk8u76-b00
+5786892e7c7d512ef9104a469ff7eafeaac12c38 jdk8u76-b01
+239155e48af89968b62e695a3233d42bed1a3282 jdk8u76-b02
+137e5c45fd5422ecd6c758c6b83a2f184abef91b jdk8u76-b03
diff --git a/THIRD_PARTY_README b/THIRD_PARTY_README
index c34ce6b..2b20da2 100644
--- a/THIRD_PARTY_README
+++ b/THIRD_PARTY_README
@@ -1140,37 +1140,6 @@ included with JRE 8, JDK 8, and OpenJDK 8.
--------------------------------------------------------------------------------
-%% This notice is provided with respect to JSON, which may be included
-with JRE 8 & JDK 8.
-
---- begin of LICENSE ---
-
-Copyright (c) 2002 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
---- end of LICENSE ---
-
--------------------------------------------------------------------------------
-
%% This notice is provided with respect to Kerberos functionality, which
which may be included with JRE 8, JDK 8, and OpenJDK 8.
@@ -1250,7 +1219,7 @@ included with JDK 8 and OpenJDK 8 source distributions.
-------------------------------------------------------------------------------
-%% This notice is provided with respect to libpng 1.5.4, which may be
+%% This notice is provided with respect to libpng 1.6.16, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1266,8 +1235,8 @@ this sentence.
This code is released under the libpng license.
-libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
-Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.6.16, December 22, 2014, are
+Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -1364,13 +1333,13 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-July 7, 2011
+December 22, 2014
--- end of LICENSE ---
-------------------------------------------------------------------------------
-%% This notice is provided with respect to libungif 4.1.3, which may be
+%% This notice is provided with respect to GIFLIB 5.1.1 & libungif 4.1.3, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1399,13 +1368,13 @@ THE SOFTWARE.
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Little CMS 2.5, which may be
+%% This notice is provided with respect to Little CMS 2.7, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
Little CMS
-Copyright (c) 1998-2011 Marti Maria Saguer
+Copyright (c) 1998-2015 Marti Maria Saguer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java b/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
index e14b25e..c9d6320 100644
--- a/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
+++ b/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -567,6 +567,11 @@ public class IIOPInputStream
// XXX I18N, logging needed.
throw new NotActiveException("defaultReadObjectDelegate");
+ if (!currentClassDesc.forClass().isAssignableFrom(
+ currentObject.getClass())) {
+ throw new IOException("Object Type mismatch");
+ }
+
// The array will be null unless fields were retrieved
// remotely because of a serializable version difference.
// Bug fix for 4365188. See the definition of
@@ -1063,6 +1068,9 @@ public class IIOPInputStream
int spBase = spClass; // current top of stack
+ if (currentClass.getName().equals("java.lang.String")) {
+ return this.readUTF();
+ }
/* The object's classes should be processed from supertype to subtype
* Push all the clases of the current object onto a stack.
* Note that only the serializable classes are represented
@@ -1768,43 +1776,59 @@ public class IIOPInputStream
switch (field.getTypeCode()) {
case 'B':
byte byteValue = orbStream.read_octet();
- bridge.putByte( o, field.getFieldID(), byteValue ) ;
- //reflective code: field.getField().setByte( o, byteValue ) ;
+ if (field.getField() != null) {
+ bridge.putByte( o, field.getFieldID(), byteValue ) ;
+ //reflective code: field.getField().setByte( o, byteValue ) ;
+ }
break;
case 'Z':
boolean booleanValue = orbStream.read_boolean();
- bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
- //reflective code: field.getField().setBoolean( o, booleanValue ) ;
+ if (field.getField() != null) {
+ bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
+ //reflective code: field.getField().setBoolean( o, booleanValue ) ;
+ }
break;
case 'C':
char charValue = orbStream.read_wchar();
- bridge.putChar( o, field.getFieldID(), charValue ) ;
- //reflective code: field.getField().setChar( o, charValue ) ;
+ if (field.getField() != null) {
+ bridge.putChar( o, field.getFieldID(), charValue ) ;
+ //reflective code: field.getField().setChar( o, charValue ) ;
+ }
break;
case 'S':
short shortValue = orbStream.read_short();
- bridge.putShort( o, field.getFieldID(), shortValue ) ;
- //reflective code: field.getField().setShort( o, shortValue ) ;
+ if (field.getField() != null) {
+ bridge.putShort( o, field.getFieldID(), shortValue ) ;
+ //reflective code: field.getField().setShort( o, shortValue ) ;
+ }
break;
case 'I':
int intValue = orbStream.read_long();
- bridge.putInt( o, field.getFieldID(), intValue ) ;
- //reflective code: field.getField().setInt( o, intValue ) ;
+ if (field.getField() != null) {
+ bridge.putInt( o, field.getFieldID(), intValue ) ;
+ //reflective code: field.getField().setInt( o, intValue ) ;
+ }
break;
case 'J':
long longValue = orbStream.read_longlong();
- bridge.putLong( o, field.getFieldID(), longValue ) ;
- //reflective code: field.getField().setLong( o, longValue ) ;
+ if (field.getField() != null) {
+ bridge.putLong( o, field.getFieldID(), longValue ) ;
+ //reflective code: field.getField().setLong( o, longValue ) ;
+ }
break;
case 'F' :
float floatValue = orbStream.read_float();
- bridge.putFloat( o, field.getFieldID(), floatValue ) ;
- //reflective code: field.getField().setFloat( o, floatValue ) ;
+ if (field.getField() != null) {
+ bridge.putFloat( o, field.getFieldID(), floatValue ) ;
+ //reflective code: field.getField().setFloat( o, floatValue ) ;
+ }
break;
case 'D' :
double doubleValue = orbStream.read_double();
- bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
- //reflective code: field.getField().setDouble( o, doubleValue ) ;
+ if (field.getField() != null) {
+ bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
+ //reflective code: field.getField().setDouble( o, doubleValue ) ;
+ }
break;
default:
// XXX I18N, logging needed.
@@ -2217,9 +2241,6 @@ public class IIOPInputStream
if (o != null) {
for (int i = 0; i < primFields; ++i) {
- if (fields[i].getField() == null)
- continue;
-
inputPrimitiveField(o, cl, fields[i]);
}
}
@@ -2244,6 +2265,27 @@ public class IIOPInputStream
try {
Class fieldCl = fields[i].getClazz();
+ if ((objectValue != null)
+ && (!fieldCl.isAssignableFrom(
+ objectValue.getClass()))) {
+ throw new IllegalArgumentException("Field mismatch");
+ }
+ Field classField = null;
+ try {
+ classField = cl.getDeclaredField(fields[i].getName());
+ } catch (NoSuchFieldException nsfEx) {
+ throw new IllegalArgumentException(nsfEx);
+ } catch (SecurityException secEx) {
+ throw new IllegalArgumentException(secEx.getCause());
+ }
+ Class<?> declaredFieldClass = classField.getType();
+
+ // check input field type is a declared field type
+ // input field is a subclass of the declared field
+ if (!declaredFieldClass.isAssignableFrom(fieldCl)) {
+ throw new IllegalArgumentException(
+ "Field Type mismatch");
+ }
if (objectValue != null && !fieldCl.isInstance(objectValue)) {
throw new IllegalArgumentException();
}
@@ -2417,8 +2459,8 @@ public class IIOPInputStream
private void throwAwayData(ValueMember[] fields,
com.sun.org.omg.SendingContext.CodeBase sender)
throws InvalidClassException, StreamCorruptedException,
- ClassNotFoundException, IOException
- {
+ ClassNotFoundException, IOException {
+
for (int i = 0; i < fields.length; ++i) {
try {
@@ -2553,8 +2595,7 @@ public class IIOPInputStream
}
- private static void setObjectField(Object o, Class c, String fieldName, Object v)
- {
+ private static void setObjectField(Object o, Class c, String fieldName, Object v) {
try {
Field fld = c.getDeclaredField( fieldName ) ;
Class fieldCl = fld.getType();
@@ -2564,9 +2605,15 @@ public class IIOPInputStream
long key = bridge.objectFieldOffset( fld ) ;
bridge.putObject( o, key, v ) ;
} catch (Exception e) {
- throw utilWrapper.errorSetObjectField( e, fieldName,
- o.toString(),
- v.toString() ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetObjectField( e, fieldName,
+ o.toString(),
+ v.toString() ) ;
+ } else {
+ throw utilWrapper.errorSetObjectField( e, fieldName,
+ "null " + c.getName() + " object",
+ v.toString() ) ;
+ }
}
}
@@ -2574,12 +2621,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putBoolean( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Boolean.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putBoolean( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
+ if (o != null) {
throw utilWrapper.errorSetBooleanField( e, fieldName,
o.toString(),
new Boolean(v) ) ;
+ } else {
+ throw utilWrapper.errorSetBooleanField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Boolean(v) ) ;
+ }
}
}
@@ -2587,12 +2644,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putByte( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Byte.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putByte( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetByteField( e, fieldName,
- o.toString(),
- new Byte(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetByteField( e, fieldName,
+ o.toString(),
+ new Byte(v) ) ;
+ } else {
+ throw utilWrapper.errorSetByteField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Byte(v) ) ;
+ }
}
}
@@ -2600,12 +2667,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putChar( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Character.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putChar( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetCharField( e, fieldName,
- o.toString(),
- new Character(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetCharField( e, fieldName,
+ o.toString(),
+ new Character(v) ) ;
+ } else {
+ throw utilWrapper.errorSetCharField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Character(v) ) ;
+ }
}
}
@@ -2613,12 +2690,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putShort( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Short.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putShort( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
+ if (o != null) {
throw utilWrapper.errorSetShortField( e, fieldName,
o.toString(),
new Short(v) ) ;
+ } else {
+ throw utilWrapper.errorSetShortField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Short(v) ) ;
+ }
}
}
@@ -2626,12 +2713,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putInt( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Integer.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putInt( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetIntField( e, fieldName,
- o.toString(),
- new Integer(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetIntField( e, fieldName,
+ o.toString(),
+ new Integer(v) ) ;
+ } else {
+ throw utilWrapper.errorSetIntField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Integer(v) ) ;
+ }
}
}
@@ -2639,12 +2736,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putLong( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Long.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putLong( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetLongField( e, fieldName,
- o.toString(),
- new Long(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetLongField( e, fieldName,
+ o.toString(),
+ new Long(v) ) ;
+ } else {
+ throw utilWrapper.errorSetLongField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Long(v) ) ;
+ }
}
}
@@ -2652,12 +2759,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putFloat( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Float.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putFloat( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetFloatField( e, fieldName,
- o.toString(),
- new Float(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetFloatField( e, fieldName,
+ o.toString(),
+ new Float(v) ) ;
+ } else {
+ throw utilWrapper.errorSetFloatField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Float(v) ) ;
+ }
}
}
@@ -2665,12 +2782,22 @@ public class IIOPInputStream
{
try {
Field fld = c.getDeclaredField( fieldName ) ;
- long key = bridge.objectFieldOffset( fld ) ;
- bridge.putDouble( o, key, v ) ;
+ if ((fld != null) && (fld.getType() == Double.TYPE)) {
+ long key = bridge.objectFieldOffset( fld ) ;
+ bridge.putDouble( o, key, v ) ;
+ } else {
+ throw new InvalidObjectException("Field Type mismatch");
+ }
} catch (Exception e) {
- throw utilWrapper.errorSetDoubleField( e, fieldName,
- o.toString(),
- new Double(v) ) ;
+ if (o != null) {
+ throw utilWrapper.errorSetDoubleField( e, fieldName,
+ o.toString(),
+ new Double(v) ) ;
+ } else {
+ throw utilWrapper.errorSetDoubleField( e, fieldName,
+ "null " + c.getName() + " object",
+ new Double(v) ) ;
+ }
}
}
diff --git a/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java b/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
index 1ca9e11..a8fcb18 100644
--- a/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
+++ b/src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java
@@ -559,6 +559,10 @@ public class IIOPOutputStream
* Push all the clases of the current object onto a stack.
* Remember the stack pointer where this set of classes is being pushed.
*/
+ if (currentClassDesc.forClass().getName().equals("java.lang.String")) {
+ this.writeUTF((String)obj);
+ return;
+ }
int stackMark = classDescStack.size();
try {
ObjectStreamClass next;
diff --git a/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java
index 6908cad..79ef01e 100644
--- a/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java
+++ b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@
package com.sun.corba.se.impl.io;
import java.io.IOException;
+import java.io.NotActiveException;
import java.io.OutputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectOutput;
@@ -154,7 +155,9 @@ public abstract class OutputStreamHook extends ObjectOutputStream
public ObjectOutputStream.PutField putFields()
throws IOException {
- putFields = new HookPutFields();
+ if (putFields == null) {
+ putFields = new HookPutFields();
+ }
return putFields;
}
@@ -175,8 +178,11 @@ public abstract class OutputStreamHook extends ObjectOutputStream
throws IOException {
writeObjectState.defaultWriteObject(this);
-
- putFields.write(this);
+ if (putFields != null) {
+ putFields.write(this);
+ } else {
+ throw new NotActiveException("no current PutField object");
+ }
}
abstract org.omg.CORBA_2_3.portable.OutputStream getOrbStream();
diff --git a/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties b/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties
index 9984918..b212f15 100644
--- a/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties
+++ b/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -62,7 +62,7 @@ servertool.getserverid2=\tID do Servidor de applicationName {0} \u00E9 {1}
servertool.list=\n\tlist\n
servertool.list1=lista todos os servidores registrados
-servertool.list2=\n\tId do Servidor\tNome de Classe do Servidor\t\tAplica\u00E7\u00E3o do Servidor\n\t---------\t-----------------\t\t------------------\n
+servertool.list2=\n\tId do Servidor\tNome de Classe do Servidor\t\tAplicativo do Servidor\n\t---------\t-----------------\t\t------------------\n
servertool.listactive=\n\tlistactive
servertool.listactive1=lista os servidores atualmente ativos
servertool.listappnames=\tlistappnames\n
diff --git a/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties b/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties
index 591f0b4..3c4c6b0 100644
--- a/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties
+++ b/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -100,7 +100,7 @@ tnameserv.invalidhostoption=ORBInitialHost \u00E4r inte ett giltigt alternativ f
tnameserv.orbinitialport0=ORBInitialPort 0 \u00E4r inte ett giltigt alternativ f\u00F6r NameService
tnameserv.hs1=Ursprunglig namngivningskontext:\n{0}
tnameserv.hs2=TransientNameServer: st\u00E4ller in port f\u00F6r ursprungliga objektreferenser till: {0}
-tnameserv.hs3=Redo.
+tnameserv.hs3=Klar.
orbd.commfailure=\nKunde inte starta ORBD eftersom ORBinitialport redan anv\u00E4nds
orbd.internalexception=\nKunde inte starta ORBD p\u00E5 grund av internt undantag. \nM\u00F6jliga orsaker: \n1. Angivet ORBInitialPort eller ORBActivationPort anv\u00E4ndas redan \n2. Ingen beh\u00F6righet att skriva till orb.db
diff --git a/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java b/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
index 90d9ea6..dd32dfd 100644
--- a/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
+++ b/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java
@@ -77,7 +77,7 @@ public abstract class InputStream extends org.omg.CORBA.portable.InputStream {
*
* throw SecurityException if SecurityManager is installed and
* enableSubclassImplementation SerializablePermission
- * is not granted or jdk.corba.allowOutputStreamSubclass system
+ * is not granted or jdk.corba.allowInputStreamSubclass system
* property is either not set or is set to 'false'
*/
public InputStream() {
diff --git a/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java b/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java
index 0d41c1e..132361c 100644
--- a/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java
+++ b/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java
@@ -446,6 +446,9 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
if (emitPermissionCheck) {
// produce the following generated code for example
+ //
+ // private transient boolean _instantiated = false;
+ //
// private static Void checkPermission() {
// SecurityManager sm = System.getSecurityManager();
// if (sm != null) {
@@ -460,11 +463,21 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
//
// public _XXXXX_Stub() {
// this(checkPermission());
+ // _instantiated = true;
+ // }
+ //
+ // private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException {
+ // checkPermission();
+ // s.defaultReadObject();
+ // _instantiated = true;
// }
//
// where XXXXX is the name of the remote interface
p.pln();
+ p.plnI("private transient boolean _instantiated = false;");
+ p.pln();
+ p.pO();
p.plnI("private static Void checkPermission() {");
p.plnI("SecurityManager sm = System.getSecurityManager();");
p.pln("if (sm != null) {");
@@ -481,13 +494,23 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
p.pO();
p.pI();
- p.pln("private " + currentClass + "(Void ignore) { }");
+ p.plnI("private " + currentClass + "(Void ignore) { }");
p.pln();
+ p.pO();
- p.plnI("public " + currentClass + "() { ");
+ p.plnI("public " + currentClass + "() {");
p.pln("this(checkPermission());");
+ p.pln("_instantiated = true;");
p.pOln("}");
p.pln();
+ p.plnI("private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException {");
+ p.plnI("checkPermission();");
+ p.pO();
+ p.pln("s.defaultReadObject();");
+ p.pln("_instantiated = true;");
+ p.pOln("}");
+ p.pln();
+ //p.pO();
}
if (!emitPermissionCheck) {
@@ -894,6 +917,7 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
String paramNames[] = method.getArgumentNames();
Type returnType = method.getReturnType();
ValueType[] exceptions = getStubExceptions(method,false);
+ boolean hasIOException = false;
addNamesInUse(method);
addNameInUse("_type_ids");
@@ -921,6 +945,13 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
p.plnI(" {");
// Now create the method body...
+ if (emitPermissionCheck) {
+ p.pln("if ((System.getSecurityManager() != null) && (!_instantiated)) {");
+ p.plnI(" throw new java.io.IOError(new java.io.IOException(\"InvalidObject \"));");
+ p.pOln("}");
+ p.pln();
+ }
+
if (localStubs) {
writeLocalStubMethodBody(p,method,theType);