code: protected final void setDataField(int fieldNumber, Object value) throws CouldNotPerformException {
          try {
              try {
                  dataBuilderWriteLock.lock();
                  Descriptors.FieldDescriptor findFieldByName = dataBuilder.getDescriptorForType().findFieldByNumber(fieldNumber);
                  if (findFieldByName == null) {
                      throw new NotAvailableException("Field[" + fieldNumber + "] does not exist for type " + dataBuilder.getClass().getName());
                  }
                  dataBuilder.setField(findFieldByName, value);
              } finally {
                  dataBuilderWriteLock.unlock();
              }
          } catch (CouldNotPerformException | NullPointerException ex) {
              throw new CouldNotPerformException("Could not set field [" + fieldNumber + "=" + value + "] for " + this, ex);
          }
      }
docs: @param fieldNumber
  @param value
  
  @throws CouldNotPerformException