# HG changeset patch # User lana # Date 1432856933 25200 # Node ID cf83b578af1935db8474d01b8642e4803a534d3a # Parent 9b0015d45aa3b3f293e589bac4a06609c19f02d1# Parent 0ff2c95e424244d7db6fb58f3225a5b72e57cb42 Merge diff -r 9b0015d45aa3 -r cf83b578af19 src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java --- a/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Wed May 27 13:20:52 2015 -0700 +++ b/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Thu May 28 16:48:53 2015 -0700 @@ -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 @@ -1768,43 +1768,59 @@ 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 +2233,6 @@ if (o != null) { for (int i = 0; i < primFields; ++i) { - if (fields[i].getField() == null) - continue; - inputPrimitiveField(o, cl, fields[i]); } } diff -r 9b0015d45aa3 -r cf83b578af19 src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java --- a/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java Wed May 27 13:20:52 2015 -0700 +++ b/src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java Thu May 28 16:48:53 2015 -0700 @@ -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 ObjectOutputStream.PutField putFields() throws IOException { - putFields = new HookPutFields(); + if (putFields == null) { + putFields = new HookPutFields(); + } return putFields; } @@ -175,8 +178,11 @@ 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();