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);
    }
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);
    }
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 ) ; }
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
Constructs a new WriteConcern from the current one and the specified wTimeout in the given time unit .