code: public Object set(int index, Object value) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.entry(this, tc, "set", new Object[]{Integer.valueOf(index), value});
      try {
        // Need to validate the index and call getInternal here (rather than getValue) because
        // we don't want a SchemaViolationException if the field is initially just unset.
        checkIndex(index);
        Object ans = getInternal(index);
        if (ans == nullIndicator) {
          ans = null;
        }
        setValue(index, value);
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "set", value);
        return ans;
      } catch (JMFException ex) {
        FFDCFilter.processException(ex, "com.ibm.ws.sib.mfp.jmf.impl.JSListImpl.set", "245", this);
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) JmfTr.exit(this, tc, "set", null);
        return null;
      }
    }
docs: Implement the List.set() method.  This differs from JMFMessageData.setValue in that
  it is obligated to return the previous value.  In keeping with the java.util.List
  definition, this method does not throw UninitializedAccessException when setting a
  formerly unset value.  But, the cost is that a null return from this method can mean
  either that the field was never set or that it was set to null.