package com.google.common.util.concurrent; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FluentFuture; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public final class TimeoutFuture extends FluentFuture.TrustedFuture { private ListenableFuture delegateRef; private ScheduledFuture timer; /* JADX INFO: Access modifiers changed from: package-private */ public static ListenableFuture create(ListenableFuture listenableFuture, long j, TimeUnit timeUnit, ScheduledExecutorService scheduledExecutorService) { TimeoutFuture timeoutFuture = new TimeoutFuture(listenableFuture); Fire fire = new Fire(timeoutFuture); timeoutFuture.timer = scheduledExecutorService.schedule(fire, j, timeUnit); listenableFuture.addListener(fire, MoreExecutors.directExecutor()); return timeoutFuture; } private TimeoutFuture(ListenableFuture listenableFuture) { this.delegateRef = (ListenableFuture) Preconditions.checkNotNull(listenableFuture); } /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public static final class Fire implements Runnable { TimeoutFuture timeoutFutureRef; Fire(TimeoutFuture timeoutFuture) { this.timeoutFutureRef = timeoutFuture; } @Override // java.lang.Runnable public final void run() { ListenableFuture listenableFuture; TimeoutFuture timeoutFuture = this.timeoutFutureRef; if (timeoutFuture == null || (listenableFuture = ((TimeoutFuture) timeoutFuture).delegateRef) == null) { return; } this.timeoutFutureRef = null; if (!listenableFuture.isDone()) { try { ScheduledFuture scheduledFuture = ((TimeoutFuture) timeoutFuture).timer; ((TimeoutFuture) timeoutFuture).timer = null; String str = "Timed out"; if (scheduledFuture != null) { try { long abs = Math.abs(scheduledFuture.getDelay(TimeUnit.MILLISECONDS)); if (abs > 10) { StringBuilder sb = new StringBuilder(75); sb.append("Timed out (timeout delayed by "); sb.append(abs); sb.append(" ms after scheduled time)"); str = sb.toString(); } } catch (Throwable th) { timeoutFuture.setException(new TimeoutFutureException(str)); throw th; } } String valueOf = String.valueOf(str); String valueOf2 = String.valueOf(listenableFuture); StringBuilder sb2 = new StringBuilder(String.valueOf(valueOf).length() + 2 + String.valueOf(valueOf2).length()); sb2.append(valueOf); sb2.append(": "); sb2.append(valueOf2); timeoutFuture.setException(new TimeoutFutureException(sb2.toString())); return; } finally { listenableFuture.cancel(true); } } timeoutFuture.setFuture(listenableFuture); } } /* loaded from: classes2.dex */ static final class TimeoutFutureException extends TimeoutException { private TimeoutFutureException(String str) { super(str); } @Override // java.lang.Throwable public final Throwable fillInStackTrace() { synchronized (this) { setStackTrace(new StackTraceElement[0]); } return this; } } /* JADX INFO: Access modifiers changed from: protected */ @Override // com.google.common.util.concurrent.AbstractFuture public final String pendingToString() { ListenableFuture listenableFuture = this.delegateRef; ScheduledFuture scheduledFuture = this.timer; if (listenableFuture == null) { return null; } String valueOf = String.valueOf(listenableFuture); StringBuilder sb = new StringBuilder(String.valueOf(valueOf).length() + 14); sb.append("inputFuture=["); sb.append(valueOf); sb.append("]"); String obj = sb.toString(); if (scheduledFuture == null) { return obj; } long delay = scheduledFuture.getDelay(TimeUnit.MILLISECONDS); if (delay <= 0) { return obj; } String valueOf2 = String.valueOf(obj); StringBuilder sb2 = new StringBuilder(String.valueOf(valueOf2).length() + 43); sb2.append(valueOf2); sb2.append(", remaining delay=["); sb2.append(delay); sb2.append(" ms]"); return sb2.toString(); } /* JADX INFO: Access modifiers changed from: protected */ @Override // com.google.common.util.concurrent.AbstractFuture public final void afterDone() { maybePropagateCancellationTo(this.delegateRef); ScheduledFuture scheduledFuture = this.timer; if (scheduledFuture != null) { scheduledFuture.cancel(false); } this.delegateRef = null; this.timer = null; } }