src/java.corba/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * 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
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -1766,47 +1766,63 @@
 
         try {
             switch (field.getTypeCode()) {
                 case 'B':
                     byte byteValue = orbStream.read_octet();
+                    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();
+                    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();
+                    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();
+                    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();
+                    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();
+                    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();
+                    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();
+                    if (field.getField() != null) {
                     bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
                     //reflective code: field.getField().setDouble( o, doubleValue ) ;
+                    }
                     break;
                 default:
                     // XXX I18N, logging needed.
                     throw new InvalidClassException(cl.getName());
             }

@@ -2215,13 +2231,10 @@
 
         int primFields = fields.length - currentClassDesc.objFields;
 
         if (o != null) {
             for (int i = 0; i < primFields; ++i) {
-                if (fields[i].getField() == null)
-                    continue;
-
                 inputPrimitiveField(o, cl, fields[i]);
             }
         }
 
         /* Read and set object fields from the input stream. */