{"action":"opened","issue":{"url":"https://api.github.com/repos/jecelyin/920-text-editor-v2/issues/85","repository_url":"https://api.github.com/repos/jecelyin/920-text-editor-v2","labels_url":"https://api.github.com/repos/jecelyin/920-text-editor-v2/issues/85/labels{/name}","comments_url":"https://api.github.com/repos/jecelyin/920-text-editor-v2/issues/85/comments","events_url":"https://api.github.com/repos/jecelyin/920-text-editor-v2/issues/85/events","html_url":"https://github.com/jecelyin/920-text-editor-v2/issues/85","id":143231326,"number":85,"title":"v2.16.3.13 Crash: Attempt to invoke virtual method 'boolean com.jecelyin.editor2.ui.Document.isChanged()' on a null object reference","user":{"login":"920-Text-Editor-User","id":16668166,"avatar_url":"https://avatars.githubusercontent.com/u/16668166?v=3","gravatar_id":"","url":"https://api.github.com/users/920-Text-Editor-User","html_url":"https://github.com/920-Text-Editor-User","followers_url":"https://api.github.com/users/920-Text-Editor-User/followers","following_url":"https://api.github.com/users/920-Text-Editor-User/following{/other_user}","gists_url":"https://api.github.com/users/920-Text-Editor-User/gists{/gist_id}","starred_url":"https://api.github.com/users/920-Text-Editor-User/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/920-Text-Editor-User/subscriptions","organizations_url":"https://api.github.com/users/920-Text-Editor-User/orgs","repos_url":"https://api.github.com/users/920-Text-Editor-User/repos","events_url":"https://api.github.com/users/920-Text-Editor-User/events{/privacy}","received_events_url":"https://api.github.com/users/920-Text-Editor-User/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-24T12:25:29Z","updated_at":"2016-03-24T12:25:29Z","closed_at":null,"body":"退出软件频繁崩溃\n======================================================\nApp Version: v2.16.3.13\nPhone: samsung SM-N9008S\nAndroid Version: 5.0\nMemory: 959 MB / 2834 MB\n\n\nStacktrace:\n\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.jecelyin.editor2.ui.Document.isChanged()' on a null object reference\n\tat com.jecelyin.editor2.ui.EditorFragment.isChanged(EditorFragment.java:236)\n\tat com.jecelyin.editor2.adapter.EditorAdapter.removeEditor(EditorAdapter.java:111)\n\tat com.jecelyin.editor2.adapter.EditorAdapter.removeAll(EditorAdapter.java:158)\n\tat com.jecelyin.editor2.ui.TabManager$5.onClose(TabManager.java:206)\n\tat com.jecelyin.editor2.adapter.EditorAdapter.removeEditor(EditorAdapter.java:137)\n\tat com.jecelyin.editor2.adapter.EditorAdapter.removeAll(EditorAdapter.java:158)\n\tat com.jecelyin.editor2.ui.TabManager.closeAllTabAndExitApp(TabManager.java:199)\n\tat com.jecelyin.editor2.ui.MainActivity.onKeyDown(MainActivity.java:549)\n\tat android.view.KeyEvent.dispatch(KeyEvent.java:3147)\n\tat android.app.Activity.dispatchKeyEvent(Activity.java:2831)\n\tat android.support.v7.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:513)\n\tat android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:50)\n\tat android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent(AppCompatDelegateImplBase.java:241)\n\tat com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2429)\n\tat android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4582)\n\tat android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4537)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4068)\n\tat android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4121)\n\tat android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4087)\n\tat android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4201)\n\tat android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4095)\n\tat android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4258)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4068)\n\tat android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4121)\n\tat android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4087)\n\tat android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4095)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4068)\n\tat android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4121)\n\tat android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4087)\n\tat android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4234)\n\tat android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4421)\n\tat android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2480)\n\tat android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2074)\n\tat android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2065)\n\tat android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2457)\n\tat android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)\n\tat android.os.MessageQueue.nativePollOnce(Native Method)\n\tat android.os.MessageQueue.next(MessageQueue.java:143)\n\tat android.os.Looper.loop(Looper.java:130)\n\tat android.app.ActivityThread.main(ActivityThread.java:5942)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat java.lang.reflect.Method.invoke(Method.java:372)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)\n\n\n\nTag: FileWriter.onPostExecute#124\nMsg: /storage/extSdCard/920 file/1.920.tmp: open failed: EACCES (Permission denied)\nStacktrace:\njava.io.FileNotFoundException: /storage/extSdCard/920 file/1.920.tmp: open failed: EACCES (Permission denied)\n\tat libcore.io.IoBridge.open(IoBridge.java:456)\n\tat java.io.FileOutputStream.<init>(FileOutputStream.java:87)\n\tat java.io.FileOutputStream.<init>(FileOutputStream.java:72)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:70)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\nCaused by: android.system.ErrnoException: open failed: EACCES (Permission denied)\n\tat libcore.io.Posix.open(Native Method)\n\tat libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)\n\tat libcore.io.IoBridge.open(IoBridge.java:442)\n\t... 10 more\n\n\nTag: FileWriter.onPostExecute#124\nMsg: /storage/extSdCard/920 file/920 下载地址.txt.920.tmp: open failed: EACCES (Permission denied)\nStacktrace:\njava.io.FileNotFoundException: /storage/extSdCard/920 file/920 下载地址.txt.920.tmp: open failed: EACCES (Permission denied)\n\tat libcore.io.IoBridge.open(IoBridge.java:456)\n\tat java.io.FileOutputStream.<init>(FileOutputStream.java:87)\n\tat java.io.FileOutputStream.<init>(FileOutputStream.java:72)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:70)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\nCaused by: android.system.ErrnoException: open failed: EACCES (Permission denied)\n\tat libcore.io.Posix.open(Native Method)\n\tat libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)\n\tat libcore.io.IoBridge.open(IoBridge.java:442)\n\t... 10 more\n\n\nTag: FileWriter.onPostExecute#124\nMsg: Couldn't rename file /storage/sdcard0/1.txt to backup file /storage/sdcard0/1.txt.920.bak\nStacktrace:\njava.io.IOException: Couldn't rename file /storage/sdcard0/1.txt to backup file /storage/sdcard0/1.txt.920.bak\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:100)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\n\n\nTag: FileWriter.onPostExecute#124\nMsg: Couldn't rename file /storage/extSdCard/920 file/1.txt to backup file /storage/extSdCard/920 file/1.txt.920.bak\nStacktrace:\njava.io.IOException: Couldn't rename file /storage/extSdCard/920 file/1.txt to backup file /storage/extSdCard/920 file/1.txt.920.bak\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:100)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\n\n\nTag: FileWriter.onPostExecute#124\nMsg: Couldn't rename file /storage/extSdCard/920 file/1 to backup file /storage/extSdCard/920 file/1.920.bak\nStacktrace:\njava.io.IOException: Couldn't rename file /storage/extSdCard/920 file/1 to backup file /storage/extSdCard/920 file/1.920.bak\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:100)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\n\n\nTag: FileWriter.onPostExecute#124\nMsg: Couldn't rename file /storage/sdcard0/1 to backup file /storage/sdcard0/1.920.bak\nStacktrace:\njava.io.IOException: Couldn't rename file /storage/sdcard0/1 to backup file /storage/sdcard0/1.920.bak\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:100)\n\tat com.jecelyin.editor2.io.FileWriter.doInBackground(FileWriter.java:33)\n\tat android.os.AsyncTask$2.call(AsyncTask.java:288)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)\n\tat java.lang.Thread.run(Thread.java:818)\n\n\n"}}