@@ -436,35 +436,41 @@ public String getQuery() {
436436 }
437437
438438 private synchronized void refresh () {
439- if (this .searchResult != null ) {
440- List <TableViewListItem > selectedLogEntries = new ArrayList <>(tableView .getSelectionModel ().getSelectedItems ());
439+ Runnable refreshRunnable = () -> {
440+ if (this .searchResult != null ) {
441+ List <TableViewListItem > selectedLogEntries = new ArrayList <>(tableView .getSelectionModel ().getSelectedItems ());
441442
442- List <LogEntry > logEntries = searchResult .getLogs ();
443- logEntries .sort ((o1 , o2 ) -> -(o1 .getCreatedDate ().compareTo (o2 .getCreatedDate ())));
443+ List <LogEntry > logEntries = searchResult .getLogs ();
444+ logEntries .sort ((o1 , o2 ) -> -(o1 .getCreatedDate ().compareTo (o2 .getCreatedDate ())));
444445
445- boolean showDetailsBoolean = showDetails .get ();
446- var logs = logEntries .stream ().map (le -> new TableViewListItem (le , showDetailsBoolean )).toList ();
446+ boolean showDetailsBoolean = showDetails .get ();
447+ var logs = logEntries .stream ().map (le -> new TableViewListItem (le , showDetailsBoolean )).toList ();
447448
448- ObservableList <TableViewListItem > logsList = FXCollections .observableArrayList (logs );
449- tableView .setItems (logsList );
449+ ObservableList <TableViewListItem > logsList = FXCollections .observableArrayList (logs );
450+ tableView .setItems (logsList );
450451
451- // This will ensure that selected entries stay selected after the list has been
452- // updated from the search result.
453- for (TableViewListItem selectedItem : selectedLogEntries ) {
454- for (TableViewListItem item : tableView .getItems ()) {
455- if (item .getLogEntry ().getId ().equals (selectedItem .getLogEntry ().getId ())) {
456- Platform .runLater (() -> {
452+ // This will ensure that selected entries stay selected after the list has been
453+ // updated from the search result.
454+ for (TableViewListItem selectedItem : selectedLogEntries ) {
455+ for (TableViewListItem item : tableView .getItems ()) {
456+ if (item .getLogEntry ().getId ().equals (selectedItem .getLogEntry ().getId ())) {
457457 if (goBackAndGoForwardActions .isPresent ()) {
458458 goBackAndGoForwardActions .get ().setIsRecordingHistoryDisabled (true ); // Do not create a "Back" action for the automatic reload.
459459 tableView .getSelectionModel ().select (item );
460460 goBackAndGoForwardActions .get ().setIsRecordingHistoryDisabled (false );
461461 } else {
462462 tableView .getSelectionModel ().select (item );
463463 }
464- });
464+ }
465465 }
466466 }
467467 }
468+ };
469+
470+ if (Platform .isFxApplicationThread ()) {
471+ refreshRunnable .run ();
472+ } else {
473+ Platform .runLater (refreshRunnable );
468474 }
469475 }
470476
0 commit comments