@Override
    void updateDataFields(int why) {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.entry(this, tc, "updateDataFields", why);
        super.updateDataFields(why);

        // If we have an unserialized object
        if (hasRealObject && !hasSerializedRealObject) {

            // If we are encoding for transmission, flattening or creation of a datagraph
            // then serialize the data
            if (why == MfpConstants.UDF_ENCODE || why == MfpConstants.UDF_FLATTEN || why == MfpConstants.UDF_MAKE_INBOUND_SDO) {

                try {
                    serializeRealObject();
                }

                catch (ObjectFailedToSerializeException ofse) {
                    // No FFDC code needed
                    // The underlying IOException has already been FFDC'd
                    if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                        SibTr.debug(this, tc, "Payload object serialization failed so payload will be empty.");

                    // We are unable to serialize the object due to an application error.
                    // To avoid screwing up the system we clear the object reference and set null
                    // into the JMF message then carry on.
                    // We could hang on to the real object, in case a local consumer is available
                    // quickly enough, but we don't as the outcome would then be non-deterministic
                    // and the problem more difficult to diagnose.
                    realObject = null;
                    getPayload().setField(JmsObjectBodyAccess.BODY_DATA_VALUE, null);

                    // We set hasRealObject to false, so we don't waste time looking for a soft
                    // reference to it because it is null.  There is no need to set
                    // hasSerializedRealObject to true, as we no longer think we have a real object.
                    hasRealObject = false;

                    // We set the message's Exception fields so that there is a clue to why the payload is now empty.
                    setExceptionReason(ofse.getExceptionReason());
                    setExceptionInserts(ofse.getExceptionInserts());
                    setExceptionTimestamp(System.currentTimeMillis());
                    setExceptionProblemDestination(null);
                    setExceptionProblemSubscription(null);
                }
            }
        }
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(this, tc, "updateDataFields");
    }
@ Override void updateDataFields ( int why ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "updateDataFields" , why ) ; super . updateDataFields ( why ) ; if ( hasRealObject && ! hasSerializedRealObject ) { if ( why == MfpConstants . UDF_ENCODE || why == MfpConstants . UDF_FLATTEN || why == MfpConstants . UDF_MAKE_INBOUND_SDO ) { try { serializeRealObject ( ) ; } catch ( ObjectFailedToSerializeException ofse ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( this , tc , "Payload object serialization failed so payload will be empty." ) ; realObject = null ; getPayload ( ) . setField ( JmsObjectBodyAccess . BODY_DATA_VALUE , null ) ; hasRealObject = false ; setExceptionReason ( ofse . getExceptionReason ( ) ) ; setExceptionInserts ( ofse . getExceptionInserts ( ) ) ; setExceptionTimestamp ( System . currentTimeMillis ( ) ) ; setExceptionProblemDestination ( null ) ; setExceptionProblemSubscription ( null ) ; } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "updateDataFields" ) ; }
Prepare the message for various encoding and copying type activities.

Flatten, Encode and makeInboundSDOMessage all need the payload contents serialized and in the payload

getCopy, makeInboundJms and makeInboundOther do not need the data serialized

@param why The reason for the update
@see com.ibm.ws.sib.mfp.MfpConstants