# HG changeset patch # User lana # Date 1321323391 28800 # Node ID 21889dc8d0c410f20791f3c04dbb12bd5ad7e42d # Parent 249ec5e65a88dac38bf800b0a367ad375245806b# Parent 5955a2ce536fc8db6750c4e2ea4906c6edb49aa9 Merge diff -r 249ec5e65a88 -r 21889dc8d0c4 corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java --- a/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Thu Nov 10 11:45:56 2011 -0800 +++ b/corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Mon Nov 14 18:16:31 2011 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2243,6 +2243,10 @@ } try { + Class fieldCl = fields[i].getClazz(); + if (objectValue != null && !fieldCl.isInstance(objectValue)) { + throw new IllegalArgumentException(); + } bridge.putObject( o, fields[i].getFieldID(), objectValue ) ; // reflective code: fields[i].getField().set( o, objectValue ) ; } catch (IllegalArgumentException e) { @@ -2553,6 +2557,10 @@ { try { Field fld = c.getDeclaredField( fieldName ) ; + Class fieldCl = fld.getType(); + if(v != null && !fieldCl.isInstance(v)) { + throw new Exception(); + } long key = bridge.objectFieldOffset( fld ) ; bridge.putObject( o, key, v ) ; } catch (Exception e) {