public class io.vertx.core.shareddata.impl.SharedDataImpl implements io.vertx.core.shareddata.SharedData
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.shareddata.impl.SharedDataImpl
  super_class: java.lang.Object
{
  private static final long DEFAULT_LOCK_TIMEOUT;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private final io.vertx.core.impl.VertxInternal vertx;
    descriptor: Lio/vertx/core/impl/VertxInternal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.spi.cluster.ClusterManager clusterManager;
    descriptor: Lio/vertx/core/spi/cluster/ClusterManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.shareddata.impl.LocalAsyncLocks localAsyncLocks;
    descriptor: Lio/vertx/core/shareddata/impl/LocalAsyncLocks;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.ConcurrentMap<java.lang.String, io.vertx.core.shareddata.impl.LocalAsyncMapImpl<?, ?>> localAsyncMaps;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lio/vertx/core/shareddata/impl/LocalAsyncMapImpl<**>;>;

  private final java.util.concurrent.ConcurrentMap<java.lang.String, io.vertx.core.shareddata.Counter> localCounters;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lio/vertx/core/shareddata/Counter;>;

  private final java.util.concurrent.ConcurrentMap<java.lang.String, io.vertx.core.shareddata.LocalMap<?, ?>> localMaps;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Lio/vertx/core/shareddata/LocalMap<**>;>;

  public void <init>(io.vertx.core.impl.VertxInternal, io.vertx.core.spi.cluster.ClusterManager);
    descriptor: (Lio/vertx/core/impl/VertxInternal;Lio/vertx/core/spi/cluster/ClusterManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
        start local 2 // io.vertx.core.spi.cluster.ClusterManager clusterManager
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.localAsyncMaps:Ljava/util/concurrent/ConcurrentMap;
         2: .line 43
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.localCounters:Ljava/util/concurrent/ConcurrentMap;
         3: .line 44
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.localMaps:Ljava/util/concurrent/ConcurrentMap;
         4: .line 47
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
         5: .line 48
            aload 0 /* this */
            aload 2 /* clusterManager */
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
         6: .line 49
            aload 0 /* this */
            new io.vertx.core.shareddata.impl.LocalAsyncLocks
            dup
            invokespecial io.vertx.core.shareddata.impl.LocalAsyncLocks.<init>:()V
            putfield io.vertx.core.shareddata.impl.SharedDataImpl.localAsyncLocks:Lio/vertx/core/shareddata/impl/LocalAsyncLocks;
         7: .line 50
            return
        end local 2 // io.vertx.core.spi.cluster.ClusterManager clusterManager
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    8     1           vertx  Lio/vertx/core/impl/VertxInternal;
            0    8     2  clusterManager  Lio/vertx/core/spi/cluster/ClusterManager;
    MethodParameters:
                Name  Flags
      vertx           
      clusterManager  

  public <K, V> void getClusterWideMap(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.AsyncMap<K, V>>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 54
            aload 2 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 55
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getClusterWideMap:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 56
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public <K, V> io.vertx.core.Future<io.vertx.core.shareddata.AsyncMap<K, V>> getClusterWideMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 60
            aload 1 /* name */
            ldc "name"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 61
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            ifnonnull 3
         2: .line 62
            new java.lang.IllegalStateException
            dup
            ldc "Can't get cluster wide map if not clustered"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         4: .line 65
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            aload 1 /* name */
            aload 2 /* promise */
            invokeinterface io.vertx.core.spi.cluster.ClusterManager.getAsyncMap:(Ljava/lang/String;Lio/vertx/core/Promise;)V
         5: .line 66
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  io/vertx/core/shareddata/impl/SharedDataImpl$WrappedAsyncMap.<init>(Lio/vertx/core/shareddata/AsyncMap;)V (8)
                  (Lio/vertx/core/shareddata/AsyncMap;)Lio/vertx/core/shareddata/AsyncMap;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    6     1     name  Ljava/lang/String;
            4    6     2  promise  Lio/vertx/core/Promise<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;
    MethodParameters:
      Name  Flags
      name  

  public <K, V> void getAsyncMap(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.AsyncMap<K, V>>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 71
            aload 2 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 72
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getAsyncMap:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 73
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public <K, V> io.vertx.core.Future<io.vertx.core.shareddata.AsyncMap<K, V>> getAsyncMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 77
            aload 1 /* name */
            ldc "name"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 78
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            ifnonnull 3
         2: .line 79
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalAsyncMap:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         3: .line 81
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         4: .line 82
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            aload 1 /* name */
            aload 2 /* promise */
            invokeinterface io.vertx.core.spi.cluster.ClusterManager.getAsyncMap:(Ljava/lang/String;Lio/vertx/core/Promise;)V
         5: .line 83
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  io/vertx/core/shareddata/impl/SharedDataImpl$WrappedAsyncMap.<init>(Lio/vertx/core/shareddata/AsyncMap;)V (8)
                  (Lio/vertx/core/shareddata/AsyncMap;)Lio/vertx/core/shareddata/AsyncMap;
            invokeinterface io.vertx.core.Future.map:(Ljava/util/function/Function;)Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    6     1     name  Ljava/lang/String;
            4    6     2  promise  Lio/vertx/core/Promise<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;
    MethodParameters:
      Name  Flags
      name  

  public void getLock(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Lock>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 89
            aload 0 /* this */
            aload 1 /* name */
            ldc 10000
            aload 2 /* resultHandler */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLockWithTimeout:(Ljava/lang/String;JLio/vertx/core/Handler;)V
         1: .line 90
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    2     1           name  Ljava/lang/String;
            0    2     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.shareddata.Lock> getLock(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 94
            aload 0 /* this */
            aload 1 /* name */
            ldc 10000
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLockWithTimeout:(Ljava/lang/String;J)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Lock;>;
    MethodParameters:
      Name  Flags
      name  

  public void getLockWithTimeout(java.lang.String, long, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Lock>>);
    descriptor: (Ljava/lang/String;JLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // long timeout
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 99
            aload 4 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 100
            aload 0 /* this */
            aload 1 /* name */
            lload 2 /* timeout */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLockWithTimeout:(Ljava/lang/String;J)Lio/vertx/core/Future;
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 101
            return
        end local 4 // io.vertx.core.Handler resultHandler
        end local 2 // long timeout
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2        timeout  J
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;
    Signature: (Ljava/lang/String;JLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      timeout        
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.shareddata.Lock> getLockWithTimeout(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // long timeout
         0: .line 105
            aload 1 /* name */
            ldc "name"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 106
            lload 2 /* timeout */
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "timeout must be >= 0"
            invokestatic io.vertx.core.impl.Arguments.require:(ZLjava/lang/String;)V
         4: .line 107
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            ifnonnull 6
         5: .line 108
            aload 0 /* this */
            aload 1 /* name */
            lload 2 /* timeout */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalLockWithTimeout:(Ljava/lang/String;J)Lio/vertx/core/Future;
            areturn
         6: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 4 /* promise */
        start local 4 // io.vertx.core.Promise promise
         7: .line 111
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            aload 1 /* name */
            lload 2 /* timeout */
            aload 4 /* promise */
            invokeinterface io.vertx.core.spi.cluster.ClusterManager.getLockWithTimeout:(Ljava/lang/String;JLio/vertx/core/Promise;)V
         8: .line 112
            aload 4 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 4 // io.vertx.core.Promise promise
        end local 2 // long timeout
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    9     1     name  Ljava/lang/String;
            0    9     2  timeout  J
            7    9     4  promise  Lio/vertx/core/Promise<Lio/vertx/core/shareddata/Lock;>;
    Signature: (Ljava/lang/String;J)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Lock;>;
    MethodParameters:
         Name  Flags
      name     
      timeout  

  public void getLocalLock(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Lock>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 118
            aload 0 /* this */
            aload 1 /* name */
            ldc 10000
            aload 2 /* resultHandler */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalLockWithTimeout:(Ljava/lang/String;JLio/vertx/core/Handler;)V
         1: .line 119
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    2     1           name  Ljava/lang/String;
            0    2     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.shareddata.Lock> getLocalLock(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 123
            aload 0 /* this */
            aload 1 /* name */
            ldc 10000
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalLockWithTimeout:(Ljava/lang/String;J)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Lock;>;
    MethodParameters:
      Name  Flags
      name  

  public void getLocalLockWithTimeout(java.lang.String, long, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Lock>>);
    descriptor: (Ljava/lang/String;JLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // long timeout
        start local 4 // io.vertx.core.Handler resultHandler
         0: .line 128
            aload 4 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 129
            aload 0 /* this */
            aload 1 /* name */
            lload 2 /* timeout */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalLockWithTimeout:(Ljava/lang/String;J)Lio/vertx/core/Future;
            aload 4 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 130
            return
        end local 4 // io.vertx.core.Handler resultHandler
        end local 2 // long timeout
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2        timeout  J
            0    3     4  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;
    Signature: (Ljava/lang/String;JLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Lock;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      timeout        
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.shareddata.Lock> getLocalLockWithTimeout(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // long timeout
         0: .line 134
            aload 1 /* name */
            ldc "name"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 135
            lload 2 /* timeout */
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "timeout must be >= 0"
            invokestatic io.vertx.core.impl.Arguments.require:(ZLjava/lang/String;)V
         4: .line 136
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.localAsyncLocks:Lio/vertx/core/shareddata/impl/LocalAsyncLocks;
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            aload 1 /* name */
            lload 2 /* timeout */
            invokevirtual io.vertx.core.shareddata.impl.LocalAsyncLocks.acquire:(Lio/vertx/core/impl/ContextInternal;Ljava/lang/String;J)Lio/vertx/core/Future;
            areturn
        end local 2 // long timeout
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    5     1     name  Ljava/lang/String;
            0    5     2  timeout  J
    Signature: (Ljava/lang/String;J)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Lock;>;
    MethodParameters:
         Name  Flags
      name     
      timeout  

  public io.vertx.core.Future<io.vertx.core.shareddata.Counter> getCounter(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 141
            aload 1 /* name */
            ldc "name"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 142
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            ifnonnull 3
         2: .line 143
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalCounter:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         3: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         4: .line 146
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.clusterManager:Lio/vertx/core/spi/cluster/ClusterManager;
            aload 1 /* name */
            aload 2 /* promise */
            invokeinterface io.vertx.core.spi.cluster.ClusterManager.getCounter:(Ljava/lang/String;Lio/vertx/core/Promise;)V
         5: .line 147
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    6     1     name  Ljava/lang/String;
            4    6     2  promise  Lio/vertx/core/Promise<Lio/vertx/core/shareddata/Counter;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Counter;>;
    MethodParameters:
      Name  Flags
      name  

  public void getCounter(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Counter>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 153
            aload 2 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 154
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getCounter:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 155
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Counter;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Counter;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public <K, V> io.vertx.core.shareddata.LocalMap<K, V> getLocalMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 164
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.localMaps:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* name */
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/core/shareddata/impl/SharedDataImpl;)Ljava/util/function/Function;
              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;
                  io/vertx/core/shareddata/impl/SharedDataImpl.lambda$2(Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap; (7)
                  (Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap;
            invokeinterface java.util.concurrent.ConcurrentMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast io.vertx.core.shareddata.LocalMap
            areturn
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1  name  Ljava/lang/String;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      name  

  public <K, V> void getLocalAsyncMap(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.AsyncMap<K, V>>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 169
            aload 2 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 170
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalAsyncMap:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 171
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public <K, V> io.vertx.core.Future<io.vertx.core.shareddata.AsyncMap<K, V>> getLocalAsyncMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 176
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.localAsyncMaps:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* name */
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/core/shareddata/impl/SharedDataImpl;)Ljava/util/function/Function;
              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;
                  io/vertx/core/shareddata/impl/SharedDataImpl.lambda$3(Ljava/lang/String;)Lio/vertx/core/shareddata/impl/LocalAsyncMapImpl; (7)
                  (Ljava/lang/String;)Lio/vertx/core/shareddata/impl/LocalAsyncMapImpl;
            invokeinterface java.util.concurrent.ConcurrentMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast io.vertx.core.shareddata.impl.LocalAsyncMapImpl
            astore 2 /* asyncMap */
        start local 2 // io.vertx.core.shareddata.impl.LocalAsyncMapImpl asyncMap
         1: .line 177
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 3 /* context */
        start local 3 // io.vertx.core.impl.ContextInternal context
         2: .line 178
            aload 3 /* context */
            new io.vertx.core.shareddata.impl.SharedDataImpl$WrappedAsyncMap
            dup
            aload 2 /* asyncMap */
            invokespecial io.vertx.core.shareddata.impl.SharedDataImpl$WrappedAsyncMap.<init>:(Lio/vertx/core/shareddata/AsyncMap;)V
            invokeinterface io.vertx.core.impl.ContextInternal.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.impl.ContextInternal context
        end local 2 // io.vertx.core.shareddata.impl.LocalAsyncMapImpl asyncMap
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1      name  Ljava/lang/String;
            1    3     2  asyncMap  Lio/vertx/core/shareddata/impl/LocalAsyncMapImpl<TK;TV;>;
            2    3     3   context  Lio/vertx/core/impl/ContextInternal;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/AsyncMap<TK;TV;>;>;
    MethodParameters:
      Name  Flags
      name  

  public void getLocalCounter(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.shareddata.Counter>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
        start local 2 // io.vertx.core.Handler resultHandler
         0: .line 183
            aload 2 /* resultHandler */
            ldc "resultHandler"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 184
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual io.vertx.core.shareddata.impl.SharedDataImpl.getLocalCounter:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2 /* resultHandler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         2: .line 185
            return
        end local 2 // io.vertx.core.Handler resultHandler
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1           name  Ljava/lang/String;
            0    3     2  resultHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Counter;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/shareddata/Counter;>;>;)V
    MethodParameters:
               Name  Flags
      name           
      resultHandler  

  public io.vertx.core.Future<io.vertx.core.shareddata.Counter> getLocalCounter(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String name
         0: .line 189
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.localCounters:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* name */
            aload 0 /* this */
            invokedynamic apply(Lio/vertx/core/shareddata/impl/SharedDataImpl;)Ljava/util/function/Function;
              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;
                  io/vertx/core/shareddata/impl/SharedDataImpl.lambda$4(Ljava/lang/String;)Lio/vertx/core/shareddata/Counter; (7)
                  (Ljava/lang/String;)Lio/vertx/core/shareddata/Counter;
            invokeinterface java.util.concurrent.ConcurrentMap.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast io.vertx.core.shareddata.Counter
            astore 2 /* counter */
        start local 2 // io.vertx.core.shareddata.Counter counter
         1: .line 190
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 3 /* context */
        start local 3 // io.vertx.core.impl.ContextInternal context
         2: .line 191
            aload 3 /* context */
            aload 2 /* counter */
            invokeinterface io.vertx.core.impl.ContextInternal.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            areturn
        end local 3 // io.vertx.core.impl.ContextInternal context
        end local 2 // io.vertx.core.shareddata.Counter counter
        end local 1 // java.lang.String name
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    3     1     name  Ljava/lang/String;
            1    3     2  counter  Lio/vertx/core/shareddata/Counter;
            2    3     3  context  Lio/vertx/core/impl/ContextInternal;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Lio/vertx/core/shareddata/Counter;>;
    MethodParameters:
      Name  Flags
      name  

  private static void checkType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 195
            aload 0 /* obj */
            ifnonnull 2
         1: .line 196
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot put null in key or value of async map"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         3: .line 199
            aload 1 /* clazz */
            ldc Ljava/lang/Integer;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         4: .line 200
            aload 1 /* clazz */
            ldc Ljava/lang/Long;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         5: .line 201
            aload 1 /* clazz */
            ldc Ljava/lang/Short;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         6: .line 202
            aload 1 /* clazz */
            ldc Ljava/lang/Float;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         7: .line 203
            aload 1 /* clazz */
            ldc Ljava/lang/Double;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         8: .line 204
            aload 1 /* clazz */
            ldc Ljava/lang/Boolean;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 11
         9: .line 205
            aload 1 /* clazz */
            ldc Ljava/lang/Byte;
            if_acmpeq 11
            aload 1 /* clazz */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpeq 11
        10: .line 206
            aload 1 /* clazz */
            ldc Ljava/lang/String;
            if_acmpeq 11
            aload 1 /* clazz */
            ldc [B
            if_acmpne 12
        11: .line 208
      StackMap locals: java.lang.Class
      StackMap stack:
            return
        12: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof io.vertx.core.shareddata.impl.ClusterSerializable
            ifeq 14
        13: .line 211
            return
        14: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof java.io.Serializable
            ifeq 16
        15: .line 214
            return
        16: .line 216
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* clazz */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to put in async map"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0    obj  Ljava/lang/Object;
            3   17     1  clazz  Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      obj   

  private io.vertx.core.shareddata.LocalMap lambda$2(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/shareddata/LocalMap;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String n
         0: .line 164
            new io.vertx.core.shareddata.impl.LocalMapImpl
            dup
            aload 1 /* n */
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.localMaps:Ljava/util/concurrent/ConcurrentMap;
            invokespecial io.vertx.core.shareddata.impl.LocalMapImpl.<init>:(Ljava/lang/String;Ljava/util/concurrent/ConcurrentMap;)V
            areturn
        end local 1 // java.lang.String n
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1     n  Ljava/lang/String;

  private io.vertx.core.shareddata.impl.LocalAsyncMapImpl lambda$3(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/shareddata/impl/LocalAsyncMapImpl;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String n
         0: .line 176
            new io.vertx.core.shareddata.impl.LocalAsyncMapImpl
            dup
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokespecial io.vertx.core.shareddata.impl.LocalAsyncMapImpl.<init>:(Lio/vertx/core/impl/VertxInternal;)V
            areturn
        end local 1 // java.lang.String n
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1     n  Ljava/lang/String;

  private io.vertx.core.shareddata.Counter lambda$4(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/shareddata/Counter;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
        start local 1 // java.lang.String n
         0: .line 189
            new io.vertx.core.shareddata.impl.AsynchronousCounter
            dup
            aload 0 /* this */
            getfield io.vertx.core.shareddata.impl.SharedDataImpl.vertx:Lio/vertx/core/impl/VertxInternal;
            invokespecial io.vertx.core.shareddata.impl.AsynchronousCounter.<init>:(Lio/vertx/core/impl/VertxInternal;)V
            areturn
        end local 1 // java.lang.String n
        end local 0 // io.vertx.core.shareddata.impl.SharedDataImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/shareddata/impl/SharedDataImpl;
            0    1     1     n  Ljava/lang/String;
}
SourceFile: "SharedDataImpl.java"
NestMembers:
  io.vertx.core.shareddata.impl.SharedDataImpl$WrappedAsyncMap
InnerClasses:
  public final WrappedAsyncMap = io.vertx.core.shareddata.impl.SharedDataImpl$WrappedAsyncMap of io.vertx.core.shareddata.impl.SharedDataImpl
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles