iFixit / iFixitAndroid

Official iFixit Android App
https://play.google.com/store/apps/details?id=com.dozuki.ifixit
GNU General Public License v3.0
162 stars 88 forks source link

Crash when trying to edit a step on private guide #201

Open marczych opened 10 years ago

marczych commented 10 years ago
  1. View a guide with private prerequisite guides.
  2. Hit edit on a step of the private prerequisite guide.
  3. Click OK on the Insufficient privileges dialog.
  4. The user is left viewing step edit but nothing is displayed.
  5. Hit Back.
  6. Stacktrace!

We should be smarter about what the 403 dialog does. The user shouldn't be left on that page to begin with but the Activity should guard against a null Guide too.

      MessageQueue-JNI  E  02-24 19:57:45.527 | Exception in MessageQueue callback: handleReceiveCallback
                        E  02-24 19:57:45.543 | java.lang.NullPointerException
                        E  02-24 19:57:45.543 |     at com.dozuki.ifixit.ui.guide.create.StepEditActivity.finishEdit(StepEditActivity.java:1192)
                        E  02-24 19:57:45.543 |     at com.dozuki.ifixit.ui.guide.create.StepEditActivity.onBackPressed(StepEditActivity.java:850)
                        E  02-24 19:57:45.543 |     at android.app.Activity.onKeyUp(Activity.java:2193)
                        E  02-24 19:57:45.543 |     at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
                        E  02-24 19:57:45.543 |     at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
                        E  02-24 19:57:45.543 |     at com.actionbarsherlock.app.SherlockFragmentActivity.dispatchKeyEvent(SherlockFragmentActivity.java:121)
                        E  02-24 19:57:45.543 |     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2017)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
                        E  02-24 19:57:45.543 |     at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718)
                        E  02-24 19:57:45.543 |     at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2010)
                        E  02-24 19:57:45.543 |     at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1704)
                        E  02-24 19:57:45.543 |     at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1695)
                        E  02-24 19:57:45.543 |     at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1987)
                        E  02-24 19:57:45.543 |     at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
                        E  02-24 19:57:45.543 |     at android.os.MessageQueue.nativePollOnce(Native Method)
                        E  02-24 19:57:45.543 |     at android.os.MessageQueue.next(MessageQueue.java:138)
                        E  02-24 19:57:45.543 |     at android.os.Looper.loop(Looper.java:123)
                        E  02-24 19:57:45.543 |     at android.app.ActivityThread.main(ActivityThread.java:5081)
                        E  02-24 19:57:45.543 |     at java.lang.reflect.Method.invokeNative(Native Method)
                        E  02-24 19:57:45.543 |     at java.lang.reflect.Method.invoke(Method.java:515)
                        E  02-24 19:57:45.543 |     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
                        E  02-24 19:57:45.543 |     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
                        E  02-24 19:57:45.543 |     at dalvik.system.NativeStart.main(Native Method)
        AndroidRuntime  D  02-24 19:57:45.543 | Shutting down VM
              dalvikvm  W  02-24 19:57:45.543 | threadid=1: thread exiting with uncaught exception (group=0x41631c80)
        AndroidRuntime  E  02-24 19:57:45.550 | FATAL EXCEPTION: main
                        E  02-24 19:57:45.550 | Process: com.dozuki.ifixit, PID: 28108
                        E  02-24 19:57:45.550 | java.lang.NullPointerException
                        E  02-24 19:57:45.550 |     at com.dozuki.ifixit.ui.guide.create.StepEditActivity.finishEdit(StepEditActivity.java:1192)
                        E  02-24 19:57:45.550 |     at com.dozuki.ifixit.ui.guide.create.StepEditActivity.onBackPressed(StepEditActivity.java:850)
                        E  02-24 19:57:45.550 |     at android.app.Activity.onKeyUp(Activity.java:2193)
                        E  02-24 19:57:45.550 |     at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
                        E  02-24 19:57:45.550 |     at android.app.Activity.dispatchKeyEvent(Activity.java:2423)
                        E  02-24 19:57:45.550 |     at com.actionbarsherlock.app.SherlockFragmentActivity.dispatchKeyEvent(SherlockFragmentActivity.java:121)
                        E  02-24 19:57:45.550 |     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2017)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3525)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3582)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3426)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3399)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3449)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3418)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3558)
                        E  02-24 19:57:45.550 |     at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:3718)
                        E  02-24 19:57:45.550 |     at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2010)
                        E  02-24 19:57:45.550 |     at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1704)
                        E  02-24 19:57:45.550 |     at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1695)
                        E  02-24 19:57:45.550 |     at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:1987)
                        E  02-24 19:57:45.550 |     at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
                        E  02-24 19:57:45.550 |     at android.os.MessageQueue.nativePollOnce(Native Method)
                        E  02-24 19:57:45.550 |     at android.os.MessageQueue.next(MessageQueue.java:138)
                        E  02-24 19:57:45.550 |     at android.os.Looper.loop(Looper.java:123)
                        E  02-24 19:57:45.550 |     at android.app.ActivityThread.main(ActivityThread.java:5081)
                        E  02-24 19:57:45.550 |     at java.lang.reflect.Method.invokeNative(Native Method)
                        E  02-24 19:57:45.550 |     at java.lang.reflect.Method.invoke(Method.java:515)
                        E  02-24 19:57:45.550 |     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
                        E  02-24 19:57:45.550 |     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
                        E  02-24 19:57:45.550 |     at dalvik.system.NativeStart.main(Native Method)