Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed sorting in views with TableView instances with no implemented sort #3319

Closed
wants to merge 4 commits into from
Closed

Conversation

niyid
Copy link
Contributor

@niyid niyid commented Sep 24, 2019

Issue #3231

Copy link
Contributor

@freimair freimair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@niyid thanks for your contribution. However, when I try to run your stuff, I get exception windows popping up for every view that has a table in it. Would you mind having a look again?

Nov-01 08:54:48.977 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Nov-01 08:54:48.977 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= Duplicate TableColumns detected in TableView columns list with titles 'null',  
Nov-01 08:54:48.978 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.IllegalStateException 
Nov-01 08:54:48.979 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.IllegalStateException: Duplicate TableColumns detected in TableView columns list with titles 'null', 
	at javafx.scene.control.TableView$5.onChanged(TableView.java:636)
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.getOfferTable(OfferBookChartView.java:614)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.initialize(OfferBookChartView.java:159)
	at bisq.desktop.common.view.InitializableView.initialize(InitializableView.java:41)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
	at bisq.desktop.common.fxml.FxmlViewLoader.loadFromFxml(FxmlViewLoader.java:101)
	at bisq.desktop.common.fxml.FxmlViewLoader.load(FxmlViewLoader.java:90)
	at bisq.desktop.common.view.CachingViewLoader.load(CachingViewLoader.java:41)
	at bisq.desktop.main.market.MarketView.loadView(MarketView.java:159)
	at bisq.desktop.main.market.MarketView.lambda$initialize$0(MarketView.java:100)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:104)
	at bisq.desktop.main.market.MarketView.activate(MarketView.java:135)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:43)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
	at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
	at javafx.scene.Node$ReadOnlyObjectWrapperManualFire.fireSuperValueChangedEvent(Node.java:1054)
	at javafx.scene.Node.invalidatedScenes(Node.java:1114)
	at javafx.scene.Node.setScenes(Node.java:1152)
	at javafx.scene.Parent$2.onChanged(Parent.java:369)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:90)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:116)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at bisq.desktop.main.MainView.lambda$initialize$7(MainView.java:376)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateToPreviousVisitedView(Navigation.java:155)
	at bisq.desktop.main.MainView.lambda$initialize$9(MainView.java:393)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.desktop.main.MainViewModel.onSetupComplete(MainViewModel.java:252)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
	at bisq.core.app.BisqSetup.step5(BisqSetup.java:331)
	at bisq.core.app.BisqSetup.lambda$startP2pNetworkAndWallet$9(BisqSetup.java:547)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.core.app.P2PNetworkSetup$2.onDataReceived(P2PNetworkSetup.java:163)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.P2PService.onDataReceived(P2PService.java:359)
	at bisq.network.p2p.peers.getdata.RequestDataManager$2.onComplete(RequestDataManager.java:339)
	at bisq.network.p2p.peers.getdata.RequestDataHandler.onMessage(RequestDataHandler.java:282)
	at bisq.network.p2p.network.NetworkNode.lambda$onMessage$4(NetworkNode.java:357)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.network.NetworkNode.onMessage(NetworkNode.java:357)
	at bisq.network.p2p.network.Connection.lambda$onMessage$5(Connection.java:429)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.network.Connection.lambda$onMessage$6(Connection.java:429)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
 
