OpenTracksApp / OpenTracks

OpenTracks is a sport tracking application that completely respects your privacy.
https://OpenTracksApp.com
Apache License 2.0
1.01k stars 186 forks source link

NPE on v3.21.0 (Reported via PlayStore) #1017

Closed dennisguse closed 2 years ago

dennisguse commented 2 years ago

I don't know how to reproduce those NPEs, but they seem related. All started occuring with v3.21.0

Best guess: some kind of race condition in the activity lifecycle (i.e., transition to another activity).

java.lang.NullPointerException: 
  at de.dennisguse.opentracks.content.provider.ContentProviderUtils.getTrack (ContentProviderUtils.java:209)
  at de.dennisguse.opentracks.fragments.IntervalsFragment.onResume (IntervalsFragment.java:138)
  at androidx.fragment.app.Fragment.performResume (Fragment.java:3039)
  at androidx.fragment.app.FragmentStateManager.resume (FragmentStateManager.java:607)
  at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:306)
  at androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:2189)
  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:2100)
  at androidx.fragment.app.FragmentManager.execSingleAction (FragmentManager.java:1971)
  at androidx.fragment.app.BackStackRecord.commitNow (BackStackRecord.java:305)
  at androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer.updateFragmentMaxLifecycle (FragmentStateAdapter.java:726)
  at androidx.viewpager2.adapter.FragmentStateAdapter$FragmentMaxLifecycleEnforcer$1.onPageScrollStateChanged (FragmentStateAdapter.java:632)
  at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageScrollStateChanged (CompositeOnPageChangeCallback.java:87)
  at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageScrollStateChanged (CompositeOnPageChangeCallback.java:87)
  at androidx.viewpager2.widget.ScrollEventAdapter.dispatchStateChanged (ScrollEventAdapter.java:426)
  at androidx.viewpager2.widget.ScrollEventAdapter.onScrolled (ScrollEventAdapter.java:214)
  at androidx.recyclerview.widget.RecyclerView.dispatchOnScrolled (RecyclerView.java:5173)
  at androidx.recyclerview.widget.RecyclerView$ViewFlinger.run (RecyclerView.java:5338)
  at android.view.Choreographer$CallbackRecord.run (Choreographer.java:999)
  at android.view.Choreographer.doCallbacks (Choreographer.java:797)
  at android.view.Choreographer.doFrame (Choreographer.java:728)
  at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:984)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:8167)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:496)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1100)
java.lang.NullPointerException: 
  at de.dennisguse.opentracks.content.provider.ContentProviderUtils.getTrack (ContentProviderUtils.java:209)
  at de.dennisguse.opentracks.content.TrackDataHub.notifyTracksTableUpdate (TrackDataHub.java:260)
  at de.dennisguse.opentracks.content.TrackDataHub.loadDataForListener (TrackDataHub.java:237)
  at de.dennisguse.opentracks.content.TrackDataHub.lambda$registerTrackDataListener$1$de-dennisguse-opentracks-content-TrackDataHub (TrackDataHub.java:189)
  at de.dennisguse.opentracks.content.TrackDataHub$$ExternalSyntheticLambda0.run (Unknown Source:4)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:241)
  at android.os.HandlerThread.run (HandlerThread.java:67)
java.lang.NullPointerException: 
  at de.dennisguse.opentracks.content.provider.ContentProviderUtils.formatIdListForUri (ContentProviderUtils.java:781)
  at de.dennisguse.opentracks.util.IntentDashboardUtils.startDashboard (IntentDashboardUtils.java:65)
  at de.dennisguse.opentracks.TrackRecordingActivity.onOptionsItemSelected (TrackRecordingActivity.java:268)
  at android.app.Activity.onMenuItemSelected (Activity.java:3435)
  at androidx.fragment.app.FragmentActivity.onMenuItemSelected (FragmentActivity.java:352)
  at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected (AppCompatActivity.java:264)
  at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:109)
  at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected (WindowCallbackWrapper.java:109)
  at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick (ToolbarActionBar.java:65)
  at androidx.appcompat.widget.Toolbar$1.onMenuItemClick (Toolbar.java:208)
  at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected (ActionMenuView.java:780)
  at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:834)
  at androidx.appcompat.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:158)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:985)
  at androidx.appcompat.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:975)
  at androidx.appcompat.widget.ActionMenuView.invokeItem (ActionMenuView.java:624)
  at androidx.appcompat.view.menu.ActionMenuItemView.onClick (ActionMenuItemView.java:151)
  at android.view.View.performClick (View.java:6256)
  at android.view.View$PerformClick.run (View.java:24710)
  at android.os.Handler.handleCallback (Handler.java:789)
  at android.os.Handler.dispatchMessage (Handler.java:98)
  at android.os.Looper.loop (Looper.java:251)
  at android.app.ActivityThread.main (ActivityThread.java:6572)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)
dennisguse commented 2 years ago

Got this while recording and opening OSMDashboard. No clue why:

    java.lang.NullPointerException: Attempt to invoke virtual method 'long de.dennisguse.opentracks.content.data.Track$Id.getId()' on a null object reference
        at de.dennisguse.opentracks.content.provider.ContentProviderUtils.formatIdListForUri(ContentProviderUtils.java:804)
        at de.dennisguse.opentracks.util.IntentDashboardUtils.startDashboard(IntentDashboardUtils.java:65)
        at de.dennisguse.opentracks.TrackRecordingActivity.onOptionsItemSelected(TrackRecordingActivity.java:270)
dennisguse commented 2 years ago

Is not reported anymore via Google Play crash reporting, so it seems that we fixed it (somehow) in the recent weeks :partying_face: