2017-09-12 17 views
1

ユーザーがButtonで十分速く複数回クリックすると、ToastBar - ToastBarNullPointerExceptionと表示されます。コードネーム1 - ToastBar NullPointerException

スタック

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) 

(コード1)ToastBar.java、ライン602

c.label.getParent().replaceAndWait(c.label, newLabel, CommonTransitions.createCover(CommonTransitions.SLIDE_VERTICAL, true, 300)); 

(コード2)DigitRoller.java

このActionListenerによって呼び出されます。

btnCopy.addActionListener((e)-> { 
      this.copyToClipboard(); 
     }); 

DialogでアプリがフリーズしException詳細を表示したり、それ自身の決断でアニメーションを停止した後。 アプリケーションをクラッシュさせる非常に簡単な方法。

答えて

1

これはバグのようですが、私はその可能性のある回避策をhereに追加しました。

関連する問題