Unrecoverable sends will not be retried

This commit is contained in:
M66B 2021-01-12 10:37:54 +01:00
parent 968f0ce68a
commit 9c77f3ea43
1 changed files with 11 additions and 9 deletions

View File

@ -389,27 +389,29 @@ public class ServiceSend extends ServiceBase implements SharedPreferences.OnShar
Log.e(outbox.name, ex);
EntityLog.log(this, "Send " + Log.formatThrowable(ex, false));
boolean unrecoverable = (op.tries >= RETRY_MAX ||
ex instanceof OutOfMemoryError ||
ex instanceof MessageRemovedException ||
ex instanceof FileNotFoundException ||
(ex instanceof AuthenticationFailedException && !ConnectionHelper.isIoError(ex)) ||
ex instanceof SendFailedException ||
ex instanceof IllegalArgumentException);
db.operation().setOperationError(op.id, Log.formatThrowable(ex));
if (message != null) {
db.message().setMessageError(message.id, Log.formatThrowable(ex));
try {
int tries_left = (unrecoverable ? 0 : RETRY_MAX - op.tries);
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify("send:" + message.id, 1, getNotificationError(
MessageHelper.formatAddressesShort(message.to), ex, RETRY_MAX - op.tries).build());
MessageHelper.formatAddressesShort(message.to), ex, tries_left).build());
} catch (Throwable ex1) {
Log.w(ex1);
}
}
if (op.tries >= RETRY_MAX ||
ex instanceof OutOfMemoryError ||
ex instanceof MessageRemovedException ||
ex instanceof FileNotFoundException ||
(ex instanceof AuthenticationFailedException &&
!ConnectionHelper.isIoError(ex)) ||
ex instanceof SendFailedException ||
ex instanceof IllegalArgumentException) {
if (unrecoverable) {
Log.w("Unrecoverable");
db.operation().deleteOperation(op.id);
ops.remove(op);