From 3e5a18820aadd904f16f1654db6c4edf634ccd3d Mon Sep 17 00:00:00 2001 From: Michael Weghorn Date: Fri, 6 Mar 2020 09:01:16 +0100 Subject: android: LOKitThread::refresh: Add null check This fixes as another crash with Android Viewer that could (ocassionaly) be observed by * open some ODT document * press the "back button" while the document is still being loaded * repeat steps 1-2 until the crash occurs Corresponding 'adb logcat' output: I LibreOfficeMainActivity: onDestroy.. I LOKitTileProvider: Document destroyed: /storage/emulated/0/Download/simple.odt D LOKitThread: mTileProvider==null when calling updatePartPageRectangles D AndroidRuntime: Shutting down VM E AndroidRuntime: FATAL EXCEPTION: main E AndroidRuntime: Process: org.libreoffice, PID: 9190 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'boolean org.libreoffice.TileProvider.isSpreadsheet()' on a null object reference E AndroidRuntime: at org.libreoffice.LOKitThread.refresh(LOKitThread.java:159) E AndroidRuntime: at org.libreoffice.LOKitThread.access$000(LOKitThread.java:26) E AndroidRuntime: at org.libreoffice.LOKitThread$1.run(LOKitThread.java:239) E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:883) E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:100) E AndroidRuntime: at android.os.Looper.loop(Looper.java:214) E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356) E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Change-Id: I9787a13b3485a87a133f8b5e4e03bbf3618fb2f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90089 Tested-by: Jenkins Reviewed-by: Michael Weghorn --- android/source/src/java/org/libreoffice/LOKitThread.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'android/source') diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java index 2031b95e25f8..9c216b54fb1f 100644 --- a/android/source/src/java/org/libreoffice/LOKitThread.java +++ b/android/source/src/java/org/libreoffice/LOKitThread.java @@ -156,7 +156,7 @@ class LOKitThread extends Thread { mLayerClient.clearAndResetlayers(); redraw(); updatePartPageRectangles(); - if (mTileProvider.isSpreadsheet()) { + if (mTileProvider != null && mTileProvider.isSpreadsheet()) { updateCalcHeaders(); } } -- cgit v1.2.3