diff --git a/.hgtags b/.hgtags index 97ddc161139e766e98e4ebc1136acfeabfbb7acc..e4926e14102977ce08c5462968faaf0da97cf402 100644 --- a/.hgtags +++ b/.hgtags @@ -352,6 +352,7 @@ b47677f7c1d122a2d05e03dec70de86feaedcd4c jdk8u31-b08 f89b454638d89ee5f44422b7a5b8e5651260e68f jdk8u31-b13 705d3a4298f44f0a14925bfee5017f5824b6c0ca jdk8u31-b31 072d325a052a5894019b74118803bf5fb9e30692 jdk8u31-b32 +bfd820cde577ba687222196e6c5159d9763df887 jdk8u31-b33 7d1e0f0b63f1d66c77924d8b2a1accdf8f7480db jdk8u40-b00 c5d9822a3c18cd9e274dfe99e91c33e02bd8f8f4 jdk8u40-b01 504b4455570e14b7fc0a837a09c6401c603516d9 jdk8u40-b02 @@ -380,6 +381,8 @@ 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 @@ -395,6 +398,26 @@ b9ef43c59b425961526b04e92d7fa66014ec25eb jdk8u45-b10 c9bf2543c0c045ef31f0296bc355381e1a4bd4ac jdk8u45-b12 326f02235e7a9a6da78428410320dcc980827d40 jdk8u45-b13 50fb9bed64c9366b7bf68bddcdc553cd7295d905 jdk8u45-b14 +4afc048fe6ff7fc3fdbdadd8027549805c426d0d jdk8u45-b15 +e67045c893eaf5e3336c4fd849786fa15b81b601 jdk8u45-b31 +f2aeb52cb7cef1f984661a583baac67402f633a5 jdk8u45-b32 +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 8bbc2bb414b7e9331c2014c230553d72c9d161c5 jdk8u60-b00 15ae8298b34beb30f2bd7baa7ff895af2bec13f6 jdk8u60-b01 a98524c04cbd24bbc3029b21c033abf9108e92b4 jdk8u60-b02 @@ -418,4 +441,5 @@ eb0caffe34c6bea2ff40966757142b3dcd3a2a4c jdk8u60-b19 4f3a29adbf4cfa2127e1108d82aaaa0d29f3c583 jdk8u60-b20 d68de92de3bad991546b11d77de6e9c17edf7ec2 jdk8u60-b21 3a04901d83880634ecd70c8be992189228ccd746 jdk8u60-b22 +0828bb6521738ad5a7fe11f0aa3495465f002848 jdk8u60-b23 3a04901d83880634ecd70c8be992189228ccd746 jdk8u66-b00 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 8d4e68145a6d78eb6474a6edcdfb70c8ea50c711..0c3ff08a7adc1be2bbf6087dd4c5ddc0a546b113 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 @@ -2430,8 +2430,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 { @@ -2566,8 +2566,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(); @@ -2577,9 +2576,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() ) ; + } } } @@ -2587,12 +2592,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) ) ; + } } } @@ -2600,12 +2615,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) ) ; + } } } @@ -2613,12 +2638,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) ) ; + } } } @@ -2626,12 +2661,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) ) ; + } } } @@ -2639,12 +2684,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) ) ; + } } } @@ -2652,12 +2707,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) ) ; + } } } @@ -2665,12 +2730,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) ) ; + } } } @@ -2678,12 +2753,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) ) ; + } } }