code: public WriteConcern withWTimeout(final long wTimeout, final TimeUnit timeUnit) {
          notNull("timeUnit", timeUnit);
          long newWTimeOutMS = TimeUnit.MILLISECONDS.convert(wTimeout, timeUnit);
          isTrueArgument("wTimeout >= 0", wTimeout >= 0);
          isTrueArgument("wTimeout <= " + Integer.MAX_VALUE + " ms", newWTimeOutMS <= Integer.MAX_VALUE);
          return new WriteConcern(w, (int) newWTimeOutMS, fsync, journal);
      }
docs: Constructs a new WriteConcern from the current one and the specified wTimeout in the given time unit.
  
  @param wTimeout the wTimeout, which must be &gt;= 0 and &lt;= Integer.MAX_VALUE after conversion to milliseconds
  @param timeUnit the non-null time unit to apply to wTimeout
  @return the WriteConcern with the given wTimeout
  @since 3.2
  @mongodb.driver.manual reference/write-concern/#wtimeout wtimeout option