java.lang.IllegalStateException: Duplicate TableColumns detected in TableView columns list with titles 'null', 
	at javafx.scene.control.TableView$5.onChanged(TableView.java:636)
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.getOfferTable(OfferBookChartView.java:614)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.initialize(OfferBookChartView.java:159)
	at bisq.desktop.common.view.InitializableView.initialize(InitializableView.java:41)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
	at bisq.desktop.common.fxml.FxmlViewLoader.loadFromFxml(FxmlViewLoader.java:101)
	at bisq.desktop.common.fxml.FxmlViewLoader.load(FxmlViewLoader.java:90)
	at bisq.desktop.common.view.CachingViewLoader.load(CachingViewLoader.java:41)
	at bisq.desktop.main.market.MarketView.loadView(MarketView.java:159)
	at bisq.desktop.main.market.MarketView.lambda$initialize$0(MarketView.java:100)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:104)
	at bisq.desktop.main.market.MarketView.activate(MarketView.java:135)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:43)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
	at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
	at javafx.scene.Node$ReadOnlyObjectWrapperManualFire.fireSuperValueChangedEvent(Node.java:1054)
	at javafx.scene.Node.invalidatedScenes(Node.java:1114)
	at javafx.scene.Node.setScenes(Node.java:1152)
	at javafx.scene.Parent$2.onChanged(Parent.java:369)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:90)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:116)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at bisq.desktop.main.MainView.lambda$initialize$7(MainView.java:376)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateToPreviousVisitedView(Navigation.java:155)
	at bisq.desktop.main.MainView.lambda$initialize$9(MainView.java:393)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.desktop.main.MainViewModel.onSetupComplete(MainViewModel.java:252)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
	at bisq.core.app.BisqSetup.step5(BisqSetup.java:331)
	at bisq.core.app.BisqSetup.lambda$startP2pNetworkAndWallet$9(BisqSetup.java:547)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.core.app.P2PNetworkSetup$2.onDataReceived(P2PNetworkSetup.java:163)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.P2PService.onDataReceived(P2PService.java:359)
	at bisq.network.p2p.peers.getdata.RequestDataManager$2.onComplete(RequestDataManager.java:339)
	at bisq.network.p2p.peers.getdata.RequestDataHandler.onMessage(RequestDataHandler.java:282)
	at bisq.network.p2p.network.NetworkNode.lambda$onMessage$4(NetworkNode.java:357)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.network.NetworkNode.onMessage(NetworkNode.java:357)
	at bisq.network.p2p.network.Connection.lambda$onMessage$5(Connection.java:429)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.network.Connection.lambda$onMessage$6(Connection.java:429)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
Nov-01 08:54:48.981 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Nov-01 08:54:48.981 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= Duplicate TableColumns detected in TableView columns list with titles 'null',  
Nov-01 08:54:48.981 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.IllegalStateException 
Nov-01 08:54:48.982 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.IllegalStateException: Duplicate TableColumns detected in TableView columns list with titles 'null', 
	at javafx.scene.control.TableView$5.onChanged(TableView.java:636)
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.getOfferTable(OfferBookChartView.java:614)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.initialize(OfferBookChartView.java:160)
	at bisq.desktop.common.view.InitializableView.initialize(InitializableView.java:41)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
	at bisq.desktop.common.fxml.FxmlViewLoader.loadFromFxml(FxmlViewLoader.java:101)
	at bisq.desktop.common.fxml.FxmlViewLoader.load(FxmlViewLoader.java:90)
	at bisq.desktop.common.view.CachingViewLoader.load(CachingViewLoader.java:41)
	at bisq.desktop.main.market.MarketView.loadView(MarketView.java:159)
	at bisq.desktop.main.market.MarketView.lambda$initialize$0(MarketView.java:100)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:104)
	at bisq.desktop.main.market.MarketView.activate(MarketView.java:135)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:43)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
	at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
	at javafx.scene.Node$ReadOnlyObjectWrapperManualFire.fireSuperValueChangedEvent(Node.java:1054)
	at javafx.scene.Node.invalidatedScenes(Node.java:1114)
	at javafx.scene.Node.setScenes(Node.java:1152)
	at javafx.scene.Parent$2.onChanged(Parent.java:369)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:90)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:116)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at bisq.desktop.main.MainView.lambda$initialize$7(MainView.java:376)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateToPreviousVisitedView(Navigation.java:155)
	at bisq.desktop.main.MainView.lambda$initialize$9(MainView.java:393)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.desktop.main.MainViewModel.onSetupComplete(MainViewModel.java:252)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
