docs: private boolean setPositionByMin() {
  		// min always points to a start of a record
  		long min = getPosition();
  		if (min < 0) {
  			return false;
  		}
  		try {
  			long max = reader.length();
  			int recSize = reader.readLength();
  			if (recSize < 0 || min + recSize + 8 > max) {
  				// Even first record is incomplete
  				return false;
  			}
  			DataInputStream input = readRecord(recSize);
  			if (LogRecordSerializer.RECORD != formatter.getType(input)) {
  				// First record is not a record
  				return false;
  			}
  			RepositoryLogRecordImpl record = formatter.deserializeLogTime(input);
  			// First record already satisfies condition
  			if (verifyMin(record)) {
  				return true;
  			}
  			reader.seek(max);
  			long nextPosition = seekToPrevRecord(formatter);
  			max = nextPosition;
  			
  			do {
  				recSize = reader.readLength();
  				if (recSize < 0 || nextPosition + recSize + 8 > max) {
  					// corrupt record, good records are closer to the start.
  					max = nextPosition;
  				} else {
  					input = readRecord(recSize);
  					if (LogRecordSerializer.RECORD != formatter.getType(input)) {
  						// Got all the way to the header record.
  						max = nextPosition;
  					} else {
  						record =  formatter.deserializeLogTime(input);
  						if (verifyMin(record)) {
  							max = nextPosition;
  						} else {
  							min = nextPosition + recSize + 8;
  						}
  					}
  				}
  				reader.seek((min + max)/2);
  				nextPosition = seekToNextRecord(formatter);
  				// loop until seek to next record returns us back to max.
  			} while (nextPosition < max);
  			return true;
  		} catch (IOException ex) {
  			logger.logp(Level.SEVERE, className, "setPositionBySeq", "Error to set position in {0} by min condition: ", new Object[]{file, ex.getMessage()});
  			logger.logp(Level.SEVERE, className, "setPositionBySeq", ex.getLocalizedMessage(), ex);
  			// Fall through to return false.
  		} finally {
  			try {
  				reader.seek(min);
  			} catch (IOException ex) {
  				// too late to fix, allow reading logic to work around it.
  				// don't use return here it would mask all uncaught exceptions
  			}
  		}
  		
  		return false;
  	}