Fix shutdown race condition

This commit is contained in:
crschnick 2023-12-25 15:40:31 +00:00
parent b212d32d40
commit f980fdc45a

View file

@ -119,6 +119,11 @@ public class StoreViewState {
public void onStoreAdd(DataStoreEntry... entry) { public void onStoreAdd(DataStoreEntry... entry) {
var l = Arrays.stream(entry).map(StoreEntryWrapper::new).peek(storeEntryWrapper -> storeEntryWrapper.update()).toList(); var l = Arrays.stream(entry).map(StoreEntryWrapper::new).peek(storeEntryWrapper -> storeEntryWrapper.update()).toList();
Platform.runLater(() -> { Platform.runLater(() -> {
// Don't update anything if we have already reset
if (INSTANCE == null) {
return;
}
synchronized (this) { synchronized (this) {
allEntries.addAll(l); allEntries.addAll(l);
} }
@ -158,6 +163,11 @@ public class StoreViewState {
.toList(); .toList();
} }
Platform.runLater(() -> { Platform.runLater(() -> {
// Don't update anything if we have already reset
if (INSTANCE == null) {
return;
}
synchronized (this) { synchronized (this) {
allEntries.removeAll(l); allEntries.removeAll(l);
} }
@ -170,6 +180,11 @@ public class StoreViewState {
var l = new StoreCategoryWrapper(category); var l = new StoreCategoryWrapper(category);
l.update(); l.update();
Platform.runLater(() -> { Platform.runLater(() -> {
// Don't update anything if we have already reset
if (INSTANCE == null) {
return;
}
synchronized (this) { synchronized (this) {
categories.add(l); categories.add(l);
} }
@ -191,6 +206,11 @@ public class StoreViewState {
} }
Platform.runLater(() -> { Platform.runLater(() -> {
// Don't update anything if we have already reset
if (INSTANCE == null) {
return;
}
synchronized (this) { synchronized (this) {
categories.remove(found.get()); categories.remove(found.get());
} }