(Throwable ex)
| 436 | } |
| 437 | |
| 438 | static boolean isOwnFault(Throwable ex) { |
| 439 | if (!Helper.isSupportedDevice()) |
| 440 | return false; |
| 441 | |
| 442 | if (ex instanceof OutOfMemoryError || |
| 443 | ex.getCause() instanceof OutOfMemoryError) |
| 444 | return false; |
| 445 | |
| 446 | if (ex instanceof RemoteException) |
| 447 | return false; |
| 448 | |
| 449 | if (ex instanceof UnsatisfiedLinkError || |
| 450 | ex.getCause() instanceof UnsatisfiedLinkError) |
| 451 | /* |
| 452 | java.lang.UnsatisfiedLinkError: dlopen failed: couldn't map "/mnt/asec/eu.faircode.email-1/base.apk!/lib/arm64-v8a/libsqlite3x.so" segment 0: Permission denied |
| 453 | at java.lang.Runtime.loadLibrary0(Runtime.java:1016) |
| 454 | at java.lang.System.loadLibrary(System.java:1657) |
| 455 | at io.requery.android.database.sqlite.SQLiteDatabase.<clinit>(SourceFile:91) |
| 456 | */ |
| 457 | return false; |
| 458 | |
| 459 | if (ex instanceof InternalError && |
| 460 | "Thread starting during runtime shutdown".equals(ex.getMessage())) |
| 461 | /* |
| 462 | java.lang.InternalError: Thread starting during runtime shutdown |
| 463 | at java.lang.Thread.nativeCreate(Native Method) |
| 464 | at java.lang.Thread.start(Thread.java:1063) |
| 465 | at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:921) |
| 466 | at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:989) |
| 467 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131) |
| 468 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) |
| 469 | at java.lang.Thread.run(Thread.java:818) |
| 470 | */ |
| 471 | return false; |
| 472 | |
| 473 | if ("android.app.RemoteServiceException".equals(ex.getClass().getName())) |
| 474 | /* |
| 475 | android.app.RemoteServiceException: Bad notification for startForeground: java.util.ConcurrentModificationException |
| 476 | at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2204) |
| 477 | */ |
| 478 | return false; |
| 479 | |
| 480 | if ("android.app.RemoteServiceException$CannotDeliverBroadcastException".equals(ex.getClass().getName())) |
| 481 | /* |
| 482 | android.app.RemoteServiceException$CannotDeliverBroadcastException: can't deliver broadcast |
| 483 | at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2180) |
| 484 | at android.app.ActivityThread.access$3000(ActivityThread.java:324) |
| 485 | at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2435) |
| 486 | at android.os.Handler.dispatchMessage(Handler.java:106) |
| 487 | */ |
| 488 | return false; |
| 489 | |
| 490 | if ("android.app.RemoteServiceException$CannotPostForegroundServiceNotificationException".equals(ex.getClass().getName())) |
| 491 | /* |
| 492 | android.app.RemoteServiceException$CannotPostForegroundServiceNotificationException: Bad notification for startForeground |
| 493 | at android.app.ActivityThread.throwRemoteServiceException(ActivityThread.java:2219) |
| 494 | at android.app.ActivityThread.-$$Nest$mthrowRemoteServiceException(Unknown Source:0) |
| 495 | at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2505) |
no test coverage detected