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

[1.2.0] Set delayedPayoutTxBytes when setting delayedPayoutTx #3475

Conversation

@chimp1984
Copy link
Contributor

chimp1984 commented Oct 26, 2019

Fixes #3473

The delayedPayoutTx is not committed to the wallet as long it is not
published. The seller who creates the delayedPayoutTx has not stored the
delayedPayoutTxBytes which caused a nullpointer after restart.

Fixes #3473

The delayedPayoutTx is not committed to the wallet as long it is not
published. The seller who creates the delayedPayoutTx has not stored the
delayedPayoutTxBytes which caused a nullpointer after restart.
@devinbileck

This comment has been minimized.

Copy link
Member

devinbileck commented Oct 26, 2019

I followed the steps in #3473 and encountered a nullpointer when restarting bob's client (step 3) and trying to view the trade.

Oct-25 23:26:38.710 [JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.NullPointerException
	at bisq.core.btc.wallet.WalletService.getTransaction(WalletService.java:622)
	at bisq.core.btc.wallet.WalletService.getTransaction(WalletService.java:627)
	at bisq.core.trade.Trade.getDepositTx(Trade.java:663)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.doSelectItem(PendingTradesDataModel.java:410)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.selectBestItem(PendingTradesDataModel.java:386)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.onListChanged(PendingTradesDataModel.java:381)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.activate(PendingTradesDataModel.java:158)
	at bisq.desktop.common.model.ActivatableDataModel._activate(ActivatableDataModel.java:28)
	at bisq.desktop.common.model.ActivatableWithDataModel._activate(ActivatableWithDataModel.java:28)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:42)
	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.scenesChanged(Parent.java:769)
	at javafx.scene.Node.invalidatedScenes(Node.java:1076)
	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.add(ModifiableObservableListBase.java:155)
	at com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:320)
	at com.jfoenix.skins.JFXTabPaneSkin.addTabContentHolder(JFXTabPaneSkin.java:228)
	at com.jfoenix.skins.JFXTabPaneSkin.<init>(JFXTabPaneSkin.java:100)
	at com.jfoenix.controls.JFXTabPane.createDefaultSkin(JFXTabPane.java:67)
	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.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(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:844)
 
java.lang.NullPointerException
	at bisq.core.btc.wallet.WalletService.getTransaction(WalletService.java:622)
	at bisq.core.btc.wallet.WalletService.getTransaction(WalletService.java:627)
	at bisq.core.trade.Trade.getDepositTx(Trade.java:663)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.doSelectItem(PendingTradesDataModel.java:410)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.selectBestItem(PendingTradesDataModel.java:386)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.onListChanged(PendingTradesDataModel.java:381)
	at bisq.desktop.main.portfolio.pendingtrades.PendingTradesDataModel.activate(PendingTradesDataModel.java:158)
	at bisq.desktop.common.model.ActivatableDataModel._activate(ActivatableDataModel.java:28)
	at bisq.desktop.common.model.ActivatableWithDataModel._activate(ActivatableWithDataModel.java:28)
	at bisq.desktop.common.view.ActivatableViewAndModel.lambda$prepareInitialize$0(ActivatableViewAndModel.java:42)
	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.scenesChanged(Parent.java:769)
	at javafx.scene.Node.invalidatedScenes(Node.java:1076)
	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.add(ModifiableObservableListBase.java:155)
	at com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:320)
	at com.jfoenix.skins.JFXTabPaneSkin.addTabContentHolder(JFXTabPaneSkin.java:228)
	at com.jfoenix.skins.JFXTabPaneSkin.<init>(JFXTabPaneSkin.java:100)
	at com.jfoenix.controls.JFXTabPane.createDefaultSkin(JFXTabPane.java:67)
	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.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(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:844)
@ripcurlx

This comment has been minimized.

Copy link
Member

ripcurlx commented Oct 28, 2019

@chimp1984 Could you please have a look at @devinbileck issue before merging?

@sqrrm

This comment has been minimized.

Copy link
Member

sqrrm commented Oct 28, 2019

I have not been able to reproduce Devin's issue with this fix.

@ripcurlx ripcurlx changed the title Set delayedPayoutTxBytes when setting delayedPayoutTx [1.2.0] Set delayedPayoutTxBytes when setting delayedPayoutTx Oct 28, 2019
@ripcurlx

This comment has been minimized.

Copy link
Member

ripcurlx commented Oct 28, 2019

I have not been able to reproduce Devin's issue with this fix.

I didn't get the exception either and was able to finish the steps mentioned in #3473 without any further problems.

@ripcurlx

This comment has been minimized.

Copy link
Member

ripcurlx commented Oct 28, 2019

@devinbileck Could you give it another spin if you are able to reproduce the issue mentioned above?

@devinbileck

This comment has been minimized.

Copy link
Member

devinbileck commented Oct 28, 2019

I am now unable to reproduce the exception mentioned above. I was also able to verify the issue in #3473 has been resolved.

Copy link
Member

devinbileck left a comment

ACK

@ripcurlx ripcurlx merged commit 3a1dcfb into bisq-network:release/v1.2.0 Oct 28, 2019
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@chimp1984 chimp1984 deleted the chimp1984:fix-missing-setting-of-delayedPayoutTxBytes branch Nov 2, 2019
@devinbileck devinbileck referenced this pull request Nov 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.