final class org.apache.cassandra.hints.HintsStore
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.hints.HintsStore
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public final java.util.UUID hostId;
    descriptor: Ljava/util/UUID;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final java.io.File hintsDirectory;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object> writerParams;
    descriptor: Lcom/google/common/collect/ImmutableMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;

  private final java.util.Map<org.apache.cassandra.hints.HintsDescriptor, org.apache.cassandra.hints.InputPosition> dispatchPositions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/cassandra/hints/HintsDescriptor;Lorg/apache/cassandra/hints/InputPosition;>;

  private final java.util.Deque<org.apache.cassandra.hints.HintsDescriptor> dispatchDequeue;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lorg/apache/cassandra/hints/HintsDescriptor;>;

  private final java.util.Queue<org.apache.cassandra.hints.HintsDescriptor> blacklistedFiles;
    descriptor: Ljava/util/Queue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Queue<Lorg/apache/cassandra/hints/HintsDescriptor;>;

  private volatile long lastUsedTimestamp;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile org.apache.cassandra.hints.HintsWriter hintsWriter;
    descriptor: Lorg/apache/cassandra/hints/HintsWriter;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 47
            ldc Lorg/apache/cassandra/hints/HintsStore;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.hints.HintsStore.logger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.util.UUID, java.io.File, com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object>, java.util.List<org.apache.cassandra.hints.HintsDescriptor>);
    descriptor: (Ljava/util/UUID;Ljava/io/File;Lcom/google/common/collect/ImmutableMap;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // java.util.UUID hostId
        start local 2 // java.io.File hintsDirectory
        start local 3 // com.google.common.collect.ImmutableMap writerParams
        start local 4 // java.util.List descriptors
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aload 1 /* hostId */
            putfield org.apache.cassandra.hints.HintsStore.hostId:Ljava/util/UUID;
         2: .line 64
            aload 0 /* this */
            aload 2 /* hintsDirectory */
            putfield org.apache.cassandra.hints.HintsStore.hintsDirectory:Ljava/io/File;
         3: .line 65
            aload 0 /* this */
            aload 3 /* writerParams */
            putfield org.apache.cassandra.hints.HintsStore.writerParams:Lcom/google/common/collect/ImmutableMap;
         4: .line 67
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.cassandra.hints.HintsStore.dispatchPositions:Ljava/util/Map;
         5: .line 68
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedDeque
            dup
            aload 4 /* descriptors */
            invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:(Ljava/util/Collection;)V
            putfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
         6: .line 69
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedQueue
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
            putfield org.apache.cassandra.hints.HintsStore.blacklistedFiles:Ljava/util/Queue;
         7: .line 72
            aload 0 /* this */
            aload 4 /* descriptors */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic applyAsLong()Ljava/util/function/ToLongFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)J
                  org/apache/cassandra/hints/HintsStore.lambda$0(Lorg/apache/cassandra/hints/HintsDescriptor;)J (6)
                  (Lorg/apache/cassandra/hints/HintsDescriptor;)J
            invokeinterface java.util.stream.Stream.mapToLong:(Ljava/util/function/ToLongFunction;)Ljava/util/stream/LongStream;
            invokeinterface java.util.stream.LongStream.max:()Ljava/util/OptionalLong;
            lconst_0
            invokevirtual java.util.OptionalLong.orElse:(J)J
            putfield org.apache.cassandra.hints.HintsStore.lastUsedTimestamp:J
         8: .line 73
            return
        end local 4 // java.util.List descriptors
        end local 3 // com.google.common.collect.ImmutableMap writerParams
        end local 2 // java.io.File hintsDirectory
        end local 1 // java.util.UUID hostId
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/apache/cassandra/hints/HintsStore;
            0    9     1          hostId  Ljava/util/UUID;
            0    9     2  hintsDirectory  Ljava/io/File;
            0    9     3    writerParams  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
            0    9     4     descriptors  Ljava/util/List<Lorg/apache/cassandra/hints/HintsDescriptor;>;
    Signature: (Ljava/util/UUID;Ljava/io/File;Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;Ljava/util/List<Lorg/apache/cassandra/hints/HintsDescriptor;>;)V
    MethodParameters:
                Name  Flags
      hostId          
      hintsDirectory  
      writerParams    
      descriptors     

  static org.apache.cassandra.hints.HintsStore create(java.util.UUID, java.io.File, com.google.common.collect.ImmutableMap<java.lang.String, java.lang.Object>, java.util.List<org.apache.cassandra.hints.HintsDescriptor>);
    descriptor: (Ljava/util/UUID;Ljava/io/File;Lcom/google/common/collect/ImmutableMap;Ljava/util/List;)Lorg/apache/cassandra/hints/HintsStore;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.util.UUID hostId
        start local 1 // java.io.File hintsDirectory
        start local 2 // com.google.common.collect.ImmutableMap writerParams
        start local 3 // java.util.List descriptors
         0: .line 77
            aload 3 /* descriptors */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  org/apache/cassandra/hints/HintsStore.lambda$1(Lorg/apache/cassandra/hints/HintsDescriptor;Lorg/apache/cassandra/hints/HintsDescriptor;)I (6)
                  (Lorg/apache/cassandra/hints/HintsDescriptor;Lorg/apache/cassandra/hints/HintsDescriptor;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         1: .line 78
            new org.apache.cassandra.hints.HintsStore
            dup
            aload 0 /* hostId */
            aload 1 /* hintsDirectory */
            aload 2 /* writerParams */
            aload 3 /* descriptors */
            invokespecial org.apache.cassandra.hints.HintsStore.<init>:(Ljava/util/UUID;Ljava/io/File;Lcom/google/common/collect/ImmutableMap;Ljava/util/List;)V
            areturn
        end local 3 // java.util.List descriptors
        end local 2 // com.google.common.collect.ImmutableMap writerParams
        end local 1 // java.io.File hintsDirectory
        end local 0 // java.util.UUID hostId
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0          hostId  Ljava/util/UUID;
            0    2     1  hintsDirectory  Ljava/io/File;
            0    2     2    writerParams  Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;
            0    2     3     descriptors  Ljava/util/List<Lorg/apache/cassandra/hints/HintsDescriptor;>;
    Signature: (Ljava/util/UUID;Ljava/io/File;Lcom/google/common/collect/ImmutableMap<Ljava/lang/String;Ljava/lang/Object;>;Ljava/util/List<Lorg/apache/cassandra/hints/HintsDescriptor;>;)Lorg/apache/cassandra/hints/HintsStore;
    MethodParameters:
                Name  Flags
      hostId          
      hintsDirectory  
      writerParams    
      descriptors     

  int getDispatchQueueSize();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 84
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
            invokeinterface java.util.Deque.size:()I
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsStore;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()

  java.net.InetAddress address();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 89
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hostId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.service.StorageService.getEndpointForHostId:(Ljava/util/UUID;)Ljava/net/InetAddress;
            areturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsStore;

  boolean isLive();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 94
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsStore.address:()Ljava/net/InetAddress;
            astore 1 /* address */
        start local 1 // java.net.InetAddress address
         1: .line 95
            aload 1 /* address */
            ifnull 2
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 1 /* address */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: java.net.InetAddress
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/apache/cassandra/hints/HintsStore;
            1    3     1  address  Ljava/net/InetAddress;

  org.apache.cassandra.hints.HintsDescriptor poll();
    descriptor: ()Lorg/apache/cassandra/hints/HintsDescriptor;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 100
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
            invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
            checkcast org.apache.cassandra.hints.HintsDescriptor
            areturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsStore;

  void offerFirst(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 105
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
            aload 1 /* descriptor */
            invokeinterface java.util.Deque.offerFirst:(Ljava/lang/Object;)Z
            pop
         1: .line 106
            return
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    2     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  void offerLast(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 110
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
            aload 1 /* descriptor */
            invokeinterface java.util.Deque.offerLast:(Ljava/lang/Object;)Z
            pop
         1: .line 111
            return
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    2     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  void deleteAllHints();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 116
            goto 3
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         1: .line 118
      StackMap locals: org.apache.cassandra.hints.HintsDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsStore.cleanUp:(Lorg/apache/cassandra/hints/HintsDescriptor;)V
         2: .line 119
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsStore.delete:(Lorg/apache/cassandra/hints/HintsDescriptor;)V
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         3: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsStore.poll:()Lorg/apache/cassandra/hints/HintsDescriptor;
            dup
            astore 1 /* descriptor */
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         4: ifnonnull 1
         5: .line 122
            goto 8
         6: .line 124
      StackMap locals: org.apache.cassandra.hints.HintsDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsStore.cleanUp:(Lorg/apache/cassandra/hints/HintsDescriptor;)V
         7: .line 125
            aload 0 /* this */
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsStore.delete:(Lorg/apache/cassandra/hints/HintsDescriptor;)V
         8: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.blacklistedFiles:Ljava/util/Queue;
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast org.apache.cassandra.hints.HintsDescriptor
            dup
            astore 1 /* descriptor */
            ifnonnull 6
         9: .line 127
            return
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/apache/cassandra/hints/HintsStore;
            1    3     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
            4   10     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;

  void delete(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 131
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsDirectory:Ljava/io/File;
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.fileName:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 2 /* hintsFile */
        start local 2 // java.io.File hintsFile
         1: .line 132
            aload 2 /* hintsFile */
            invokevirtual java.io.File.delete:()Z
            ifeq 3
         2: .line 133
            getstatic org.apache.cassandra.hints.HintsStore.logger:Lorg/slf4j/Logger;
            ldc "Deleted hint file {}"
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.fileName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 4
         3: .line 135
      StackMap locals: java.io.File
      StackMap stack:
            getstatic org.apache.cassandra.hints.HintsStore.logger:Lorg/slf4j/Logger;
            ldc "Failed to delete hint file {}"
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.fileName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 138
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsDirectory:Ljava/io/File;
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.checksumFileName:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokevirtual java.io.File.delete:()Z
            pop
         5: .line 139
            return
        end local 2 // java.io.File hintsFile
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    6     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
            1    6     2   hintsFile  Ljava/io/File;
    MethodParameters:
            Name  Flags
      descriptor  

  boolean hasFiles();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 143
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchDequeue:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/hints/HintsStore;

  org.apache.cassandra.hints.InputPosition getDispatchOffset(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)Lorg/apache/cassandra/hints/InputPosition;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 148
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchPositions:Ljava/util/Map;
            aload 1 /* descriptor */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.hints.InputPosition
            areturn
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    1     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  void markDispatchOffset(org.apache.cassandra.hints.HintsDescriptor, org.apache.cassandra.hints.InputPosition);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;Lorg/apache/cassandra/hints/InputPosition;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        start local 2 // org.apache.cassandra.hints.InputPosition inputPosition
         0: .line 153
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchPositions:Ljava/util/Map;
            aload 1 /* descriptor */
            aload 2 /* inputPosition */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 154
            return
        end local 2 // org.apache.cassandra.hints.InputPosition inputPosition
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/cassandra/hints/HintsStore;
            0    2     1     descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
            0    2     2  inputPosition  Lorg/apache/cassandra/hints/InputPosition;
    MethodParameters:
               Name  Flags
      descriptor     
      inputPosition  

  void cleanUp(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 158
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.dispatchPositions:Ljava/util/Map;
            aload 1 /* descriptor */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 159
            return
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    2     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  void blacklist(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsStore this
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         0: .line 163
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.blacklistedFiles:Ljava/util/Queue;
            aload 1 /* descriptor */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         1: .line 164
            return
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/hints/HintsStore;
            0    2     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
    MethodParameters:
            Name  Flags
      descriptor  

  boolean isWriting();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 174
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/hints/HintsStore;

  org.apache.cassandra.hints.HintsWriter getOrOpenWriter();
    descriptor: ()Lorg/apache/cassandra/hints/HintsWriter;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 179
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            ifnonnull 2
         1: .line 180
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.hints.HintsStore.openWriter:()Lorg/apache/cassandra/hints/HintsWriter;
            putfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            areturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/hints/HintsStore;

  org.apache.cassandra.hints.HintsWriter getWriter();
    descriptor: ()Lorg/apache/cassandra/hints/HintsWriter;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 186
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            areturn
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/hints/HintsStore;

  private org.apache.cassandra.hints.HintsWriter openWriter();
    descriptor: ()Lorg/apache/cassandra/hints/HintsWriter;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 191
            aload 0 /* this */
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.lastUsedTimestamp:J
            lconst_1
            ladd
            invokestatic java.lang.Math.max:(JJ)J
            putfield org.apache.cassandra.hints.HintsStore.lastUsedTimestamp:J
         1: .line 192
            new org.apache.cassandra.hints.HintsDescriptor
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hostId:Ljava/util/UUID;
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.lastUsedTimestamp:J
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.writerParams:Lcom/google/common/collect/ImmutableMap;
            invokespecial org.apache.cassandra.hints.HintsDescriptor.<init>:(Ljava/util/UUID;JLcom/google/common/collect/ImmutableMap;)V
            astore 1 /* descriptor */
        start local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
         2: .line 196
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsDirectory:Ljava/io/File;
            aload 1 /* descriptor */
            invokestatic org.apache.cassandra.hints.HintsWriter.create:(Ljava/io/File;Lorg/apache/cassandra/hints/HintsDescriptor;)Lorg/apache/cassandra/hints/HintsWriter;
         3: areturn
         4: .line 198
      StackMap locals: org.apache.cassandra.hints.HintsStore org.apache.cassandra.hints.HintsDescriptor
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         5: .line 200
            new org.apache.cassandra.io.FSWriteError
            dup
            aload 2 /* e */
            aload 1 /* descriptor */
            invokevirtual org.apache.cassandra.hints.HintsDescriptor.fileName:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.apache.cassandra.hints.HintsDescriptor descriptor
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/hints/HintsStore;
            2    6     1  descriptor  Lorg/apache/cassandra/hints/HintsDescriptor;
            5    6     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException

  void closeWriter();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 206
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            ifnull 5
         1: .line 208
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            invokevirtual org.apache.cassandra.hints.HintsWriter.close:()V
         2: .line 209
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            invokevirtual org.apache.cassandra.hints.HintsWriter.descriptor:()Lorg/apache/cassandra/hints/HintsDescriptor;
            invokevirtual org.apache.cassandra.hints.HintsStore.offerLast:(Lorg/apache/cassandra/hints/HintsDescriptor;)V
         3: .line 210
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
         4: .line 211
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsDirectory:Ljava/io/File;
            invokestatic org.apache.cassandra.utils.SyncUtil.trySyncDir:(Ljava/io/File;)V
         5: .line 213
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/hints/HintsStore;

  void fsyncWriter();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsStore this
         0: .line 217
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            ifnull 2
         1: .line 218
            aload 0 /* this */
            getfield org.apache.cassandra.hints.HintsStore.hintsWriter:Lorg/apache/cassandra/hints/HintsWriter;
            invokevirtual org.apache.cassandra.hints.HintsWriter.fsync:()V
         2: .line 219
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.hints.HintsStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/hints/HintsStore;

  private static long lambda$0(org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;)J
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.hints.HintsDescriptor d
         0: .line 72
            aload 0 /* d */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            lreturn
        end local 0 // org.apache.cassandra.hints.HintsDescriptor d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     d  Lorg/apache/cassandra/hints/HintsDescriptor;

  private static int lambda$1(org.apache.cassandra.hints.HintsDescriptor, org.apache.cassandra.hints.HintsDescriptor);
    descriptor: (Lorg/apache/cassandra/hints/HintsDescriptor;Lorg/apache/cassandra/hints/HintsDescriptor;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.hints.HintsDescriptor d1
        start local 1 // org.apache.cassandra.hints.HintsDescriptor d2
         0: .line 77
            aload 0 /* d1 */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            aload 1 /* d2 */
            getfield org.apache.cassandra.hints.HintsDescriptor.timestamp:J
            invokestatic java.lang.Long.compare:(JJ)I
            ireturn
        end local 1 // org.apache.cassandra.hints.HintsDescriptor d2
        end local 0 // org.apache.cassandra.hints.HintsDescriptor d1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    d1  Lorg/apache/cassandra/hints/HintsDescriptor;
            0    1     1    d2  Lorg/apache/cassandra/hints/HintsDescriptor;
}
SourceFile: "HintsStore.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles