Source:
protected void zoomEntries(@NonNull Iterable<@NonNull TimeGraphEntry> entries, long zoomStartTime, long zoomEndTime, long resolution, @NonNull IProgressMonitor monitor) { if (resolution < 0) { return; } long zoomStart = Long.min(zoomStartTime, zoomEndTime); long zoomEnd = Long.max(zoomStartTime, zoomEndTime); List<@NonNull Long> times = StateSystemUtils.getTimes(zoomStart, zoomEnd, resolution); Sampling sampling = new Sampling(zoomStart, zoomEnd, resolution); Table<ThreadStatusDataProvider, Long, ControlFlowEntry> controlFlowEntries = filterGroup(entries, zoomStartTime, zoomEndTime); for (Entry<ThreadStatusDataProvider, Map<Long, ControlFlowEntry>> entry : controlFlowEntries.rowMap().entrySet()) { Map<Long, ControlFlowEntry> map = entry.getValue(); SelectionTimeQueryFilter filter = new SelectionTimeQueryFilter(times, map.keySet()); TmfModelResponse<List<ITimeGraphRowModel>> fetchRowModel = entry.getKey().fetchRowModel(filter, monitor); List<ITimeGraphRowModel> model = fetchRowModel.getModel(); if (model != null) { for (ITimeGraphRowModel rowModel : model) { if (monitor.isCanceled()) { return; } ControlFlowEntry controlFlowEntry = map.get(rowModel.getEntryID()); if (controlFlowEntry != null) { List<ITimeEvent> events = createTimeEvents(controlFlowEntry, rowModel.getStates()); if (Thread.currentThread() instanceof ZoomThread) { applyResults(() -> { controlFlowEntry.setZoomedEventList(events); if (fetchRowModel.getStatus() == ITmfResponse.Status.COMPLETED) { controlFlowEntry.setSampling(sampling); } }); } else { controlFlowEntry.setEventList(events); } } } } } }

Target:
protected void zoomEntries(@NonNull Iterable<@NonNull TimeGraphEntry> entries, long zoomStartTime, long zoomEndTime, long resolution, @NonNull IProgressMonitor monitor) { if (resolution < 0) { return; } long zoomStart = Long.min(zoomStartTime, zoomEndTime); long zoomEnd = Long.max(zoomStartTime, zoomEndTime); List<@NonNull Long> times = StateSystemUtils.getTimes(zoomStart, zoomEnd, resolution); Sampling sampling = new Sampling(zoomStart, zoomEnd, resolution); Table<ThreadStatusDataProvider, Long, ControlFlowEntry> controlFlowEntries = filterGroup(entries, zoomStartTime, zoomEndTime); IProgressMonitor subMonitor = SubMonitor.convert(monitor, "ControlFlowView#zoomEntries", controlFlowEntries.rowKeySet().size()); for (Entry<ThreadStatusDataProvider, Map<Long, ControlFlowEntry>> entry : controlFlowEntries.rowMap().entrySet()) { Map<Long, ControlFlowEntry> map = entry.getValue(); SelectionTimeQueryFilter filter = new SelectionTimeQueryFilter(times, map.keySet()); TmfModelResponse<List<ITimeGraphRowModel>> fetchRowModel = entry.getKey().fetchRowModel(filter, monitor); List<ITimeGraphRowModel> model = fetchRowModel.getModel(); if (model != null) { for (ITimeGraphRowModel rowModel : model) { if (subMonitor.isCanceled()) { return; } ControlFlowEntry controlFlowEntry = map.get(rowModel.getEntryID()); if (controlFlowEntry != null) { List<ITimeEvent> events = createTimeEvents(controlFlowEntry, rowModel.getStates()); if (Thread.currentThread() instanceof ZoomThread) { applyResults(() -> { controlFlowEntry.setZoomedEventList(events); if (fetchRowModel.getStatus() == ITmfResponse.Status.COMPLETED) { controlFlowEntry.setSampling(sampling); } }); } else { controlFlowEntry.setEventList(events); } } } } subMonitor.worked(1); } }