FireflyMobile icon indicating copy to clipboard operation
FireflyMobile copied to clipboard

App crash if duplicate a transaction and then delete it

Open hanshsieh opened this issue 2 years ago • 0 comments

Firefly III Server Version: 5.7.9

Firefly III Mobile Version: 5.0.7

Android Version:
11

Device Information:

  • BRAND: SAMSUNG
  • MODEL: S20

Expected Behavior

Should not crash, and the dashboard should automatically reload.

Current Behavior

On the dashboard, there's a widget for the recent transactions. I clicked one transaction, and clicked "duplicate, ". Since the dashboard doesn't automatically reload, I clicked an arbitrary transaction and go back. Then, I see the duplicated transaction. I clicked the duplicated transaction, and click "delete". The dashboard doesn't reload so that deleted transaction was still there. I clicked the transaction that should have been deleted, and then it crashed.

Steps to Reproduce

REPORT_ID=af64a04e-ec96-44d3-a067-aeb81d75cf05
APP_VERSION_NAME=5.0.7
PHONE_MODEL=SM-G9810
BRAND=samsung
PRODUCT=x1qzhx
ANDROID_VERSION=11
BUILD_CONFIG=
STACK_TRACE=java.lang.NullPointerException: transactionData must not be null
	at xyz.hisname.fireflyiii.ui.transaction.details.TransactionDetailsFragment.$r8$lambda$GvRd4z92o0ZpNy0Sh6KuV0r-gKs(TransactionDetailsFragment.kt:2)
	at xyz.hisname.fireflyiii.ui.transaction.details.TransactionDetailsFragment$$ExternalSyntheticLambda1.onChanged(Unknown Source:3)
	at androidx.lifecycle.LiveData.considerNotify(LiveData.java:6)
	at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:8)
	at androidx.lifecycle.LiveData.setValue(LiveData.java:4)
	at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:1)
	at androidx.lifecycle.LiveData$1.run(LiveData.java:5)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:246)
	at android.app.ActivityThread.main(ActivityThread.java:8653)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

