import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.linuxtools.statesystem.core.ITmfStateSystem;
import org.eclipse.linuxtools.statesystem.core.backend.IStateHistoryBackend;
import org.eclipse.linuxtools.statesystem.core.exceptions.AttributeNotFoundException;
* A partial history needs the state input plugin to re-generate state
* between checkpoints.
*/
- private final ITmfStateProvider partialInput;
+ private final @NonNull ITmfStateProvider partialInput;
/**
* Fake state system that is used for partially rebuilding the states (when
* going from a checkpoint to a target query timestamp).
*/
- private final PartialStateSystem partialSS;
+ private final @NonNull PartialStateSystem partialSS;
/** Reference to the "real" state history that is used for storage */
- private final IStateHistoryBackend innerHistory;
+ private final @NonNull IStateHistoryBackend innerHistory;
/** Checkpoints map, <Timestamp, Rank in the trace> */
- private final TreeMap<Long, Long> checkpoints = new TreeMap<>();
+ private final @NonNull TreeMap<Long, Long> checkpoints = new TreeMap<>();
/** Latch tracking if the initial checkpoint registration is done */
- private final CountDownLatch checkpointsReady = new CountDownLatch(1);
+ private final @NonNull CountDownLatch checkpointsReady = new CountDownLatch(1);
private final long granularity;
@Override
public void dispose() {
+ partialInput.dispose();
+ partialSS.dispose();
innerHistory.dispose();
}
@Override
public void handleData(final ITmfEvent event) {
super.handleData(event);
- if (event != null && event.getTrace() == trace) {
+ if (event.getTrace() == trace) {
eventCount++;
/* Check if we need to register a new checkpoint */
@Override
public void handleData(final ITmfEvent event) {
super.handleData(event);
- if (event != null && event.getTrace() == trace) {
+ if (event.getTrace() == trace) {
sci.processEvent(event);
}
}