Apps-android-commons: Crash when viewing pic I just uploaded

Created on 24 Apr 2020  路  19Comments  路  Source: commons-app/apps-android-commons

Latest macgills/3601-depiction-thumbnails (most probably also happens on latest master).
Maybe not reproducible.
Steps:

  • Upload image (with depiction and no categories)
  • Tap it
  • Details activity loads, then crashes
APP_VERSION_CODE=561
APP_VERSION_NAME=2.12.3-debug-macgills/3601-depiction-thumbnails
ANDROID_VERSION=9
PHONE_MODEL=SM-G970F
STACK_TRACE=java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 502, found: 501 Pager id: fr.free.nrw.commons:id/mediaDetailsPager Pager class: class androidx.viewpager.widget.ViewPager Problematic adapter: class fr.free.nrw.commons.media.MediaDetailPagerFragment$MediaDetailAdapter
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1143)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:24967)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1638)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:24967)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
    at android.view.View.measure(View.java:24967)
    at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7134)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:992)
    at android.view.View.measure(View.java:24967)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3266)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1993)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2295)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1853)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8476)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
    at android.view.Choreographer.doFrame(Choreographer.java:696)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7032)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

IS_SILENT=false
USER_EMAIL=
USER_CRASH_DATE=2020-04-24T16:47:10.709+09:00
REPORT_ID=4abadeef-c5f5-49a0-9164-ad54da062257
bug

All 19 comments

Hi @nicolas-raoul can I work on this issue? I will try to repro it.

@rhulkb27 Sure thanks! :-)

Hi @rhulkb27 Any updates on the issue?

I am not able to reproduce the error that you have stated @nicolas-raoul. I do however get the following error when I tap the image, get the detailed activity, and tap it again:

USER_COMMENT=
APP_VERSION_CODE=561
APP_VERSION_NAME=2.12.3-debug-master
ANDROID_VERSION=9
PHONE_MODEL=AOSP on IA Emulator
STACK_TRACE=java.lang.NullPointerException: uriString
    at android.net.Uri$StringUri.<init>(Uri.java:490)
    at android.net.Uri$StringUri.<init>(Uri.java:480)
    at android.net.Uri.parse(Uri.java:452)
    at fr.free.nrw.commons.media.MediaDetailFragment.launchZoomActivity(MediaDetailFragment.java:227)
    at fr.free.nrw.commons.media.MediaDetailFragment_ViewBinding$1.doClick(MediaDetailFragment_ViewBinding.java:48)
    at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
    at android.view.View.performClick(View.java:6597)
    at android.view.View.performClickInternal(View.java:6574)
    at android.view.View.access$3100(View.java:778)
    at android.view.View$PerformClick.run(View.java:25885)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

IS_SILENT=false
USER_EMAIL=
USER_CRASH_DATE=2020-05-01T16:21:04.281-07:00
REPORT_ID=413a4f1e-0dc9-4156-a83e-7fad09c44330

@rhulkb27 Thanks for the info! Feel free to start working on something else.

If anyone gets this crash, please comment here, thanks :-)

@nicolas-raoul will do :)

Got the crash which @rhulkb27 mentioned. However, I could not reproduce the original crash

USER_COMMENT=
APP_VERSION_CODE=561
APP_VERSION_NAME=2.12.3-debug-master
ANDROID_VERSION=9
PHONE_MODEL=AOSP on IA Emulator
STACK_TRACE=java.lang.NullPointerException: uriString
    at android.net.Uri$StringUri.<init>(Uri.java:490)
    at android.net.Uri$StringUri.<init>(Uri.java:480)
    at android.net.Uri.parse(Uri.java:452)
    at fr.free.nrw.commons.media.MediaDetailFragment.launchZoomActivity(MediaDetailFragment.java:231)
    at fr.free.nrw.commons.media.MediaDetailFragment_ViewBinding$1.doClick(MediaDetailFragment_ViewBinding.java:48)
    at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
    at android.view.View.performClick(View.java:6597)
    at android.view.View.performClickInternal(View.java:6574)
    at android.view.View.access$3100(View.java:778)
    at android.view.View$PerformClick.run(View.java:25885)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

IS_SILENT=false
USER_EMAIL=
USER_CRASH_DATE=2020-05-05T10:12:02.219+05:30
REPORT_ID=c543b132-25f8-4e69-ba28-5168cb41e410

Please do create a separate issue for the crash that you are getting. If one of you is interested, you can state in your opening post that you wish to work on that issue, too. Thanks! :)

Btw, I know Nicolas says he experienced that crash on depictions-thumbnail branch, but I experienced a crash with the same stack trace while doing prodRelease testing on 2.13-release branch, so I think it is probably unrelated to depicts.

My crash happened when coming back to media details view from another app.

USER_COMMENT=
APP_VERSION_CODE=561
APP_VERSION_NAME=2.12.3
ANDROID_VERSION=10
PHONE_MODEL=SM-G960F
STACK_TRACE=java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 480, found: 479 Pager id: fr.free.nrw.commons:id/mediaDetailsPager Pager class: class androidx.viewpager.widget.ViewPager Problematic adapter: class fr.free.nrw.commons.media.MediaDetailPagerFragment$MediaDetailAdapter
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1143)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
    at android.view.View.measure(View.java:26415)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1638)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:26415)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481)
    at android.view.View.measure(View.java:26415)
    at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7845)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1009)
    at android.view.View.measure(View.java:26415)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3578)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2321)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2613)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2169)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8933)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:996)
    at android.view.Choreographer.doCallbacks(Choreographer.java:794)
    at android.view.Choreographer.doFrame(Choreographer.java:729)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:981)
    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:7811)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)

IS_SILENT=false
USER_EMAIL=
USER_CRASH_DATE=2020-04-28T04:26:02.534+10:00
REPORT_ID=a5d355b4-0970-4cf2-bec0-9cd7444775f8

Hi @misaochan, I am able to produce the NPE but not the exception you and @nicolas-raoul have been seeing, is there a specific step I am missing?

Have you tried switching out of the app and then back to it?

Yes @misaochan. Just to confirm I have been testing on 2.13-release

Yes, I was on 2.13-release as well (the ACRA report just doesn't reflect the branch). I guess I would be OK with us just fixing #3730 (since it seems more easily reproducible), then we can do the beta release and see how prevalent this crash turns out to be.

It happened to me again, I sent an ACRA stacktrace.
The picture's upload had failed so I had retried it, not sure if that matters. I had selected both a depiction and a category.

Thanks @nicolas-raoul , do you know if there are any specific steps we can take to reproduce this? @ashishkumar468 could you look into this please?

I have not found reproduction steps unfortunately. Maybe it does not happen every time.

I just tried again with latest master and it did not happen. Not saying it is fixed, but at least it does not happen all the time.

image

This method must be called when ContributionListFragment receives updated data

@macgills Yes this probably should be the issue

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jidanni picture jidanni  路  3Comments

nicolas-raoul picture nicolas-raoul  路  3Comments

maskaravivek picture maskaravivek  路  3Comments

whym picture whym  路  3Comments

misaochan picture misaochan  路  4Comments