{
    if (data == null || length <= 0 || offset < 0) return TErrorList.argument_list_error;
    if (length > data.length - offset) length = data.length - offset;
    int maxlen = Math.min(dArrayLength, length);
    if (length <= 0) return TErrorList.argument_list_error;
    if (isLocked) throw new InputDataLockedException(lockedMessage);
    boolean formatsEqual = dFormat == getObjectFormat(data);
    if ((data instanceof NAME[] && hDataObject instanceof NAME[])
        || (data instanceof NAMEINT[] && hDataObject instanceof NAMEINT[]))
    {
      int objlen = ((TCompoundDataObject[]) hDataObject).length;