class com.mongodb.internal.connection.DefaultServerMonitor implements com.mongodb.internal.connection.ServerMonitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.DefaultServerMonitor
super_class: java.lang.Object
{
private static final com.mongodb.diagnostics.logging.Logger LOGGER;
descriptor: Lcom/mongodb/diagnostics/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.mongodb.connection.ServerId serverId;
descriptor: Lcom/mongodb/connection/ServerId;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.event.ServerMonitorListener serverMonitorListener;
descriptor: Lcom/mongodb/event/ServerMonitorListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.ClusterClock clusterClock;
descriptor: Lcom/mongodb/internal/connection/ClusterClock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.ChangeListener<com.mongodb.connection.ServerDescription> serverStateListener;
descriptor: Lcom/mongodb/internal/connection/ChangeListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/mongodb/internal/connection/ChangeListener<Lcom/mongodb/connection/ServerDescription;>;
private final com.mongodb.internal.connection.InternalConnectionFactory internalConnectionFactory;
descriptor: Lcom/mongodb/internal/connection/InternalConnectionFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.ConnectionPool connectionPool;
descriptor: Lcom/mongodb/internal/connection/ConnectionPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.ServerSettings serverSettings;
descriptor: Lcom/mongodb/connection/ServerSettings;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable monitor;
descriptor: Lcom/mongodb/internal/connection/DefaultServerMonitor$ServerMonitorRunnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Thread monitorThread;
descriptor: Ljava/lang/Thread;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock lock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Condition condition;
descriptor: Ljava/util/concurrent/locks/Condition;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean isClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "cluster"
invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
putstatic com.mongodb.internal.connection.DefaultServerMonitor.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.mongodb.connection.ServerId, com.mongodb.connection.ServerSettings, com.mongodb.internal.connection.ClusterClock, com.mongodb.internal.connection.ChangeListener<com.mongodb.connection.ServerDescription>, com.mongodb.internal.connection.InternalConnectionFactory, com.mongodb.internal.connection.ConnectionPool);
descriptor: (Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/internal/connection/ClusterClock;Lcom/mongodb/internal/connection/ChangeListener;Lcom/mongodb/internal/connection/InternalConnectionFactory;Lcom/mongodb/internal/connection/ConnectionPool;)V
flags: (0x0000)
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.mongodb.internal.connection.DefaultServerMonitor.lock:Ljava/util/concurrent/locks/Lock;
2: aload 0
aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.lock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.newCondition:()Ljava/util/concurrent/locks/Condition;
putfield com.mongodb.internal.connection.DefaultServerMonitor.condition:Ljava/util/concurrent/locks/Condition;
3: aload 0
ldc "serverSettings"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.connection.ServerSettings
putfield com.mongodb.internal.connection.DefaultServerMonitor.serverSettings:Lcom/mongodb/connection/ServerSettings;
4: aload 0
ldc "serverId"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.connection.ServerId
putfield com.mongodb.internal.connection.DefaultServerMonitor.serverId:Lcom/mongodb/connection/ServerId;
5: aload 0
aload 2
invokestatic com.mongodb.internal.event.EventListenerHelper.getServerMonitorListener:(Lcom/mongodb/connection/ServerSettings;)Lcom/mongodb/event/ServerMonitorListener;
putfield com.mongodb.internal.connection.DefaultServerMonitor.serverMonitorListener:Lcom/mongodb/event/ServerMonitorListener;
6: aload 0
ldc "clusterClock"
aload 3
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.ClusterClock
putfield com.mongodb.internal.connection.DefaultServerMonitor.clusterClock:Lcom/mongodb/internal/connection/ClusterClock;
7: aload 0
aload 4
putfield com.mongodb.internal.connection.DefaultServerMonitor.serverStateListener:Lcom/mongodb/internal/connection/ChangeListener;
8: aload 0
ldc "internalConnectionFactory"
aload 5
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.InternalConnectionFactory
putfield com.mongodb.internal.connection.DefaultServerMonitor.internalConnectionFactory:Lcom/mongodb/internal/connection/InternalConnectionFactory;
9: aload 0
aload 6
putfield com.mongodb.internal.connection.DefaultServerMonitor.connectionPool:Lcom/mongodb/internal/connection/ConnectionPool;
10: aload 0
new com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable
dup
aload 0
invokespecial com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.<init>:(Lcom/mongodb/internal/connection/DefaultServerMonitor;)V
putfield com.mongodb.internal.connection.DefaultServerMonitor.monitor:Lcom/mongodb/internal/connection/DefaultServerMonitor$ServerMonitorRunnable;
11: aload 0
new java.lang.Thread
dup
aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.monitor:Lcom/mongodb/internal/connection/DefaultServerMonitor$ServerMonitorRunnable;
new java.lang.StringBuilder
dup
ldc "cluster-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getClusterId:()Lcom/mongodb/connection/ClusterId;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
putfield com.mongodb.internal.connection.DefaultServerMonitor.monitorThread:Ljava/lang/Thread;
12: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.monitorThread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
13: aload 0
iconst_0
putfield com.mongodb.internal.connection.DefaultServerMonitor.isClosed:Z
14: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/mongodb/internal/connection/DefaultServerMonitor;
0 15 1 serverId Lcom/mongodb/connection/ServerId;
0 15 2 serverSettings Lcom/mongodb/connection/ServerSettings;
0 15 3 clusterClock Lcom/mongodb/internal/connection/ClusterClock;
0 15 4 serverStateListener Lcom/mongodb/internal/connection/ChangeListener<Lcom/mongodb/connection/ServerDescription;>;
0 15 5 internalConnectionFactory Lcom/mongodb/internal/connection/InternalConnectionFactory;
0 15 6 connectionPool Lcom/mongodb/internal/connection/ConnectionPool;
Signature: (Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/ServerSettings;Lcom/mongodb/internal/connection/ClusterClock;Lcom/mongodb/internal/connection/ChangeListener<Lcom/mongodb/connection/ServerDescription;>;Lcom/mongodb/internal/connection/InternalConnectionFactory;Lcom/mongodb/internal/connection/ConnectionPool;)V
MethodParameters:
Name Flags
serverId final
serverSettings final
clusterClock final
serverStateListener final
internalConnectionFactory final
connectionPool final
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.monitorThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/DefaultServerMonitor;
public void connect();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.lock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.condition:Ljava/util/concurrent/locks/Condition;
invokeinterface java.util.concurrent.locks.Condition.signal:()V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
4: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.lock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.lock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/DefaultServerMonitor;
Exception table:
from to target type
1 3 3 any
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.mongodb.internal.connection.DefaultServerMonitor.isClosed:Z
1: aload 0
getfield com.mongodb.internal.connection.DefaultServerMonitor.monitorThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/internal/connection/DefaultServerMonitor;
static boolean shouldLogStageChange(com.mongodb.connection.ServerDescription, com.mongodb.connection.ServerDescription);
descriptor: (Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ServerDescription;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.mongodb.connection.ServerDescription.isOk:()Z
aload 1
invokevirtual com.mongodb.connection.ServerDescription.isOk:()Z
if_icmpeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getAddress:()Lcom/mongodb/ServerAddress;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getAddress:()Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.equals:(Ljava/lang/Object;)Z
ifne 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getCanonicalAddress:()Ljava/lang/String;
ifnull 6
5: aload 0
invokevirtual com.mongodb.connection.ServerDescription.getCanonicalAddress:()Ljava/lang/String;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getCanonicalAddress:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 7
StackMap locals:
StackMap stack:
6: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getCanonicalAddress:()Ljava/lang/String;
ifnull 8
7: StackMap locals:
StackMap stack:
iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getHosts:()Ljava/util/Set;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getHosts:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 10
9: iconst_1
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getArbiters:()Ljava/util/Set;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getArbiters:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 12
11: iconst_1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getPassives:()Ljava/util/Set;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getPassives:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 14
13: iconst_1
ireturn
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getPrimary:()Ljava/lang/String;
ifnull 15
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getPrimary:()Ljava/lang/String;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getPrimary:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 16
StackMap locals:
StackMap stack:
15: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getPrimary:()Ljava/lang/String;
ifnull 17
16: StackMap locals:
StackMap stack:
iconst_1
ireturn
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getSetName:()Ljava/lang/String;
ifnull 18
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getSetName:()Ljava/lang/String;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getSetName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 20
goto 19
StackMap locals:
StackMap stack:
18: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getSetName:()Ljava/lang/String;
ifnull 20
19: StackMap locals:
StackMap stack:
iconst_1
ireturn
20: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getState:()Lcom/mongodb/connection/ServerConnectionState;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getState:()Lcom/mongodb/connection/ServerConnectionState;
if_acmpeq 22
21: iconst_1
ireturn
22: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getTagSet:()Lcom/mongodb/TagSet;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getTagSet:()Lcom/mongodb/TagSet;
invokevirtual com.mongodb.TagSet.equals:(Ljava/lang/Object;)Z
ifne 24
23: iconst_1
ireturn
24: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getType:()Lcom/mongodb/connection/ServerType;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getType:()Lcom/mongodb/connection/ServerType;
if_acmpeq 26
25: iconst_1
ireturn
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getVersion:()Lcom/mongodb/connection/ServerVersion;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getVersion:()Lcom/mongodb/connection/ServerVersion;
invokevirtual com.mongodb.connection.ServerVersion.equals:(Ljava/lang/Object;)Z
ifne 28
27: iconst_1
ireturn
28: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getElectionId:()Lorg/bson/types/ObjectId;
ifnull 30
29: aload 0
invokevirtual com.mongodb.connection.ServerDescription.getElectionId:()Lorg/bson/types/ObjectId;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getElectionId:()Lorg/bson/types/ObjectId;
invokevirtual org.bson.types.ObjectId.equals:(Ljava/lang/Object;)Z
ifne 32
goto 31
StackMap locals:
StackMap stack:
30: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getElectionId:()Lorg/bson/types/ObjectId;
ifnull 32
31: StackMap locals:
StackMap stack:
iconst_1
ireturn
32: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getSetVersion:()Ljava/lang/Integer;
ifnull 34
33: aload 0
invokevirtual com.mongodb.connection.ServerDescription.getSetVersion:()Ljava/lang/Integer;
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getSetVersion:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifne 36
goto 35
StackMap locals:
StackMap stack:
34: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getSetVersion:()Ljava/lang/Integer;
ifnull 36
35: StackMap locals:
StackMap stack:
iconst_1
ireturn
36: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
ifnull 37
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
goto 38
StackMap locals:
StackMap stack:
37: aconst_null
StackMap locals:
StackMap stack: java.lang.Class
38: astore 2
start local 2 39: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
ifnull 40
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
goto 41
StackMap locals: java.lang.Class
StackMap stack:
40: aconst_null
StackMap locals:
StackMap stack: java.lang.Class
41: astore 3
start local 3 42: aload 2
ifnull 43
aload 2
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 45
goto 44
StackMap locals: java.lang.Class
StackMap stack:
43: aload 3
ifnull 45
44: StackMap locals:
StackMap stack:
iconst_1
ireturn
45: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
ifnull 46
aload 0
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
goto 47
StackMap locals:
StackMap stack:
46: aconst_null
StackMap locals:
StackMap stack: java.lang.String
47: astore 4
start local 4 48: aload 1
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
ifnull 49
aload 1
invokevirtual com.mongodb.connection.ServerDescription.getException:()Ljava/lang/Throwable;
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
goto 50
StackMap locals: java.lang.String
StackMap stack:
49: aconst_null
StackMap locals:
StackMap stack: java.lang.String
50: astore 5
start local 5 51: aload 4
ifnull 52
aload 4
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 54
goto 53
StackMap locals: java.lang.String
StackMap stack:
52: aload 5
ifnull 54
53: StackMap locals:
StackMap stack:
iconst_1
ireturn
54: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 previous Lcom/mongodb/connection/ServerDescription;
0 55 1 current Lcom/mongodb/connection/ServerDescription;
39 55 2 thisExceptionClass Ljava/lang/Class<*>;
42 55 3 thatExceptionClass Ljava/lang/Class<*>;
48 55 4 thisExceptionMessage Ljava/lang/String;
51 55 5 thatExceptionMessage Ljava/lang/String;
MethodParameters:
Name Flags
previous final
current final
}
SourceFile: "DefaultServerMonitor.java"
NestMembers:
com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable
InnerClasses:
ServerMonitorRunnable = com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable of com.mongodb.internal.connection.DefaultServerMonitor
RuntimeVisibleAnnotations:
com.mongodb.annotations.ThreadSafe()