private Date extrapolateStartTimeFromScanRanges(List<ScanRangeStatus> pendingScanRanges,List<ScanRangeStatus> activeScanRanges,List<ScanRangeStatus> completeScanRanges){
  Date startTime=null;
  for (  ScanRangeStatus status : Iterables.concat(pendingScanRanges,activeScanRanges,completeScanRanges)) {
    Date queuedTime=status.getScanQueuedTime();
    if (queuedTime != null && (startTime == null || queuedTime.before(startTime))) {
      startTime=queuedTime;
    }
  }
  if (startTime == null) {
    startTime=new Date(0);
  }
  return startTime;
}

private Date extrapolateStartTimeFromScanRanges ( List < ScanRangeStatus > pendingScanRanges , List < ScanRangeStatus > activeScanRanges , List < ScanRangeStatus > completeScanRanges ) { Date startTime = null ; for ( ScanRangeStatus status : Iterables . concat ( pendingScanRanges , activeScanRanges , completeScanRanges ) ) { Date queuedTime = status . getScanQueuedTime ( ) ; if ( queuedTime != null && ( startTime == null || queuedTime . before ( startTime ) ) ) { startTime = queuedTime ; } } if ( startTime == null ) { startTime = new Date ( 0 ) ; } return startTime ; }
for grandfathered in scanstatuses that did not include a starttime attribute extrapolate it as the earliest time a scan range was queued .
