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

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 bisq-network#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
Copy link
Member

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
Copy link
Contributor

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

@sqrrm
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
Copy link
Contributor

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
Copy link
Contributor

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

@devinbileck
Copy link
Member

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 devinbileck left a comment

Choose a reason for hiding this comment

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

ACK

@ripcurlx ripcurlx merged commit 3a1dcfb into bisq-network:release/v1.2.0 Oct 28, 2019
@chimp1984 chimp1984 deleted the fix-missing-setting-of-delayedPayoutTxBytes branch November 2, 2019 03:17
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.

4 participants