LOGCAT=--------- beginning of main
06-05 23:25:35.595 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:35.789 D/Toast   ( 3299): show: caller = xyz.hisname.fireflyiii.util.extension.ToastExtensionKt.toastInfo:5 
06-05 23:25:35.789 I/Toast   ( 3299): show: focusDisplayId = 0, isFocusInDesktop = false mCustomDisplayId=-1 isDexDualMode=false
06-05 23:25:35.789 I/Toast   ( 3299): show: isActivityContext = true
06-05 23:25:35.797 D/NativeCustomFrequencyManager( 3299): [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
06-05 23:25:35.799 D/InputTransport( 3299): Input channel constructed: '7e0e8ac', fd=116
06-05 23:25:35.800 I/ViewRootImpl@750fe7c[Toast]( 3299): setView = android.widget.LinearLayout@aee5305 TM=true
06-05 23:25:35.805 I/SurfaceControl( 3299): assignNativeObject: nativeObject = 0 Surface(name=null)/@0xfa30f5a / android.view.SurfaceControl.readFromParcel:1117 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9971 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
06-05 23:25:35.806 I/ViewRootImpl@750fe7c[Toast]( 3299): Relayout returned: old=(0,78,1080,2256) new=(238,1926,841,2064) req=(603,138)0 dur=4 res=0x7 s={true -5476376657702454576} ch=true fn=-1
06-05 23:25:35.809 D/OpenGLRenderer( 3299): GPIS:: SetUp Pid : 3299    Tid : 10345
06-05 23:25:36.550 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme key 0
06-05 23:25:36.597 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme key 1
06-05 23:25:37.738 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 0
06-05 23:25:37.802 E/SurfaceFlinger( 3299): resetPartialBlurMask failed to transact: -1
06-05 23:25:37.802 I/ViewRootImpl@750fe7c[Toast]( 3299): dispatchDetachedFromWindow
06-05 23:25:37.803 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661996922160]
06-05 23:25:37.803 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661996922160]
06-05 23:25:37.806 D/InputTransport( 3299): Input channel destroyed: '7e0e8ac', fd=116
06-05 23:25:37.812 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:38.312 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme key 0
06-05 23:25:38.357 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme key 1
06-05 23:25:40.944 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 0
06-05 23:25:41.018 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:41.047 W/RecyclerView( 3299): No adapter attached; skipping layout
06-05 23:25:41.047 W/RecyclerView( 3299): No adapter attached; skipping layout
06-05 23:25:42.806 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 0
06-05 23:25:42.854 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:42.862 I/Dialog  ( 3299): mIsSamsungBasicInteraction = false, isMetaDataInActivity = false
06-05 23:25:42.863 I/DecorView( 3299): [INFO] isPopOver=false, config=false
06-05 23:25:42.863 I/DecorView( 3299): updateCaptionType >> DecorView@323bf0b[], isFloating=true, isApplication=true, hasWindowDecorCaption=false, hasWindowControllerCallback=false
06-05 23:25:42.863 D/DecorView( 3299): setCaptionType = 0, this = DecorView@323bf0b[]
06-05 23:25:42.868 D/ScrollView( 3299): initGoToTop
06-05 23:25:42.872 D/NativeCustomFrequencyManager( 3299): [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
06-05 23:25:42.878 D/InputTransport( 3299): Input channel constructed: '54feb09', fd=109
06-05 23:25:42.879 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): setView = com.android.internal.policy.DecorView@323bf0b TM=true
06-05 23:25:42.889 I/SurfaceControl( 3299): assignNativeObject: nativeObject = 0 Surface(name=null)/@0xe09a2e1 / android.view.SurfaceControl.readFromParcel:1117 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9971 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
06-05 23:25:42.890 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): Relayout returned: old=(0,78,1080,2256) new=(27,849,1053,1484) req=(1026,635)0 dur=7 res=0x7 s={true -5476376657702437136} ch=true fn=-1
06-05 23:25:42.891 D/ScrollView( 3299):  onsize change changed 
06-05 23:25:42.895 D/OpenGLRenderer( 3299): GPIS:: SetUp Pid : 3299    Tid : 10345
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997196896]
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997196896]
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997188272]
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997188272]
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997193024]
06-05 23:25:42.899 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997193024]
06-05 23:25:42.900 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661995096512]
06-05 23:25:42.900 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661995096512]
06-05 23:25:42.900 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997112416]
06-05 23:25:42.900 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997112416]
06-05 23:25:42.901 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): MSG_WINDOW_FOCUS_CHANGED 0 1
06-05 23:25:42.913 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): MSG_WINDOW_FOCUS_CHANGED 1 1
06-05 23:25:43.619 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): ViewPostIme pointer 0
06-05 23:25:43.684 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:43.695 D/OpenGLRenderer( 3299): endAllActiveAnimators on 0xb4000071756e93f0 (RippleDrawable) with handle 0xb4000070856c10a0
06-05 23:25:43.695 E/SurfaceFlinger( 3299): resetPartialBlurMask failed to transact: -1
06-05 23:25:43.695 I/ViewRootImpl@e3648e2[HomeActivity]( 3299): dispatchDetachedFromWindow
06-05 23:25:43.696 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997109600]
06-05 23:25:43.696 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997109600]
06-05 23:25:43.704 D/InputTransport( 3299): Input channel destroyed: '54feb09', fd=109
06-05 23:25:43.708 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661996635456]
06-05 23:25:43.708 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661996635456]
06-05 23:25:43.710 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661996633696]
06-05 23:25:43.710 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661996633696]
06-05 23:25:43.710 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997143216]
06-05 23:25:43.710 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997143216]
06-05 23:25:43.724 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): MSG_WINDOW_FOCUS_CHANGED 1 1
06-05 23:25:43.724 D/InputMethodManager( 3299): prepareNavigationBarInfo() DecorView@3c082e[HomeActivity]
06-05 23:25:43.724 D/InputMethodManager( 3299): getNavigationBarColor() -12808772
06-05 23:25:43.725 D/InputMethodManager( 3299): prepareNavigationBarInfo() DecorView@3c082e[HomeActivity]
06-05 23:25:43.725 D/InputMethodManager( 3299): getNavigationBarColor() -12808772
06-05 23:25:43.725 V/InputMethodManager( 3299): Starting input: tba=xyz.hisname.fireflyiii ic=null mNaviBarColor -12808772 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
06-05 23:25:43.725 D/InputMethodManager( 3299): startInputInner - Id : 0
06-05 23:25:43.725 I/InputMethodManager( 3299): startInputInner - mService.startInputOrWindowGainedFocus
06-05 23:25:43.726 D/InputTransport( 3299): Input channel constructed: 'ClientS', fd=116
06-05 23:25:43.726 D/InputTransport( 3299): Input channel destroyed: 'ClientS', fd=104
06-05 23:25:43.836 D/Toast   ( 3299): show: caller = xyz.hisname.fireflyiii.util.extension.ToastExtensionKt.toastSuccess:5 
06-05 23:25:43.836 I/Toast   ( 3299): show: focusDisplayId = 0, isFocusInDesktop = false mCustomDisplayId=-1 isDexDualMode=false
06-05 23:25:43.836 I/Toast   ( 3299): show: isActivityContext = true
06-05 23:25:43.846 D/NativeCustomFrequencyManager( 3299): [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
06-05 23:25:43.849 D/InputTransport( 3299): Input channel constructed: 'a5373a5', fd=115
06-05 23:25:43.851 I/ViewRootImpl@a85899f[Toast]( 3299): setView = android.widget.LinearLayout@ac43aec TM=true
06-05 23:25:43.892 I/SurfaceControl( 3299): assignNativeObject: nativeObject = 0 Surface(name=null)/@0xe073794 / android.view.SurfaceControl.readFromParcel:1117 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9971 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
06-05 23:25:43.893 I/ViewRootImpl@a85899f[Toast]( 3299): Relayout returned: old=(0,78,1080,2256) new=(229,1926,851,2064) req=(622,138)0 dur=5 res=0x7 s={true -5476376657702437136} ch=true fn=-1
06-05 23:25:43.897 D/OpenGLRenderer( 3299): GPIS:: SetUp Pid : 3299    Tid : 10345
06-05 23:25:43.928 I/ViewRootImpl@a85899f[Toast]( 3299): MSG_RESIZED_REPORT: frame=(229,1926,851,2064) ci=(0,0,0,0) vi=(0,0,0,0) or=1
06-05 23:25:43.936 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997101504]
06-05 23:25:43.936 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997101504]
06-05 23:25:43.936 I/SurfaceControl( 3299): assignNativeObject: nativeObject = 0 Surface(name=null)/@0xe073794 / android.view.SurfaceControl.readFromParcel:1117 android.view.IWindowSession$Stub$Proxy.relayout:1820 android.view.ViewRootImpl.relayoutWindow:9005 android.view.ViewRootImpl.performTraversals:3360 android.view.ViewRootImpl.doTraversal:2618 android.view.ViewRootImpl$TraversalRunnable.run:9971 android.view.Choreographer$CallbackRecord.run:1010 android.view.Choreographer.doCallbacks:809 android.view.Choreographer.doFrame:744 android.view.Choreographer$FrameDisplayEventReceiver.run:995 
06-05 23:25:43.936 I/ViewRootImpl@a85899f[Toast]( 3299): Relayout returned: old=(229,1926,851,2064) new=(229,1926,851,2064) req=(622,138)0 dur=3 res=0x1 s={true -5476376657702437136} ch=false fn=2
06-05 23:25:45.858 E/SurfaceFlinger( 3299): resetPartialBlurMask failed to transact: -1
06-05 23:25:45.858 I/ViewRootImpl@a85899f[Toast]( 3299): dispatchDetachedFromWindow
06-05 23:25:45.858 I/SurfaceControl( 3299): nativeRelease nativeObject s[-5476376661997066480]
06-05 23:25:45.858 I/SurfaceControl( 3299): nativeRelease nativeObject e[-5476376661997066480]
06-05 23:25:45.866 D/InputTransport( 3299): Input channel destroyed: 'a5373a5', fd=115
06-05 23:25:46.201 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 0
06-05 23:25:46.274 I/ViewRootImpl@aacb8e6[HomeActivity]( 3299): ViewPostIme pointer 1
06-05 23:25:46.301 E/ACRA    ( 3299): ACRA caught a NullPointerException for xyz.hisname.fireflyiii
06-05 23:25:46.301 E/ACRA    ( 3299): java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Number.longValue()' on a null object reference
06-05 23:25:46.301 E/ACRA    ( 3299): 	at xyz.hisname.fireflyiii.repository.transaction.TransactionRepository.getAttachment(TransactionRepository.kt:6)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at xyz.hisname.fireflyiii.repository.transaction.TransactionRepository$getAttachment$1.invokeSuspend(Unknown Source:14)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:5)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:2)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:1)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
06-05 23:25:46.301 E/ACRA    ( 3299): 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:10)
06-05 23:25:46.312 W/RecyclerView( 3299): No adapter attached; skipping layout
06-05 23:25:46.312 W/RecyclerView( 3299): No adapter attached; skipping layout
06-05 23:25:46.316 D/AndroidRuntime( 3299): Shutting down VM

USER_CRASH_DATE=2022-06-05T23:25:46.318+08:00
IS_SILENT=false

hanshsieh avatar Jun 05 '22 15:06 hanshsieh