NPE in ShareUtils in some cases after application minimized
httpdispatch opened this issue · comments
Eugene Popovich commented
It happens when share on twitter or facebook. Dialog is not appearing and NPE occurs. Reproduces this on Android 4.2 emulator
at com.trovebox.android.app.share.ShareUtils$TwitterShareRunnable.run(ShareUtils.java:153)
at com.trovebox.android.app.twitter.TwitterUtils.runAfterTwitterAuthentication(TwitterUtils.java:268)
at com.trovebox.android.app.twitter.TwitterUtils.runAfterTwitterAuthentication(TwitterUtils.java:219)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.shareActivePhotoViaTwitter(PhotoDetailsActivity.java:317)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment$3.run(PhotoDetailsActivity.java:275)
at com.trovebox.android.app.share.ShareUtils.confirmPrivatePhotoSharingAndRun(ShareUtils.java:79)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.confirmPrivatePhotoSharingAndRun(PhotoDetailsActivity.java:344)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.onOptionsItemSelected(PhotoDetailsActivity.java:271)
at android.support.v4.app.Watson.onMenuItemSelected(Watson.java:126)
at com.actionbarsherlock.ActionBarSherlock.callbackOptionsItemSelected(ActionBarSherlock.java:603)
at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchOptionsItemSelected(ActionBarSherlockNative.java:93)
at org.holoeverywhere.addon.AddonSherlock$AddonSherlockA.onMenuItemSelected(AddonSherlock.java:98)
at org.holoeverywhere.app.Activity$10.action(Activity.java:306)
at org.holoeverywhere.app.Activity$10.action(Activity.java:1)
at org.holoeverywhere.addon.IAddonAttacher$AddonCallback.performAction(IAddonAttacher.java:24)
at org.holoeverywhere.addon.IAddonBasicAttacher.performAddonAction(IAddonBasicAttacher.java:115)
at org.holoeverywhere.app.Activity.performAddonAction(Activity.java:528)
at org.holoeverywhere.app.Activity.onMenuItemSelected(Activity.java:303)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:980)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
at com.android.internal.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:81)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
at com.android.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:156)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3435)
at android.view.View.dispatchTouchEvent(View.java:7246)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2168)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1903)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2174)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1917)
at android.widget.PopupWindow$PopupViewContainer.dispatchTouchEvent(PopupWindow.java:1592)
at android.view.View.dispatchPointerEvent(View.java:7426)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3220)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3165)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4292)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4271)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4363)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:125)
at android.os.Looper.loop(Looper.java:124)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at com.trovebox.android.app.share.ShareUtils$FacebookShareRunnable.run(ShareUtils.java:185)
at com.trovebox.android.app.facebook.FacebookUtils.runAfterFacebookAuthentication(FacebookUtils.java:171)
at com.trovebox.android.app.facebook.FacebookUtils.runAfterFacebookAuthentication(FacebookUtils.java:158)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.shareActivePhotoViaFacebook(PhotoDetailsActivity.java:306)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment$4.run(PhotoDetailsActivity.java:286)
at com.trovebox.android.app.share.ShareUtils.confirmPrivatePhotoSharingAndRun(ShareUtils.java:79)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.confirmPrivatePhotoSharingAndRun(PhotoDetailsActivity.java:344)
at com.trovebox.android.app.PhotoDetailsActivity$PhotoDetailsUiFragment.onOptionsItemSelected(PhotoDetailsActivity.java:282)
at android.support.v4.app.Watson.onMenuItemSelected(Watson.java:126)
at com.actionbarsherlock.ActionBarSherlock.callbackOptionsItemSelected(ActionBarSherlock.java:603)
at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchOptionsItemSelected(ActionBarSherlockNative.java:93)
at org.holoeverywhere.addon.AddonSherlock$AddonSherlockA.onMenuItemSelected(AddonSherlock.java:98)
at org.holoeverywhere.app.Activity$10.action(Activity.java:306)
at org.holoeverywhere.app.Activity$10.action(Activity.java:1)
at org.holoeverywhere.addon.IAddonAttacher$AddonCallback.performAction(IAddonAttacher.java:24)
at org.holoeverywhere.addon.IAddonBasicAttacher.performAddonAction(IAddonBasicAttacher.java:115)
at org.holoeverywhere.app.Activity.performAddonAction(Activity.java:528)
at org.holoeverywhere.app.Activity.onMenuItemSelected(Activity.java:303)
at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:1133)
at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735)
at com.android.internal.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:81)
at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149)
at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874)
at com.android.internal.view.menu.MenuPopupHelper.onItemClick(MenuPopupHelper.java:156)
at android.widget.AdapterView.performItemClick(AdapterView.java:298)
at android.widget.AbsListView.performItemClick(AbsListView.java:1110)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:2906)
at android.widget.AbsListView$1.run(AbsListView.java:3735)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4911)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
Eugene Popovich commented
Steps to reproduce.
Open photo details
close and immediately open it again
then try to share photo via twitter or facebook. NPE occurs
It happens because of 2 instances onf fragment are in memory at the same time. One is destroyin and one is creating. And destroying fragment nullify currentInstance variable