java.lang.IllegalStateException: Duplicate TableColumns detected in TableView columns list with titles 'null', 
	at bisq.core.app.BisqSetup.step5(BisqSetup.java:331)
	at bisq.core.app.BisqSetup.lambda$startP2pNetworkAndWallet$9(BisqSetup.java:547)
	at javafx.scene.control.TableView$5.onChanged(TableView.java:636)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.core.app.P2PNetworkSetup$2.onDataReceived(P2PNetworkSetup.java:163)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.P2PService.onDataReceived(P2PService.java:359)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at bisq.network.p2p.peers.getdata.RequestDataManager$2.onComplete(RequestDataManager.java:339)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at bisq.network.p2p.peers.getdata.RequestDataHandler.onMessage(RequestDataHandler.java:282)
	at bisq.network.p2p.network.NetworkNode.lambda$onMessage$4(NetworkNode.java:357)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.network.NetworkNode.onMessage(NetworkNode.java:357)
	at bisq.network.p2p.network.Connection.lambda$onMessage$5(Connection.java:429)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.network.Connection.lambda$onMessage$6(Connection.java:429)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at java.base/java.lang.Thread.run(Thread.java:844)
 
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.getOfferTable(OfferBookChartView.java:614)
	at bisq.desktop.main.market.offerbook.OfferBookChartView.initialize(OfferBookChartView.java:160)
	at bisq.desktop.common.view.InitializableView.initialize(InitializableView.java:41)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
	at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
	at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
	at bisq.desktop.common.fxml.FxmlViewLoader.loadFromFxml(FxmlViewLoader.java:101)
	at bisq.desktop.common.fxml.FxmlViewLoader.load(FxmlViewLoader.java:90)
	at bisq.desktop.common.view.CachingViewLoader.load(CachingViewLoader.java:41)
	at bisq.desktop.main.market.MarketView.loadView(MarketView.java:159)
	at bisq.desktop.main.market.MarketView.lambda$initialize$0(MarketView.java:100)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:104)
	at bisq.desktop.main.market.MarketView.activate(MarketView.java:135)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:43)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.ReadOnlyObjectPropertyBase.fireValueChangedEvent(ReadOnlyObjectPropertyBase.java:74)
	at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:102)
	at javafx.scene.Node$ReadOnlyObjectWrapperManualFire.fireSuperValueChangedEvent(Node.java:1054)
	at javafx.scene.Node.invalidatedScenes(Node.java:1114)
	at javafx.scene.Node.setScenes(Node.java:1152)
	at javafx.scene.Parent$2.onChanged(Parent.java:369)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.setAll(ModifiableObservableListBase.java:90)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:116)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at bisq.desktop.main.MainView.lambda$initialize$7(MainView.java:376)
	at bisq.desktop.Navigation.lambda$navigateTo$1(Navigation.java:140)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.desktop.Navigation.navigateTo(Navigation.java:140)
	at bisq.desktop.Navigation.navigateToPreviousVisitedView(Navigation.java:155)
	at bisq.desktop.main.MainView.lambda$initialize$9(MainView.java:393)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.desktop.main.MainViewModel.onSetupComplete(MainViewModel.java:252)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1378)
	at bisq.core.app.BisqSetup.step5(BisqSetup.java:331)
	at bisq.core.app.BisqSetup.lambda$startP2pNetworkAndWallet$9(BisqSetup.java:547)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at bisq.core.app.P2PNetworkSetup$2.onDataReceived(P2PNetworkSetup.java:163)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.P2PService.onDataReceived(P2PService.java:359)
	at bisq.network.p2p.peers.getdata.RequestDataManager$2.onComplete(RequestDataManager.java:339)
	at bisq.network.p2p.peers.getdata.RequestDataHandler.onMessage(RequestDataHandler.java:282)
	at bisq.network.p2p.network.NetworkNode.lambda$onMessage$4(NetworkNode.java:357)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
	at bisq.network.p2p.network.NetworkNode.onMessage(NetworkNode.java:357)
	at bisq.network.p2p.network.Connection.lambda$onMessage$5(Connection.java:429)
	at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:804)
	at java.base/java.util.concurrent.CopyOnWriteArraySet.forEach(CopyOnWriteArraySet.java:425)
	at bisq.network.p2p.network.Connection.lambda$onMessage$6(Connection.java:429)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
