Logic Analyser screen: crash if empty log is analysed
marcnause opened this issue · comments
Marc Nause commented
Actual Behaviour
The Logic Analyzer screen crashes if an empty log is analysed.
Expected Behaviour
The Logic Analyzer screen does not crash if an empty log is analysed.
Steps to reproduce it
- open app (no PSLab connected)
- choose Logic Analyzer
- tap "save data" icon
- tap three dots icon
- tap "Show Logged Data"
- choose last saved file
- tap "ANALYZE" button (sometimes this needs to be done twice)
LogCat for the issue
2023-01-26 22:17:00.921 29842-29862 OpenGLRenderer io.pslab D endAllActiveAnimators on 0xb4000073ded3ad00 (MenuPopupWindow$MenuDropDownListView) with handle 0xb4000072fecbdbe0
2023-01-26 22:17:03.228 29842-29842 BottomSheetBehavior io.pslab W BottomSheetBehavior now supports multiple callbacks. `setBottomSheetCallback()` removes all existing callbacks, including ones set internally by library authors, which may result in unintended behavior. This may change in the future. Please use `addBottomSheetCallback()` and `removeBottomSheetCallback()` instead to set your own callbacks.
2023-01-26 22:17:03.247 29842-29842 AndroidRuntime io.pslab D Shutting down VM
2023-01-26 22:17:03.247 29842-29842 AndroidRuntime io.pslab E FATAL EXCEPTION: main
Process: io.pslab, PID: 29842
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1
at java.util.ArrayList.get(ArrayList.java:439)
at in.goodiebag.carouselpicker.CarouselPicker$CarouselViewAdapter.applyOpacity(CarouselPicker.java:272)
at in.goodiebag.carouselpicker.CarouselPicker$CarouselViewAdapter.access$000(CarouselPicker.java:139)
at in.goodiebag.carouselpicker.CarouselPicker.setCurrentItem(CarouselPicker.java:90)
at io.pslab.fragment.LALogicLinesFragment.setPlayBackData(LALogicLinesFragment.java:280)
at io.pslab.fragment.LALogicLinesFragment.onCreateView(LALogicLinesFragment.java:221)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3138)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1436)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3458)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7715)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
2023-01-26 22:17:03.271 29842-29842 Process io.pslab I Sending signal. PID: 29842 SIG: 9
2023-01-26 22:17:16.521 29958-29958 AndroidRuntime io.pslab D Shutting down VM
2023-01-26 22:17:16.522 29958-29958 AndroidRuntime io.pslab E FATAL EXCEPTION: main
Process: io.pslab, PID: 29958
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean io.pslab.communication.ScienceLab.isConnected()' on a null object reference
at io.pslab.fragment.LALogicLinesFragment$3.onClick(LALogicLinesFragment.java:352)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28309)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7715)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
Would you like to work on the issue?
Yes.