Source:
<code>private synchronized void createTable() { long ts = fCurrentTimestamp; if (fTrace == null) { return; } fTree.getDisplay().asyncExec(new Runnable() { @Override public void run() { fTree.setItemCount(0); } }); for (final ITmfTrace currentTrace : TmfTraceManager.getTraceSet(fTrace)) { final Map<String, ITmfStateSystem> sss = currentTrace.getStateSystems(); final Map<String, List<ITmfStateInterval>> fullStates = new LinkedHashMap<String, List<ITmfStateInterval>>(); for (Map.Entry<String, ITmfStateSystem> entry : sss.entrySet()) { String ssName = entry.getKey(); ITmfStateSystem ss = entry.getValue(); ss.waitUntilBuilt(); <START> ts = (ts == -1 ? ss.getStartTime() : ts); <END> try { fullStates.put(ssName, ss.queryFullState(ts)); } catch (TimeRangeException e) { throw new RuntimeException(); } catch (StateSystemDisposedException e) { return; } } fTree.getDisplay().asyncExec(new Runnable() { @Override public void run() { TreeItem traceRoot = new TreeItem(fTree, SWT.NONE); traceRoot.setText(ATTRIBUTE_NAME_COL, currentTrace.getName()); for (Map.Entry<String, ITmfStateSystem> entry : sss.entrySet()) { String ssName = entry.getKey(); ITmfStateSystem ss = entry.getValue(); List<ITmfStateInterval> fullState = fullStates.get(ssName); TreeItem item = new TreeItem(traceRoot, SWT.NONE); item.setText(ATTRIBUTE_NAME_COL, ssName); addChildren(ss, fullState, -1, item); } for (TreeItem item : fTree.getItems()) { item.setExpanded(true); } packColumns(); if (filterStatus) { filterChildren(traceRoot); } } }); } }</code><technical_language>if 'ts' is bigger startime, trace end itself? I a trace throws TimeRangeException here, I send you. If strictly ss.getStartTime() here, TimeRangeException handled for real below</technical_language>

Target:
private synchronized void createTable() { long ts = fCurrentTimestamp; if (fTrace == null) { return; } fTree.getDisplay().asyncExec(new Runnable() { @Override public void run() { fTree.setItemCount(0); } }); for (final ITmfTrace currentTrace : TmfTraceManager.getTraceSet(fTrace)) { final Map<String, ITmfStateSystem> sss = currentTrace.getStateSystems(); final Map<String, List<ITmfStateInterval>> fullStates = new LinkedHashMap<String, List<ITmfStateInterval>>(); for (Map.Entry<String, ITmfStateSystem> entry : sss.entrySet()) { String ssName = entry.getKey(); ITmfStateSystem ss = entry.getValue(); ss.waitUntilBuilt(); if (ts == -1 || ts < ss.getStartTime() || ts > ss.getCurrentEndTime()) { ts = ss.getStartTime(); } try { fullStates.put(ssName, ss.queryFullState(ts)); } catch (TimeRangeException e) { throw new RuntimeException(); } catch (StateSystemDisposedException e) { return; } } fTree.getDisplay().asyncExec(new Runnable() { @Override public void run() { TreeItem traceRoot = new TreeItem(fTree, SWT.NONE); traceRoot.setText(ATTRIBUTE_NAME_COL, currentTrace.getName()); for (Map.Entry<String, ITmfStateSystem> entry : sss.entrySet()) { String ssName = entry.getKey(); ITmfStateSystem ss = entry.getValue(); List<ITmfStateInterval> fullState = fullStates.get(ssName); TreeItem item = new TreeItem(traceRoot, SWT.NONE); item.setText(ATTRIBUTE_NAME_COL, ssName); addChildren(ss, fullState, -1, item); } for (TreeItem item : fTree.getItems()) { item.setExpanded(true); } packColumns(); if (filterStatus) { filterChildren(traceRoot); } } }); } }