Nov-01 08:54:49.157 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Nov-01 08:54:49.157 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= null 
Nov-01 08:54:49.157 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.UnsupportedOperationException 
Nov-01 08:54:49.158 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.UnsupportedOperationException
	at java.base/java.util.Collections$UnmodifiableList.add(Collections.java:1311)
	at javafx.collections.ListChangeBuilder.nextRemove(ListChangeBuilder.java:208)
	at javafx.collections.ObservableListBase.nextRemove(ObservableListBase.java:150)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:181)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:171)
	at javafx.scene.control.ContextMenu$2.onChanged(ContextMenu.java:202)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at javafx.scene.control.skin.TableHeaderRow.createMenuItem(TableHeaderRow.java:568)
	at javafx.scene.control.skin.TableHeaderRow.rebuildColumnMenu(TableHeaderRow.java:520)
	at javafx.scene.control.skin.TableHeaderRow.updateTableColumnListeners(TableHeaderRow.java:493)
	at javafx.scene.control.skin.TableHeaderRow.<init>(TableHeaderRow.java:207)
	at javafx.scene.control.skin.TableViewSkinBase.createTableHeaderRow(TableViewSkinBase.java:500)
	at javafx.scene.control.skin.TableViewSkinBase.<init>(TableViewSkinBase.java:284)
	at javafx.scene.control.skin.TableViewSkin.<init>(TableViewSkin.java:91)
	at javafx.scene.control.TableView.createDefaultSkin(TableView.java:1537)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
java.lang.UnsupportedOperationException
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at java.base/java.util.Collections$UnmodifiableList.add(Collections.java:1311)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at javafx.collections.ListChangeBuilder.nextRemove(ListChangeBuilder.java:208)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.collections.ObservableListBase.nextRemove(ObservableListBase.java:150)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:181)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:171)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.ContextMenu$2.onChanged(ContextMenu.java:202)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.access$3400(Scene.java:172)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2477)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
 
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at javafx.scene.control.skin.TableHeaderRow.createMenuItem(TableHeaderRow.java:568)
	at javafx.scene.control.skin.TableHeaderRow.rebuildColumnMenu(TableHeaderRow.java:520)
	at javafx.scene.control.skin.TableHeaderRow.updateTableColumnListeners(TableHeaderRow.java:493)
	at javafx.scene.control.skin.TableHeaderRow.<init>(TableHeaderRow.java:207)
	at javafx.scene.control.skin.TableViewSkinBase.createTableHeaderRow(TableViewSkinBase.java:500)
	at javafx.scene.control.skin.TableViewSkinBase.<init>(TableViewSkinBase.java:284)
	at javafx.scene.control.skin.TableViewSkin.<init>(TableViewSkin.java:91)
	at javafx.scene.control.TableView.createDefaultSkin(TableView.java:1537)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.access$3400(Scene.java:172)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2477)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
Nov-01 08:54:49.181 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Nov-01 08:54:49.181 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= null 
Nov-01 08:54:49.181 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.UnsupportedOperationException 
Nov-01 08:54:49.181 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.UnsupportedOperationException
	at java.base/java.util.Collections$UnmodifiableList.add(Collections.java:1311)
	at javafx.collections.ListChangeBuilder.nextRemove(ListChangeBuilder.java:208)
	at javafx.collections.ObservableListBase.nextRemove(ObservableListBase.java:150)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:181)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:171)
	at javafx.scene.control.ContextMenu$2.onChanged(ContextMenu.java:202)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at javafx.scene.control.skin.TableHeaderRow.createMenuItem(TableHeaderRow.java:568)
	at javafx.scene.control.skin.TableHeaderRow.rebuildColumnMenu(TableHeaderRow.java:520)
	at javafx.scene.control.skin.TableHeaderRow.updateTableColumnListeners(TableHeaderRow.java:493)
	at javafx.scene.control.skin.TableHeaderRow.<init>(TableHeaderRow.java:207)
	at javafx.scene.control.skin.TableViewSkinBase.createTableHeaderRow(TableViewSkinBase.java:500)
	at javafx.scene.control.skin.TableViewSkinBase.<init>(TableViewSkinBase.java:284)
	at javafx.scene.control.skin.TableViewSkin.<init>(TableViewSkin.java:91)
	at javafx.scene.control.TableView.createDefaultSkin(TableView.java:1537)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.access$3400(Scene.java:172)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2477)
