package okhttp3.internal.cache; import io.sentry.protocol.SentryStackTrace; import java.io.Closeable; import java.io.EOFException; import java.io.File; import java.io.FileNotFoundException; import java.io.Flushable; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import kotlin.KotlinNothingValueException; import kotlin.Metadata; import kotlin.Unit; import kotlin.io.CloseableKt; import kotlin.jvm.functions.Function1; import kotlin.jvm.internal.Intrinsics; import kotlin.text.Regex; import kotlin.text.StringsKt; import kotlin.text.Typography; import okhttp3.internal.Util; import okhttp3.internal.cache.DiskLruCache; import okhttp3.internal.concurrent.Task; import okhttp3.internal.concurrent.TaskQueue; import okhttp3.internal.concurrent.TaskRunner; import okhttp3.internal.io.FileSystem; import okhttp3.internal.platform.Platform; import okio.BufferedSink; import okio.BufferedSource; import okio.ForwardingSource; import okio.Okio; import okio.Sink; import okio.Source; /* compiled from: DiskLruCache.kt */ @Metadata(bv = {1, 0, 3}, d1 = {"\u0000y\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\t\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\b\u0011\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0002\b\u000f\n\u0002\u0010\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0018\u0002\n\u0002\b\u0010\n\u0002\u0010)\n\u0002\b\u0007*\u0001\u0014\u0018\u0000 [2\u00020\u00012\u00020\u0002:\u0004[\\]^B7\b\u0000\u0012\u0006\u0010\u0003\u001a\u00020\u0004\u0012\u0006\u0010\u0005\u001a\u00020\u0006\u0012\u0006\u0010\u0007\u001a\u00020\b\u0012\u0006\u0010\t\u001a\u00020\b\u0012\u0006\u0010\n\u001a\u00020\u000b\u0012\u0006\u0010\f\u001a\u00020\r¢\u0006\u0002\u0010\u000eJ\b\u00108\u001a\u000209H\u0002J\b\u0010:\u001a\u000209H\u0016J!\u0010;\u001a\u0002092\n\u0010<\u001a\u00060=R\u00020\u00002\u0006\u0010>\u001a\u00020\u0010H\u0000¢\u0006\u0002\b?J\u0006\u0010@\u001a\u000209J \u0010A\u001a\b\u0018\u00010=R\u00020\u00002\u0006\u0010B\u001a\u00020(2\b\b\u0002\u0010C\u001a\u00020\u000bH\u0007J\u0006\u0010D\u001a\u000209J\b\u0010E\u001a\u000209H\u0016J\u0017\u0010F\u001a\b\u0018\u00010GR\u00020\u00002\u0006\u0010B\u001a\u00020(H\u0086\u0002J\u0006\u0010H\u001a\u000209J\u0006\u0010I\u001a\u00020\u0010J\b\u0010J\u001a\u00020\u0010H\u0002J\b\u0010K\u001a\u00020%H\u0002J\b\u0010L\u001a\u000209H\u0002J\b\u0010M\u001a\u000209H\u0002J\u0010\u0010N\u001a\u0002092\u0006\u0010O\u001a\u00020(H\u0002J\r\u0010P\u001a\u000209H\u0000¢\u0006\u0002\bQJ\u000e\u0010R\u001a\u00020\u00102\u0006\u0010B\u001a\u00020(J\u0019\u0010S\u001a\u00020\u00102\n\u0010T\u001a\u00060)R\u00020\u0000H\u0000¢\u0006\u0002\bUJ\b\u0010V\u001a\u00020\u0010H\u0002J\u0006\u00105\u001a\u00020\u000bJ\u0010\u0010W\u001a\f\u0012\b\u0012\u00060GR\u00020\u00000XJ\u0006\u0010Y\u001a\u000209J\u0010\u0010Z\u001a\u0002092\u0006\u0010B\u001a\u00020(H\u0002R\u000e\u0010\u0007\u001a\u00020\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u000f\u001a\u00020\u0010X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0011\u001a\u00020\u0012X\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\u0013\u001a\u00020\u0014X\u0082\u0004¢\u0006\u0004\n\u0002\u0010\u0015R\u001a\u0010\u0016\u001a\u00020\u0010X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0017\u0010\u0018\"\u0004\b\u0019\u0010\u001aR\u0011\u0010\u0005\u001a\u00020\u0006¢\u0006\b\n\u0000\u001a\u0004\b\u001b\u0010\u001cR\u0014\u0010\u0003\u001a\u00020\u0004X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u001d\u0010\u001eR\u000e\u0010\u001f\u001a\u00020\u0010X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010 \u001a\u00020\u0010X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010!\u001a\u00020\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\"\u001a\u00020\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010#\u001a\u00020\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010$\u001a\u0004\u0018\u00010%X\u0082\u000e¢\u0006\u0002\n\u0000R$\u0010&\u001a\u0012\u0012\u0004\u0012\u00020(\u0012\b\u0012\u00060)R\u00020\u00000'X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b*\u0010+R&\u0010\n\u001a\u00020\u000b2\u0006\u0010,\u001a\u00020\u000b8F@FX\u0086\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b-\u0010.\"\u0004\b/\u00100R\u000e\u00101\u001a\u00020\u0010X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u00102\u001a\u00020\u0010X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u00103\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u00104\u001a\u00020\bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u00105\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\t\u001a\u00020\bX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b6\u00107¨\u0006_"}, d2 = {"Lokhttp3/internal/cache/DiskLruCache;", "Ljava/io/Closeable;", "Ljava/io/Flushable;", "fileSystem", "Lokhttp3/internal/io/FileSystem;", "directory", "Ljava/io/File;", "appVersion", "", "valueCount", "maxSize", "", "taskRunner", "Lokhttp3/internal/concurrent/TaskRunner;", "(Lokhttp3/internal/io/FileSystem;Ljava/io/File;IIJLokhttp3/internal/concurrent/TaskRunner;)V", "civilizedFileSystem", "", "cleanupQueue", "Lokhttp3/internal/concurrent/TaskQueue;", "cleanupTask", "okhttp3/internal/cache/DiskLruCache$cleanupTask$1", "Lokhttp3/internal/cache/DiskLruCache$cleanupTask$1;", "closed", "getClosed$okhttp", "()Z", "setClosed$okhttp", "(Z)V", "getDirectory", "()Ljava/io/File;", "getFileSystem$okhttp", "()Lokhttp3/internal/io/FileSystem;", "hasJournalErrors", "initialized", "journalFile", "journalFileBackup", "journalFileTmp", "journalWriter", "Lokio/BufferedSink;", "lruEntries", "Ljava/util/LinkedHashMap;", "", "Lokhttp3/internal/cache/DiskLruCache$Entry;", "getLruEntries$okhttp", "()Ljava/util/LinkedHashMap;", "value", "getMaxSize", "()J", "setMaxSize", "(J)V", "mostRecentRebuildFailed", "mostRecentTrimFailed", "nextSequenceNumber", "redundantOpCount", "size", "getValueCount$okhttp", "()I", "checkNotClosed", "", "close", "completeEdit", "editor", "Lokhttp3/internal/cache/DiskLruCache$Editor;", "success", "completeEdit$okhttp", "delete", "edit", "key", "expectedSequenceNumber", "evictAll", "flush", "get", "Lokhttp3/internal/cache/DiskLruCache$Snapshot;", "initialize", "isClosed", "journalRebuildRequired", "newJournalWriter", "processJournal", "readJournal", "readJournalLine", "line", "rebuildJournal", "rebuildJournal$okhttp", "remove", "removeEntry", "entry", "removeEntry$okhttp", "removeOldestEntry", "snapshots", "", "trimToSize", "validateKey", "Companion", "Editor", "Entry", "Snapshot", "okhttp"}, k = 1, mv = {1, 4, 0}) /* loaded from: classes3.dex */ public final class DiskLruCache implements Closeable, Flushable { private final int appVersion; private boolean civilizedFileSystem; private final TaskQueue cleanupQueue; private final DiskLruCache$cleanupTask$1 cleanupTask; private boolean closed; private final File directory; private final FileSystem fileSystem; private boolean hasJournalErrors; private boolean initialized; private final File journalFile; private final File journalFileBackup; private final File journalFileTmp; private BufferedSink journalWriter; private final LinkedHashMap lruEntries; private long maxSize; private boolean mostRecentRebuildFailed; private boolean mostRecentTrimFailed; private long nextSequenceNumber; private int redundantOpCount; private long size; private final int valueCount; public static final String JOURNAL_FILE = "journal"; public static final String JOURNAL_FILE_TEMP = "journal.tmp"; public static final String JOURNAL_FILE_BACKUP = "journal.bkp"; public static final String MAGIC = "libcore.io.DiskLruCache"; public static final String VERSION_1 = "1"; public static final long ANY_SEQUENCE_NUMBER = -1; public static final Regex LEGAL_KEY_PATTERN = new Regex("[a-z0-9_-]{1,120}"); public static final String CLEAN = "CLEAN"; public static final String DIRTY = "DIRTY"; public static final String REMOVE = "REMOVE"; public static final String READ = "READ"; public final Editor edit(String str) throws IOException { return edit$default(this, str, 0L, 2, null); } /* renamed from: getClosed$okhttp, reason: from getter */ public final boolean getClosed() { return this.closed; } public final File getDirectory() { return this.directory; } /* renamed from: getFileSystem$okhttp, reason: from getter */ public final FileSystem getFileSystem() { return this.fileSystem; } public final LinkedHashMap getLruEntries$okhttp() { return this.lruEntries; } /* renamed from: getValueCount$okhttp, reason: from getter */ public final int getValueCount() { return this.valueCount; } public final void setClosed$okhttp(boolean z) { this.closed = z; } /* JADX WARN: Type inference failed for: r5v3, types: [okhttp3.internal.cache.DiskLruCache$cleanupTask$1] */ public DiskLruCache(FileSystem fileSystem, File directory, int i, int i2, long j, TaskRunner taskRunner) { Intrinsics.checkNotNullParameter(fileSystem, "fileSystem"); Intrinsics.checkNotNullParameter(directory, "directory"); Intrinsics.checkNotNullParameter(taskRunner, "taskRunner"); this.fileSystem = fileSystem; this.directory = directory; this.appVersion = i; this.valueCount = i2; this.maxSize = j; this.lruEntries = new LinkedHashMap<>(0, 0.75f, true); this.cleanupQueue = taskRunner.newQueue(); final String str = Util.okHttpName + " Cache"; this.cleanupTask = new Task(str) { // from class: okhttp3.internal.cache.DiskLruCache$cleanupTask$1 @Override // okhttp3.internal.concurrent.Task public long runOnce() { boolean z; boolean journalRebuildRequired; synchronized (DiskLruCache.this) { z = DiskLruCache.this.initialized; if (!z || DiskLruCache.this.getClosed()) { return -1L; } try { DiskLruCache.this.trimToSize(); } catch (IOException unused) { DiskLruCache.this.mostRecentTrimFailed = true; } try { journalRebuildRequired = DiskLruCache.this.journalRebuildRequired(); if (journalRebuildRequired) { DiskLruCache.this.rebuildJournal$okhttp(); DiskLruCache.this.redundantOpCount = 0; } } catch (IOException unused2) { DiskLruCache.this.mostRecentRebuildFailed = true; DiskLruCache.this.journalWriter = Okio.buffer(Okio.blackhole()); } return -1L; } } }; if (!(j > 0)) { throw new IllegalArgumentException("maxSize <= 0".toString()); } if (!(i2 > 0)) { throw new IllegalArgumentException("valueCount <= 0".toString()); } this.journalFile = new File(directory, JOURNAL_FILE); this.journalFileTmp = new File(directory, JOURNAL_FILE_TEMP); this.journalFileBackup = new File(directory, JOURNAL_FILE_BACKUP); } public final synchronized long getMaxSize() { return this.maxSize; } public final synchronized void setMaxSize(long j) { this.maxSize = j; if (this.initialized) { TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); } } private final void readJournal() throws IOException { BufferedSource buffer = Okio.buffer(this.fileSystem.source(this.journalFile)); try { BufferedSource bufferedSource = buffer; String readUtf8LineStrict = bufferedSource.readUtf8LineStrict(); String readUtf8LineStrict2 = bufferedSource.readUtf8LineStrict(); String readUtf8LineStrict3 = bufferedSource.readUtf8LineStrict(); String readUtf8LineStrict4 = bufferedSource.readUtf8LineStrict(); String readUtf8LineStrict5 = bufferedSource.readUtf8LineStrict(); if ((!Intrinsics.areEqual(MAGIC, readUtf8LineStrict)) || (!Intrinsics.areEqual(VERSION_1, readUtf8LineStrict2)) || (!Intrinsics.areEqual(String.valueOf(this.appVersion), readUtf8LineStrict3)) || (!Intrinsics.areEqual(String.valueOf(this.valueCount), readUtf8LineStrict4)) || readUtf8LineStrict5.length() > 0) { throw new IOException("unexpected journal header: [" + readUtf8LineStrict + ", " + readUtf8LineStrict2 + ", " + readUtf8LineStrict4 + ", " + readUtf8LineStrict5 + ']'); } int i = 0; while (true) { try { readJournalLine(bufferedSource.readUtf8LineStrict()); i++; } catch (EOFException unused) { this.redundantOpCount = i - this.lruEntries.size(); if (!bufferedSource.exhausted()) { rebuildJournal$okhttp(); } else { this.journalWriter = newJournalWriter(); } Unit unit = Unit.INSTANCE; CloseableKt.closeFinally(buffer, null); return; } } } finally { } } private final BufferedSink newJournalWriter() throws FileNotFoundException { return Okio.buffer(new FaultHidingSink(this.fileSystem.appendingSink(this.journalFile), new Function1() { // from class: okhttp3.internal.cache.DiskLruCache$newJournalWriter$faultHidingSink$1 /* JADX INFO: Access modifiers changed from: package-private */ { super(1); } @Override // kotlin.jvm.functions.Function1 public /* bridge */ /* synthetic */ Unit invoke(IOException iOException) { invoke2(iOException); return Unit.INSTANCE; } /* renamed from: invoke, reason: avoid collision after fix types in other method */ public final void invoke2(IOException it) { Intrinsics.checkNotNullParameter(it, "it"); DiskLruCache diskLruCache = DiskLruCache.this; if (!Util.assertionsEnabled || Thread.holdsLock(diskLruCache)) { DiskLruCache.this.hasJournalErrors = true; return; } StringBuilder sb = new StringBuilder("Thread "); Thread currentThread = Thread.currentThread(); Intrinsics.checkNotNullExpressionValue(currentThread, "Thread.currentThread()"); throw new AssertionError(sb.append(currentThread.getName()).append(" MUST hold lock on ").append(diskLruCache).toString()); } })); } private final void readJournalLine(String line) throws IOException { String substring; String str = line; int indexOf$default = StringsKt.indexOf$default((CharSequence) str, ' ', 0, false, 6, (Object) null); if (indexOf$default == -1) { throw new IOException("unexpected journal line: " + line); } int i = indexOf$default + 1; int indexOf$default2 = StringsKt.indexOf$default((CharSequence) str, ' ', i, false, 4, (Object) null); if (indexOf$default2 == -1) { if (line != null) { substring = line.substring(i); Intrinsics.checkNotNullExpressionValue(substring, "(this as java.lang.String).substring(startIndex)"); String str2 = REMOVE; if (indexOf$default == str2.length() && StringsKt.startsWith$default(line, str2, false, 2, (Object) null)) { this.lruEntries.remove(substring); return; } } else { throw new NullPointerException("null cannot be cast to non-null type java.lang.String"); } } else if (line != null) { substring = line.substring(i, indexOf$default2); Intrinsics.checkNotNullExpressionValue(substring, "(this as java.lang.Strin…ing(startIndex, endIndex)"); } else { throw new NullPointerException("null cannot be cast to non-null type java.lang.String"); } Entry entry = this.lruEntries.get(substring); if (entry == null) { entry = new Entry(this, substring); this.lruEntries.put(substring, entry); } if (indexOf$default2 != -1) { String str3 = CLEAN; if (indexOf$default == str3.length() && StringsKt.startsWith$default(line, str3, false, 2, (Object) null)) { int i2 = indexOf$default2 + 1; if (line != null) { String substring2 = line.substring(i2); Intrinsics.checkNotNullExpressionValue(substring2, "(this as java.lang.String).substring(startIndex)"); List split$default = StringsKt.split$default((CharSequence) substring2, new char[]{' '}, false, 0, 6, (Object) null); entry.setReadable$okhttp(true); entry.setCurrentEditor$okhttp(null); entry.setLengths$okhttp(split$default); return; } throw new NullPointerException("null cannot be cast to non-null type java.lang.String"); } } if (indexOf$default2 == -1) { String str4 = DIRTY; if (indexOf$default == str4.length() && StringsKt.startsWith$default(line, str4, false, 2, (Object) null)) { entry.setCurrentEditor$okhttp(new Editor(this, entry)); return; } } if (indexOf$default2 == -1) { String str5 = READ; if (indexOf$default == str5.length() && StringsKt.startsWith$default(line, str5, false, 2, (Object) null)) { return; } } throw new IOException("unexpected journal line: " + line); } private final void processJournal() throws IOException { this.fileSystem.delete(this.journalFileTmp); Iterator it = this.lruEntries.values().iterator(); while (it.hasNext()) { Entry next = it.next(); Intrinsics.checkNotNullExpressionValue(next, "i.next()"); Entry entry = next; int i = 0; if (entry.getCurrentEditor() == null) { int i2 = this.valueCount; while (i < i2) { this.size += entry.getLengths()[i]; i++; } } else { entry.setCurrentEditor$okhttp(null); int i3 = this.valueCount; while (i < i3) { this.fileSystem.delete(entry.getCleanFiles$okhttp().get(i)); this.fileSystem.delete(entry.getDirtyFiles$okhttp().get(i)); i++; } it.remove(); } } } public final synchronized void rebuildJournal$okhttp() throws IOException { BufferedSink bufferedSink = this.journalWriter; if (bufferedSink != null) { bufferedSink.close(); } BufferedSink buffer = Okio.buffer(this.fileSystem.sink(this.journalFileTmp)); try { BufferedSink bufferedSink2 = buffer; bufferedSink2.writeUtf8(MAGIC).writeByte(10); bufferedSink2.writeUtf8(VERSION_1).writeByte(10); bufferedSink2.writeDecimalLong(this.appVersion).writeByte(10); bufferedSink2.writeDecimalLong(this.valueCount).writeByte(10); bufferedSink2.writeByte(10); for (Entry entry : this.lruEntries.values()) { if (entry.getCurrentEditor() != null) { bufferedSink2.writeUtf8(DIRTY).writeByte(32); bufferedSink2.writeUtf8(entry.getKey()); bufferedSink2.writeByte(10); } else { bufferedSink2.writeUtf8(CLEAN).writeByte(32); bufferedSink2.writeUtf8(entry.getKey()); entry.writeLengths$okhttp(bufferedSink2); bufferedSink2.writeByte(10); } } Unit unit = Unit.INSTANCE; CloseableKt.closeFinally(buffer, null); if (this.fileSystem.exists(this.journalFile)) { this.fileSystem.rename(this.journalFile, this.journalFileBackup); } this.fileSystem.rename(this.journalFileTmp, this.journalFile); this.fileSystem.delete(this.journalFileBackup); this.journalWriter = newJournalWriter(); this.hasJournalErrors = false; this.mostRecentRebuildFailed = false; } finally { } } public final synchronized Snapshot get(String key) throws IOException { Intrinsics.checkNotNullParameter(key, "key"); initialize(); checkNotClosed(); validateKey(key); Entry entry = this.lruEntries.get(key); if (entry == null) { return null; } Intrinsics.checkNotNullExpressionValue(entry, "lruEntries[key] ?: return null"); Snapshot snapshot$okhttp = entry.snapshot$okhttp(); if (snapshot$okhttp == null) { return null; } this.redundantOpCount++; BufferedSink bufferedSink = this.journalWriter; Intrinsics.checkNotNull(bufferedSink); bufferedSink.writeUtf8(READ).writeByte(32).writeUtf8(key).writeByte(10); if (journalRebuildRequired()) { TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); } return snapshot$okhttp; } public static /* synthetic */ Editor edit$default(DiskLruCache diskLruCache, String str, long j, int i, Object obj) throws IOException { if ((i & 2) != 0) { j = ANY_SEQUENCE_NUMBER; } return diskLruCache.edit(str, j); } public final synchronized Editor edit(String key, long expectedSequenceNumber) throws IOException { Intrinsics.checkNotNullParameter(key, "key"); initialize(); checkNotClosed(); validateKey(key); Entry entry = this.lruEntries.get(key); if (expectedSequenceNumber != ANY_SEQUENCE_NUMBER && (entry == null || entry.getSequenceNumber() != expectedSequenceNumber)) { return null; } if ((entry != null ? entry.getCurrentEditor() : null) != null) { return null; } if (entry != null && entry.getLockingSourceCount() != 0) { return null; } if (!this.mostRecentTrimFailed && !this.mostRecentRebuildFailed) { BufferedSink bufferedSink = this.journalWriter; Intrinsics.checkNotNull(bufferedSink); bufferedSink.writeUtf8(DIRTY).writeByte(32).writeUtf8(key).writeByte(10); bufferedSink.flush(); if (this.hasJournalErrors) { return null; } if (entry == null) { entry = new Entry(this, key); this.lruEntries.put(key, entry); } Editor editor = new Editor(this, entry); entry.setCurrentEditor$okhttp(editor); return editor; } TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); return null; } public final synchronized long size() throws IOException { initialize(); return this.size; } public final synchronized void completeEdit$okhttp(Editor editor, boolean success) throws IOException { Intrinsics.checkNotNullParameter(editor, "editor"); Entry entry = editor.getEntry(); if (!Intrinsics.areEqual(entry.getCurrentEditor(), editor)) { throw new IllegalStateException("Check failed.".toString()); } if (success && !entry.getReadable()) { int i = this.valueCount; for (int i2 = 0; i2 < i; i2++) { boolean[] written = editor.getWritten(); Intrinsics.checkNotNull(written); if (!written[i2]) { editor.abort(); throw new IllegalStateException("Newly created entry didn't create value for index " + i2); } if (!this.fileSystem.exists(entry.getDirtyFiles$okhttp().get(i2))) { editor.abort(); return; } } } int i3 = this.valueCount; for (int i4 = 0; i4 < i3; i4++) { File file = entry.getDirtyFiles$okhttp().get(i4); if (success && !entry.getZombie()) { if (this.fileSystem.exists(file)) { File file2 = entry.getCleanFiles$okhttp().get(i4); this.fileSystem.rename(file, file2); long j = entry.getLengths()[i4]; long size = this.fileSystem.size(file2); entry.getLengths()[i4] = size; this.size = (this.size - j) + size; } } else { this.fileSystem.delete(file); } } entry.setCurrentEditor$okhttp(null); if (entry.getZombie()) { removeEntry$okhttp(entry); return; } this.redundantOpCount++; BufferedSink bufferedSink = this.journalWriter; Intrinsics.checkNotNull(bufferedSink); if (!entry.getReadable() && !success) { this.lruEntries.remove(entry.getKey()); bufferedSink.writeUtf8(REMOVE).writeByte(32); bufferedSink.writeUtf8(entry.getKey()); bufferedSink.writeByte(10); bufferedSink.flush(); if (this.size <= this.maxSize || journalRebuildRequired()) { TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); } } entry.setReadable$okhttp(true); bufferedSink.writeUtf8(CLEAN).writeByte(32); bufferedSink.writeUtf8(entry.getKey()); entry.writeLengths$okhttp(bufferedSink); bufferedSink.writeByte(10); if (success) { long j2 = this.nextSequenceNumber; this.nextSequenceNumber = 1 + j2; entry.setSequenceNumber$okhttp(j2); } bufferedSink.flush(); if (this.size <= this.maxSize) { } TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); } /* JADX INFO: Access modifiers changed from: private */ public final boolean journalRebuildRequired() { int i = this.redundantOpCount; return i >= 2000 && i >= this.lruEntries.size(); } public final synchronized boolean remove(String key) throws IOException { Intrinsics.checkNotNullParameter(key, "key"); initialize(); checkNotClosed(); validateKey(key); Entry entry = this.lruEntries.get(key); if (entry == null) { return false; } Intrinsics.checkNotNullExpressionValue(entry, "lruEntries[key] ?: return false"); boolean removeEntry$okhttp = removeEntry$okhttp(entry); if (removeEntry$okhttp && this.size <= this.maxSize) { this.mostRecentTrimFailed = false; } return removeEntry$okhttp; } public final boolean removeEntry$okhttp(Entry entry) throws IOException { BufferedSink bufferedSink; Intrinsics.checkNotNullParameter(entry, "entry"); if (!this.civilizedFileSystem) { if (entry.getLockingSourceCount() > 0 && (bufferedSink = this.journalWriter) != null) { bufferedSink.writeUtf8(DIRTY); bufferedSink.writeByte(32); bufferedSink.writeUtf8(entry.getKey()); bufferedSink.writeByte(10); bufferedSink.flush(); } if (entry.getLockingSourceCount() > 0 || entry.getCurrentEditor() != null) { entry.setZombie$okhttp(true); return true; } } Editor currentEditor = entry.getCurrentEditor(); if (currentEditor != null) { currentEditor.detach$okhttp(); } int i = this.valueCount; for (int i2 = 0; i2 < i; i2++) { this.fileSystem.delete(entry.getCleanFiles$okhttp().get(i2)); this.size -= entry.getLengths()[i2]; entry.getLengths()[i2] = 0; } this.redundantOpCount++; BufferedSink bufferedSink2 = this.journalWriter; if (bufferedSink2 != null) { bufferedSink2.writeUtf8(REMOVE); bufferedSink2.writeByte(32); bufferedSink2.writeUtf8(entry.getKey()); bufferedSink2.writeByte(10); } this.lruEntries.remove(entry.getKey()); if (journalRebuildRequired()) { TaskQueue.schedule$default(this.cleanupQueue, this.cleanupTask, 0L, 2, null); } return true; } private final synchronized void checkNotClosed() { if (!(!this.closed)) { throw new IllegalStateException("cache is closed".toString()); } } @Override // java.io.Flushable public synchronized void flush() throws IOException { if (this.initialized) { checkNotClosed(); trimToSize(); BufferedSink bufferedSink = this.journalWriter; Intrinsics.checkNotNull(bufferedSink); bufferedSink.flush(); } } public final synchronized boolean isClosed() { return this.closed; } @Override // java.io.Closeable, java.lang.AutoCloseable public synchronized void close() throws IOException { Editor currentEditor; if (this.initialized && !this.closed) { Collection values = this.lruEntries.values(); Intrinsics.checkNotNullExpressionValue(values, "lruEntries.values"); Object[] array = values.toArray(new Entry[0]); if (array != null) { for (Entry entry : (Entry[]) array) { if (entry.getCurrentEditor() != null && (currentEditor = entry.getCurrentEditor()) != null) { currentEditor.detach$okhttp(); } } trimToSize(); BufferedSink bufferedSink = this.journalWriter; Intrinsics.checkNotNull(bufferedSink); bufferedSink.close(); this.journalWriter = null; this.closed = true; return; } throw new NullPointerException("null cannot be cast to non-null type kotlin.Array"); } this.closed = true; } public final void trimToSize() throws IOException { while (this.size > this.maxSize) { if (!removeOldestEntry()) { return; } } this.mostRecentTrimFailed = false; } private final boolean removeOldestEntry() { for (Entry toEvict : this.lruEntries.values()) { if (!toEvict.getZombie()) { Intrinsics.checkNotNullExpressionValue(toEvict, "toEvict"); removeEntry$okhttp(toEvict); return true; } } return false; } public final void delete() throws IOException { close(); this.fileSystem.deleteContents(this.directory); } public final synchronized void evictAll() throws IOException { initialize(); Collection values = this.lruEntries.values(); Intrinsics.checkNotNullExpressionValue(values, "lruEntries.values"); Object[] array = values.toArray(new Entry[0]); if (array == null) { throw new NullPointerException("null cannot be cast to non-null type kotlin.Array"); } for (Entry entry : (Entry[]) array) { Intrinsics.checkNotNullExpressionValue(entry, "entry"); removeEntry$okhttp(entry); } this.mostRecentTrimFailed = false; } private final void validateKey(String key) { if (!LEGAL_KEY_PATTERN.matches(key)) { throw new IllegalArgumentException(("keys must match regex [a-z0-9_-]{1,120}: \"" + key + Typography.quote).toString()); } } public final synchronized Iterator snapshots() throws IOException { initialize(); return new DiskLruCache$snapshots$1(this); } /* compiled from: DiskLruCache.kt */ @Metadata(bv = {1, 0, 3}, d1 = {"\u0000B\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\t\n\u0000\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0016\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0002\b\u0086\u0004\u0018\u00002\u00020\u0001B-\b\u0000\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005\u0012\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\b0\u0007\u0012\u0006\u0010\t\u001a\u00020\n¢\u0006\u0002\u0010\u000bJ\b\u0010\f\u001a\u00020\rH\u0016J\f\u0010\u000e\u001a\b\u0018\u00010\u000fR\u00020\u0010J\u000e\u0010\u0011\u001a\u00020\u00052\u0006\u0010\u0012\u001a\u00020\u0013J\u000e\u0010\u0014\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u0013J\u0006\u0010\u0002\u001a\u00020\u0003R\u000e\u0010\u0002\u001a\u00020\u0003X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\t\u001a\u00020\nX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\b0\u0007X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u0015"}, d2 = {"Lokhttp3/internal/cache/DiskLruCache$Snapshot;", "Ljava/io/Closeable;", "key", "", "sequenceNumber", "", "sources", "", "Lokio/Source;", "lengths", "", "(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;JLjava/util/List;[J)V", "close", "", "edit", "Lokhttp3/internal/cache/DiskLruCache$Editor;", "Lokhttp3/internal/cache/DiskLruCache;", "getLength", "index", "", "getSource", "okhttp"}, k = 1, mv = {1, 4, 0}) /* loaded from: classes3.dex */ public final class Snapshot implements Closeable { private final String key; private final long[] lengths; private final long sequenceNumber; private final List sources; final /* synthetic */ DiskLruCache this$0; /* renamed from: key, reason: from getter */ public final String getKey() { return this.key; } /* JADX WARN: Multi-variable type inference failed */ public Snapshot(DiskLruCache diskLruCache, String key, long j, List sources, long[] lengths) { Intrinsics.checkNotNullParameter(key, "key"); Intrinsics.checkNotNullParameter(sources, "sources"); Intrinsics.checkNotNullParameter(lengths, "lengths"); this.this$0 = diskLruCache; this.key = key; this.sequenceNumber = j; this.sources = sources; this.lengths = lengths; } public final Editor edit() throws IOException { return this.this$0.edit(this.key, this.sequenceNumber); } public final Source getSource(int index) { return this.sources.get(index); } public final long getLength(int index) { return this.lengths[index]; } @Override // java.io.Closeable, java.lang.AutoCloseable public void close() { Iterator it = this.sources.iterator(); while (it.hasNext()) { Util.closeQuietly(it.next()); } } } /* compiled from: DiskLruCache.kt */ @Metadata(bv = {1, 0, 3}, d1 = {"\u0000@\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010\u0018\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\b\u0086\u0004\u0018\u00002\u00020\u0001B\u0013\b\u0000\u0012\n\u0010\u0002\u001a\u00060\u0003R\u00020\u0004¢\u0006\u0002\u0010\u0005J\u0006\u0010\u000e\u001a\u00020\u000fJ\u0006\u0010\u0010\u001a\u00020\u000fJ\r\u0010\u0011\u001a\u00020\u000fH\u0000¢\u0006\u0002\b\u0012J\u000e\u0010\u0013\u001a\u00020\u00142\u0006\u0010\u0015\u001a\u00020\u0016J\u0010\u0010\u0017\u001a\u0004\u0018\u00010\u00182\u0006\u0010\u0015\u001a\u00020\u0016R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u0018\u0010\u0002\u001a\u00060\u0003R\u00020\u0004X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\b\u0010\tR\u0016\u0010\n\u001a\u0004\u0018\u00010\u000bX\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\f\u0010\r¨\u0006\u0019"}, d2 = {"Lokhttp3/internal/cache/DiskLruCache$Editor;", "", "entry", "Lokhttp3/internal/cache/DiskLruCache$Entry;", "Lokhttp3/internal/cache/DiskLruCache;", "(Lokhttp3/internal/cache/DiskLruCache;Lokhttp3/internal/cache/DiskLruCache$Entry;)V", "done", "", "getEntry$okhttp", "()Lokhttp3/internal/cache/DiskLruCache$Entry;", "written", "", "getWritten$okhttp", "()[Z", "abort", "", "commit", "detach", "detach$okhttp", "newSink", "Lokio/Sink;", "index", "", "newSource", "Lokio/Source;", "okhttp"}, k = 1, mv = {1, 4, 0}) /* loaded from: classes3.dex */ public final class Editor { private boolean done; private final Entry entry; final /* synthetic */ DiskLruCache this$0; private final boolean[] written; /* renamed from: getEntry$okhttp, reason: from getter */ public final Entry getEntry() { return this.entry; } /* renamed from: getWritten$okhttp, reason: from getter */ public final boolean[] getWritten() { return this.written; } public Editor(DiskLruCache diskLruCache, Entry entry) { Intrinsics.checkNotNullParameter(entry, "entry"); this.this$0 = diskLruCache; this.entry = entry; this.written = entry.getReadable() ? null : new boolean[diskLruCache.getValueCount()]; } public final void detach$okhttp() { if (Intrinsics.areEqual(this.entry.getCurrentEditor(), this)) { if (this.this$0.civilizedFileSystem) { this.this$0.completeEdit$okhttp(this, false); } else { this.entry.setZombie$okhttp(true); } } } public final Source newSource(int index) { synchronized (this.this$0) { if (!(!this.done)) { throw new IllegalStateException("Check failed.".toString()); } Source source = null; if (this.entry.getReadable()) { Editor editor = this; if (!(!Intrinsics.areEqual(this.entry.getCurrentEditor(), this)) && !this.entry.getZombie()) { try { source = this.this$0.getFileSystem().source(this.entry.getCleanFiles$okhttp().get(index)); } catch (FileNotFoundException unused) { } return source; } } return null; } } public final Sink newSink(final int index) { synchronized (this.this$0) { if (!(!this.done)) { throw new IllegalStateException("Check failed.".toString()); } Editor editor = this; if (!Intrinsics.areEqual(this.entry.getCurrentEditor(), this)) { return Okio.blackhole(); } if (!this.entry.getReadable()) { boolean[] zArr = this.written; Intrinsics.checkNotNull(zArr); zArr[index] = true; } try { return new FaultHidingSink(this.this$0.getFileSystem().sink(this.entry.getDirtyFiles$okhttp().get(index)), new Function1() { // from class: okhttp3.internal.cache.DiskLruCache$Editor$newSink$$inlined$synchronized$lambda$1 /* JADX INFO: Access modifiers changed from: package-private */ /* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */ { super(1); } @Override // kotlin.jvm.functions.Function1 public /* bridge */ /* synthetic */ Unit invoke(IOException iOException) { invoke2(iOException); return Unit.INSTANCE; } /* renamed from: invoke, reason: avoid collision after fix types in other method */ public final void invoke2(IOException it) { Intrinsics.checkNotNullParameter(it, "it"); synchronized (DiskLruCache.Editor.this.this$0) { DiskLruCache.Editor.this.detach$okhttp(); Unit unit = Unit.INSTANCE; } } }); } catch (FileNotFoundException unused) { return Okio.blackhole(); } } } public final void commit() throws IOException { synchronized (this.this$0) { if (!(!this.done)) { throw new IllegalStateException("Check failed.".toString()); } Editor editor = this; if (Intrinsics.areEqual(this.entry.getCurrentEditor(), this)) { this.this$0.completeEdit$okhttp(this, true); } this.done = true; Unit unit = Unit.INSTANCE; } } public final void abort() throws IOException { synchronized (this.this$0) { if (!(!this.done)) { throw new IllegalStateException("Check failed.".toString()); } Editor editor = this; if (Intrinsics.areEqual(this.entry.getCurrentEditor(), this)) { this.this$0.completeEdit$okhttp(this, false); } this.done = true; Unit unit = Unit.INSTANCE; } } } /* compiled from: DiskLruCache.kt */ @Metadata(bv = {1, 0, 3}, d1 = {"\u0000v\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0010!\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\t\n\u0002\u0010\u0016\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u0005\n\u0002\u0010\t\n\u0002\b\b\n\u0002\u0010\u0001\n\u0000\n\u0002\u0010 \n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0080\u0004\u0018\u00002\u00020\u0001B\u000f\b\u0000\u0012\u0006\u0010\u0002\u001a\u00020\u0003¢\u0006\u0002\u0010\u0004J\u0016\u0010.\u001a\u00020/2\f\u00100\u001a\b\u0012\u0004\u0012\u00020\u000301H\u0002J\u0010\u00102\u001a\u0002032\u0006\u00104\u001a\u00020\u001aH\u0002J\u001b\u00105\u001a\u0002062\f\u00100\u001a\b\u0012\u0004\u0012\u00020\u000301H\u0000¢\u0006\u0002\b7J\u0013\u00108\u001a\b\u0018\u000109R\u00020\fH\u0000¢\u0006\u0002\b:J\u0015\u0010;\u001a\u0002062\u0006\u0010<\u001a\u00020=H\u0000¢\u0006\u0002\b>R\u001a\u0010\u0005\u001a\b\u0012\u0004\u0012\u00020\u00070\u0006X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\b\u0010\tR \u0010\n\u001a\b\u0018\u00010\u000bR\u00020\fX\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\r\u0010\u000e\"\u0004\b\u000f\u0010\u0010R\u001a\u0010\u0011\u001a\b\u0012\u0004\u0012\u00020\u00070\u0006X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u0012\u0010\tR\u0014\u0010\u0002\u001a\u00020\u0003X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u0013\u0010\u0014R\u0014\u0010\u0015\u001a\u00020\u0016X\u0080\u0004¢\u0006\b\n\u0000\u001a\u0004\b\u0017\u0010\u0018R\u001a\u0010\u0019\u001a\u00020\u001aX\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u001b\u0010\u001c\"\u0004\b\u001d\u0010\u001eR\u001a\u0010\u001f\u001a\u00020 X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b!\u0010\"\"\u0004\b#\u0010$R\u001a\u0010%\u001a\u00020&X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b'\u0010(\"\u0004\b)\u0010*R\u001a\u0010+\u001a\u00020 X\u0080\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b,\u0010\"\"\u0004\b-\u0010$¨\u0006?"}, d2 = {"Lokhttp3/internal/cache/DiskLruCache$Entry;", "", "key", "", "(Lokhttp3/internal/cache/DiskLruCache;Ljava/lang/String;)V", "cleanFiles", "", "Ljava/io/File;", "getCleanFiles$okhttp", "()Ljava/util/List;", "currentEditor", "Lokhttp3/internal/cache/DiskLruCache$Editor;", "Lokhttp3/internal/cache/DiskLruCache;", "getCurrentEditor$okhttp", "()Lokhttp3/internal/cache/DiskLruCache$Editor;", "setCurrentEditor$okhttp", "(Lokhttp3/internal/cache/DiskLruCache$Editor;)V", "dirtyFiles", "getDirtyFiles$okhttp", "getKey$okhttp", "()Ljava/lang/String;", "lengths", "", "getLengths$okhttp", "()[J", "lockingSourceCount", "", "getLockingSourceCount$okhttp", "()I", "setLockingSourceCount$okhttp", "(I)V", "readable", "", "getReadable$okhttp", "()Z", "setReadable$okhttp", "(Z)V", "sequenceNumber", "", "getSequenceNumber$okhttp", "()J", "setSequenceNumber$okhttp", "(J)V", "zombie", "getZombie$okhttp", "setZombie$okhttp", "invalidLengths", "", "strings", "", "newSource", "Lokio/Source;", "index", "setLengths", "", "setLengths$okhttp", SentryStackTrace.JsonKeys.SNAPSHOT, "Lokhttp3/internal/cache/DiskLruCache$Snapshot;", "snapshot$okhttp", "writeLengths", "writer", "Lokio/BufferedSink;", "writeLengths$okhttp", "okhttp"}, k = 1, mv = {1, 4, 0}) /* loaded from: classes3.dex */ public final class Entry { private final List cleanFiles; private Editor currentEditor; private final List dirtyFiles; private final String key; private final long[] lengths; private int lockingSourceCount; private boolean readable; private long sequenceNumber; final /* synthetic */ DiskLruCache this$0; private boolean zombie; public final List getCleanFiles$okhttp() { return this.cleanFiles; } /* renamed from: getCurrentEditor$okhttp, reason: from getter */ public final Editor getCurrentEditor() { return this.currentEditor; } public final List getDirtyFiles$okhttp() { return this.dirtyFiles; } /* renamed from: getKey$okhttp, reason: from getter */ public final String getKey() { return this.key; } /* renamed from: getLengths$okhttp, reason: from getter */ public final long[] getLengths() { return this.lengths; } /* renamed from: getLockingSourceCount$okhttp, reason: from getter */ public final int getLockingSourceCount() { return this.lockingSourceCount; } /* renamed from: getReadable$okhttp, reason: from getter */ public final boolean getReadable() { return this.readable; } /* renamed from: getSequenceNumber$okhttp, reason: from getter */ public final long getSequenceNumber() { return this.sequenceNumber; } /* renamed from: getZombie$okhttp, reason: from getter */ public final boolean getZombie() { return this.zombie; } public final void setCurrentEditor$okhttp(Editor editor) { this.currentEditor = editor; } public final void setLockingSourceCount$okhttp(int i) { this.lockingSourceCount = i; } public final void setReadable$okhttp(boolean z) { this.readable = z; } public final void setSequenceNumber$okhttp(long j) { this.sequenceNumber = j; } public final void setZombie$okhttp(boolean z) { this.zombie = z; } public Entry(DiskLruCache diskLruCache, String key) { Intrinsics.checkNotNullParameter(key, "key"); this.this$0 = diskLruCache; this.key = key; this.lengths = new long[diskLruCache.getValueCount()]; this.cleanFiles = new ArrayList(); this.dirtyFiles = new ArrayList(); StringBuilder append = new StringBuilder(key).append('.'); int length = append.length(); int valueCount = diskLruCache.getValueCount(); for (int i = 0; i < valueCount; i++) { append.append(i); this.cleanFiles.add(new File(diskLruCache.getDirectory(), append.toString())); append.append(".tmp"); this.dirtyFiles.add(new File(diskLruCache.getDirectory(), append.toString())); append.setLength(length); } } public final void setLengths$okhttp(List strings) throws IOException { Intrinsics.checkNotNullParameter(strings, "strings"); if (strings.size() != this.this$0.getValueCount()) { invalidLengths(strings); throw new KotlinNothingValueException(); } try { int size = strings.size(); for (int i = 0; i < size; i++) { this.lengths[i] = Long.parseLong(strings.get(i)); } } catch (NumberFormatException unused) { invalidLengths(strings); throw new KotlinNothingValueException(); } } public final void writeLengths$okhttp(BufferedSink writer) throws IOException { Intrinsics.checkNotNullParameter(writer, "writer"); for (long j : this.lengths) { writer.writeByte(32).writeDecimalLong(j); } } private final Void invalidLengths(List strings) throws IOException { throw new IOException("unexpected journal line: " + strings); } private final Source newSource(int index) { final Source source = this.this$0.getFileSystem().source(this.cleanFiles.get(index)); if (this.this$0.civilizedFileSystem) { return source; } this.lockingSourceCount++; return new ForwardingSource(source) { // from class: okhttp3.internal.cache.DiskLruCache$Entry$newSource$1 private boolean closed; @Override // okio.ForwardingSource, okio.Source, java.io.Closeable, java.lang.AutoCloseable public void close() { super.close(); if (this.closed) { return; } this.closed = true; synchronized (DiskLruCache.Entry.this.this$0) { DiskLruCache.Entry.this.setLockingSourceCount$okhttp(r1.getLockingSourceCount() - 1); if (DiskLruCache.Entry.this.getLockingSourceCount() == 0 && DiskLruCache.Entry.this.getZombie()) { DiskLruCache.Entry.this.this$0.removeEntry$okhttp(DiskLruCache.Entry.this); } Unit unit = Unit.INSTANCE; } } }; } public final Snapshot snapshot$okhttp() { DiskLruCache diskLruCache = this.this$0; if (Util.assertionsEnabled && !Thread.holdsLock(diskLruCache)) { StringBuilder sb = new StringBuilder("Thread "); Thread currentThread = Thread.currentThread(); Intrinsics.checkNotNullExpressionValue(currentThread, "Thread.currentThread()"); throw new AssertionError(sb.append(currentThread.getName()).append(" MUST hold lock on ").append(diskLruCache).toString()); } if (!this.readable) { return null; } if (!this.this$0.civilizedFileSystem && (this.currentEditor != null || this.zombie)) { return null; } ArrayList arrayList = new ArrayList(); long[] jArr = (long[]) this.lengths.clone(); try { int valueCount = this.this$0.getValueCount(); for (int i = 0; i < valueCount; i++) { arrayList.add(newSource(i)); } return new Snapshot(this.this$0, this.key, this.sequenceNumber, arrayList, jArr); } catch (FileNotFoundException unused) { Iterator it = arrayList.iterator(); while (it.hasNext()) { Util.closeQuietly((Source) it.next()); } try { this.this$0.removeEntry$okhttp(this); } catch (IOException unused2) { } return null; } } } public final synchronized void initialize() throws IOException { if (Util.assertionsEnabled && !Thread.holdsLock(this)) { StringBuilder sb = new StringBuilder("Thread "); Thread currentThread = Thread.currentThread(); Intrinsics.checkNotNullExpressionValue(currentThread, "Thread.currentThread()"); throw new AssertionError(sb.append(currentThread.getName()).append(" MUST hold lock on ").append(this).toString()); } if (this.initialized) { return; } if (this.fileSystem.exists(this.journalFileBackup)) { if (this.fileSystem.exists(this.journalFile)) { this.fileSystem.delete(this.journalFileBackup); } else { this.fileSystem.rename(this.journalFileBackup, this.journalFile); } } this.civilizedFileSystem = Util.isCivilized(this.fileSystem, this.journalFileBackup); if (this.fileSystem.exists(this.journalFile)) { try { readJournal(); processJournal(); this.initialized = true; return; } catch (IOException e) { Platform.INSTANCE.get().log("DiskLruCache " + this.directory + " is corrupt: " + e.getMessage() + ", removing", 5, e); try { delete(); this.closed = false; } catch (Throwable th) { this.closed = false; throw th; } } } rebuildJournal$okhttp(); this.initialized = true; } }