diff --git a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CrashlyticsController.java b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CrashlyticsController.java index 6f7f4ae4eb7..b55cb4ef56e 100644 --- a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CrashlyticsController.java +++ b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CrashlyticsController.java @@ -49,6 +49,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; class CrashlyticsController { @@ -241,6 +242,8 @@ public Task then(@Nullable Settings settings) throws Exception { try { // TODO(mrober): Don't block the main thread ever for on-demand fatals. Utils.awaitEvenIfOnMainThread(handleUncaughtExceptionTask); + } catch (TimeoutException e) { + Logger.getLogger().e("Cannot send reports. Timed out while fetching settings."); } catch (Exception e) { Logger.getLogger().e("Error handling uncaught exception", e); // Nothing to do in this case. diff --git a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/Utils.java b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/Utils.java index 0957a7a0054..e54542f9ad0 100644 --- a/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/Utils.java +++ b/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/Utils.java @@ -16,7 +16,6 @@ import static java.util.Objects.requireNonNull; -import android.os.Looper; import androidx.annotation.NonNull; import com.google.android.gms.tasks.Continuation; import com.google.android.gms.tasks.Task; @@ -122,11 +121,7 @@ public static T awaitEvenIfOnMainThread(Task task) return null; }); - if (Looper.getMainLooper() == Looper.myLooper()) { - latch.await(CrashlyticsCore.DEFAULT_MAIN_HANDLER_TIMEOUT_SEC, TimeUnit.SECONDS); - } else { - latch.await(); - } + latch.await(CrashlyticsCore.DEFAULT_MAIN_HANDLER_TIMEOUT_SEC, TimeUnit.SECONDS); if (task.isSuccessful()) { return task.getResult();