java.lang.UnsupportedOperationException
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.Collections$UnmodifiableList.add(Collections.java:1311)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at javafx.collections.ListChangeBuilder.nextRemove(ListChangeBuilder.java:208)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at javafx.collections.ObservableListBase.nextRemove(ObservableListBase.java:150)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:181)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:171)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at javafx.scene.control.ContextMenu$2.onChanged(ContextMenu.java:202)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:45)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
	at com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164)
 
	at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
	at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
	at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
	at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
	at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
	at javafx.collections.ModifiableObservableListBase.add(ModifiableObservableListBase.java:155)
	at java.base/java.util.AbstractList.add(AbstractList.java:111)
	at javafx.scene.control.skin.TableHeaderRow.createMenuItem(TableHeaderRow.java:568)
	at javafx.scene.control.skin.TableHeaderRow.rebuildColumnMenu(TableHeaderRow.java:520)
	at javafx.scene.control.skin.TableHeaderRow.updateTableColumnListeners(TableHeaderRow.java:493)
	at javafx.scene.control.skin.TableHeaderRow.<init>(TableHeaderRow.java:207)
	at javafx.scene.control.skin.TableViewSkinBase.createTableHeaderRow(TableViewSkinBase.java:500)
	at javafx.scene.control.skin.TableViewSkinBase.<init>(TableViewSkinBase.java:284)
	at javafx.scene.control.skin.TableViewSkin.<init>(TableViewSkin.java:91)
	at javafx.scene.control.TableView.createDefaultSkin(TableView.java:1537)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1397)
	at javafx.scene.Parent.access$400(Parent.java:79)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Node.processCSS(Node.java:9522)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.access$3400(Scene.java:172)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2477)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
Nov-01 08:54:49.381 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
Nov-01 08:54:49.381 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= Children: duplicate children added: parent = TableRow@4e07b579[styleClass=cell indexed-cell table-row-cell]'null' 
Nov-01 08:54:49.381 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.IllegalArgumentException 
Nov-01 08:54:49.382 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.IllegalArgumentException: Children: duplicate children added: parent = TableRow@4e07b579[styleClass=cell indexed-cell table-row-cell]'null'
	at javafx.scene.Parent$3.onProposedChange(Parent.java:558)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
	at javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:557)
	at javafx.scene.control.skin.TableRowSkinBase.<init>(TableRowSkinBase.java:159)
	at javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:89)
	at javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.applyCss(Node.java:9616)
	at javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1715)
	at javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1692)
	at javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1801)
	at javafx.scene.control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2639)
	at javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1245)
	at javafx.scene.Parent.layout(Parent.java:1204)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Scene.doLayoutPass(Scene.java:576)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)
 
java.lang.IllegalArgumentException: Children: duplicate children added: parent = TableRow@4e07b579[styleClass=cell indexed-cell table-row-cell]'null'
	at javafx.scene.Parent$3.onProposedChange(Parent.java:558)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
	at javafx.scene.control.skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:557)
	at javafx.scene.control.skin.TableRowSkinBase.<init>(TableRowSkinBase.java:159)
	at javafx.scene.control.skin.TableRowSkin.<init>(TableRowSkin.java:89)
	at javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:213)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control.access$000(Control.java:83)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9529)
	at javafx.scene.Node.applyCss(Node.java:9616)
	at javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1715)
	at javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1692)
	at javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1801)
	at javafx.scene.control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2639)
	at javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1245)
	at javafx.scene.Parent.layout(Parent.java:1204)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Parent.layout(Parent.java:1211)
	at javafx.scene.Scene.doLayoutPass(Scene.java:576)
	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2482)
	at com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:412)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:411)
	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:438)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:519)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:499)
	at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:492)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:320)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run$$$capture(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:844)

