Skip to content

Commit ce10e3f

Browse files
author
Jean-Philippe Bempel
committed
7482: Confusing display of stack traces when selecting event types with no events
Reviewed-by: aptmac
1 parent b65e351 commit ce10e3f

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/JfrEditor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ ResultPage createResultPage() {
195195
return p;
196196
}
197197

198+
public IPageUI getCurrentPageUI() {
199+
return this.currentPageUI;
200+
}
201+
198202
@Override
199203
public IDisplayablePage getDisplayablePage(DataPageDescriptor page) {
200204
return pageMap.computeIfAbsent(page, this::buildPage);

application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/pages/EventBrowserPage.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import org.openjdk.jmc.common.item.IType;
6565
import org.openjdk.jmc.common.item.ItemFilters;
6666
import org.openjdk.jmc.common.item.ItemToolkit;
67+
import org.openjdk.jmc.common.item.PersistableItemFilter;
6768
import org.openjdk.jmc.common.unit.ContentType;
6869
import org.openjdk.jmc.common.unit.IQuantity;
6970
import org.openjdk.jmc.common.unit.IRange;
@@ -77,6 +78,7 @@
7778
import org.openjdk.jmc.flightrecorder.ui.IPageContainer;
7879
import org.openjdk.jmc.flightrecorder.ui.IPageDefinition;
7980
import org.openjdk.jmc.flightrecorder.ui.IPageUI;
81+
import org.openjdk.jmc.flightrecorder.ui.JfrEditor;
8082
import org.openjdk.jmc.flightrecorder.ui.RuleManager;
8183
import org.openjdk.jmc.flightrecorder.ui.StreamModel;
8284
import org.openjdk.jmc.flightrecorder.ui.common.AbstractDataPage;
@@ -147,14 +149,34 @@ public IPageUI display(Composite parent, FormToolkit toolkit, IPageContainer edi
147149
public TreePath[] treeExpansion;
148150
public FlavorSelectorState flavorSelectorState;
149151
private IItemFilter flagsFilter;
152+
private IPageContainer editor;
150153
// public int topIndex;
151154

152155
public EventBrowserPage(IPageDefinition definition, StreamModel items, IPageContainer editor) {
153156
super(definition, items, editor);
157+
this.editor = editor;
158+
}
159+
160+
static IItemFilter getPageFilter(IState state) {
161+
if (state == null) {
162+
return null;
163+
}
164+
IState filterElement = state.getChild("ItemFilter");
165+
return filterElement == null ? null : PersistableItemFilter.readFrom(filterElement);
154166
}
155167

156168
@Override
157169
public IItemFilter getDefaultSelectionFilter() {
170+
if (editor instanceof JfrEditor) {
171+
JfrEditor jfrEditor = (JfrEditor) editor;
172+
IPageUI currentPageUI = jfrEditor.getCurrentPageUI();
173+
if (currentPageUI instanceof EventBrowserUI) {
174+
EventBrowserUI ebUI = (EventBrowserUI) currentPageUI;
175+
if (ebUI != null && ebUI.currentItemFilter != null) {
176+
return ebUI.currentItemFilter;
177+
}
178+
}
179+
}
158180
return ItemFilters.all();
159181
}
160182

@@ -177,6 +199,7 @@ class EventBrowserUI implements IPageUI {
177199
private Boolean showTypesWithoutEvents;
178200
private Boolean showFilterAction;
179201
private Boolean showSearchAction;
202+
private IItemFilter currentItemFilter;
180203

181204
EventBrowserUI(Composite parent, FormToolkit toolkit, IState state, IPageContainer container) {
182205
this.container = container;
@@ -263,7 +286,8 @@ private void refreshTree() {
263286
private IItemCollection getFilteredItems() {
264287
if (!selectedTypes.isEmpty()) {
265288
Set<String> types = selectedTypes.stream().map(t -> t.getIdentifier()).collect(Collectors.toSet());
266-
return selectionItems.apply(ItemFilters.type(types));
289+
currentItemFilter = ItemFilters.type(types);
290+
return selectionItems.apply(currentItemFilter);
267291
}
268292
return selectionItems;
269293
}

0 commit comments

Comments
 (0)