Si l'utilisateur clique plusieurs fois assez rapidement sur Button
, ToastBar
- ToastBar
lève NullPointerException
.Codename One - ToastBar NullPointerException
Stack:
java.lang.NullPointerException
(Code 1) at com.codename1.components.ToastBar.updateStatus(ToastBar.java:602)
at com.codename1.components.ToastBar.access$300(ToastBar.java:84)
at com.codename1.components.ToastBar$2.run(ToastBar.java:638)
at com.codename1.ui.Display.processSerialCalls(Display.java:1101)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1045)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1154)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1191)
at com.codename1.ui.AnimationManager.addAnimationAndBlock(AnimationManager.java:105)
at com.codename1.ui.ComponentSelector.animateUnlayoutAndWait(ComponentSelector.java:3584)
at com.codename1.ui.ComponentSelector.slideUpAndWait(ComponentSelector.java:1036)
at com.codename1.components.ToastBar.setVisible(ToastBar.java:787)
at com.codename1.components.ToastBar.updateStatus(ToastBar.java:502)
at com.codename1.components.ToastBar.access$300(ToastBar.java:84)
at com.codename1.components.ToastBar$2.run(ToastBar.java:638)
at com.codename1.ui.Display.processSerialCalls(Display.java:1101)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1045)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1154)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1191)
at com.codename1.ui.AnimationManager.addAnimationAndBlock(AnimationManager.java:105)
at com.codename1.ui.Container.replaceComponents(Container.java:869)
at com.codename1.ui.Container.replaceAndWait(Container.java:744)
at com.codename1.components.ToastBar.updateStatus(ToastBar.java:602)
at com.codename1.components.ToastBar.access$300(ToastBar.java:84)
at com.codename1.components.ToastBar$2.run(ToastBar.java:638)
at com.codename1.ui.Display.processSerialCalls(Display.java:1101)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1045)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1154)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1191)
at com.codename1.ui.AnimationManager.addAnimationAndBlock(AnimationManager.java:105)
at com.codename1.ui.Container.replaceComponents(Container.java:869)
at com.codename1.ui.Container.replaceAndWait(Container.java:744)
at com.codename1.components.ToastBar.updateStatus(ToastBar.java:602)
at com.codename1.components.ToastBar.access$300(ToastBar.java:84)
at com.codename1.components.ToastBar$Status.show(ToastBar.java:325)
at com.codename1.components.ToastBar.showMessage(ToastBar.java:820)
at com.codename1.components.ToastBar.showMessage(ToastBar.java:830)
at com.codename1.components.ToastBar.showErrorMessage(ToastBar.java:858)
(Code 2) at com.somesite.someapp.somepackage.DigitRoller.copyToClipboard(DigitRoller.java:122)
(Code 1): ToastBar.java, ligne 602
c.label.getParent().replaceAndWait(c.label, newLabel, CommonTransitions.createCover(CommonTransitions.SLIDE_VERTICAL, true, 300));
(Code 2): DigitRoller.java
protected void copyToClipboard() {
Clipboard.copyString(sToken);
ToastBar.showErrorMessage("Copied " + sToken, 1000);
}
copyToClipboard()
est appelé par ce ActionListener
:
btnCopy.addActionListener((e)-> {
this.copyToClipboard();
});
Après avoir affiché Exception
détails dans Dialog
le gel app ou arrête des animations par sa propre décision. Extrêmement simple de plantage de l'application.