Screenshot from 2019-11-01 09-00-30
Screenshot from 2019-11-01 09-00-50
Screenshot from 2019-11-01 09-00-59

@niyid
Copy link
Contributor Author

niyid commented Nov 1, 2019 via email

@freimair
Copy link
Contributor

freimair commented Nov 1, 2019

btw. how is this PR related to #3316?

@niyid niyid requested a review from freimair November 1, 2019 14:01
@niyid
Copy link
Contributor Author

niyid commented Nov 1, 2019

btw. how is this PR related to #3316?

Implementing sort order for table views with none. This applied to about 4 such table views.

@niyid
Copy link
Contributor Author

niyid commented Nov 7, 2019

@freimair
This issue is resolved.

@freimair freimair mentioned this pull request Nov 9, 2019
@freimair
Copy link
Contributor

freimair commented Nov 9, 2019

no it is not. just checked again. please test your contributions better. or else we are forced to ignore your contributions (as they suck up way too much of our resources).

have you pushed your changes?

@niyid
Copy link
Contributor Author

niyid commented Nov 9, 2019

no it is not. just checked again. please test your contributions better. or else we are forced to ignore your contributions (as they suck up way too much of our resources).

have you pushed your changes?

Apologies about that. I will check and fix. There is probably an issue with the push as I am able to view here:

Screenshot from 2019-11-09 17-52-01

@niyid
Copy link
Contributor Author

niyid commented Nov 9, 2019

@freimair

This is the last commit 8 days ago that fixed the issue (same automatically linked above):

0cd9b50

Screenshot from 2019-11-09 18-05-06

Now, I just squashed all commits.

Copy link
Contributor

@ripcurlx ripcurlx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NACK - Did you test this changes once? Obviously not, as nothing worked as expected. Having PRs like this as a reviewer makes it quite frustrating as it consumes more time reviewing it than implementing it myself.

Comment on lines +612 to +615
volumeColumn.setComparator(Comparator.comparing(item -> item.offer.getPrice()));
volumeColumn.setSortType(TableColumn.SortType.ASCENDING);
tableView.getSortOrder().add(volumeColumn);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The list in the offer book chart view is just a teaser and the the volume column is set to sortable false which will make this code not working. So just revert the changes at this place.

Comment on lines +160 to +162
column.setComparator(Comparator.comparing(RolesListItem::getLockupDate).reversed());
column.setSortType(TableColumn.SortType.ASCENDING);
tableView.getSortOrder().add(column);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you sorting this based on lockup date if the name is displayed without any date information displayed. This just makes it confusing for the user.

Comment on lines +315 to +317
column.setComparator(Comparator.comparing(MyReputationListItem::getAmount));
column.setSortType(TableColumn.SortType.ASCENDING);
tableView.getSortOrder().add(column);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again pointless defining a string to be sorted for as it is the default behavior.

tableView.getColumns().add(column);
column.setComparator(Comparator.comparing(BondListItem::getAmount));
column.setSortType(TableColumn.SortType.ASCENDING);
tableView.getSortOrder().add(column);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't change the default sort order to amount. Atm it is sorted by lockup date and it should stay like that. And all this doesn't work at all as desired as you have applied sorting to a string value which is the default behavior.

@@ -249,6 +251,9 @@ public void updateItem(final VoteListItem item, boolean empty) {
};
}
});
column.setComparator(Comparator.comparing(VoteListItem::getBlindVoteDate));
column.setSortType(TableColumn.SortType.DESCENDING);
votesTableView.getSortOrder().add(column);
votesTableView.getColumns().add(column);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has no effect as the columns are not sortable right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants