void gc(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   connectedAgent.gc();
 }
 void preloadClasspathCache(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   connectedAgent.preloadClasspathCache();
 }
 ThreadDump threadDump(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.threadDump();
 }
 long availableDiskSpaceBytes(String agentId, String directory) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.availableDiskSpaceBytes(directory);
 }
 List<Trace.Entry> getEntries(String agentId, String traceId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.getEntries(traceId);
 }
 public void updateAgentConfig(String agentId, AgentConfig agentConfig) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   connectedAgent.updateAgentConfig(agentConfig);
 }
 HeapDumpFileInfo heapDump(String agentId, String directory) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.heapDump(directory);
 }
 int reweave(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.reweave();
 }
 GlobalMeta globalMeta(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.globalMeta();
 }
 Capabilities capabilities(String agentId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.capabilities();
 }
 MBeanMeta mbeanMeta(String agentId, String objectName) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.mbeanMeta(objectName);
 }
 @Nullable
 Trace getFullTrace(String agentId, String traceId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.getFullTrace(traceId);
 }
 @Nullable
 Profile getAuxThreadProfile(String agentId, String traceId) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.getAuxThreadProfile(traceId);
 }
 List<MethodSignature> methodSignatures(String agentId, String className, String methodName)
     throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.methodSignatures(className, methodName);
 }
 List<String> matchingMethodNames(
     String agentId, String className, String partialMethodName, int limit) throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.matchingMethodNames(className, partialMethodName, limit);
 }
 List<String> matchingMBeanObjectNames(String agentId, String partialObjectName, int limit)
     throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.matchingMBeanObjectNames(partialObjectName, limit);
 }
 MBeanDump mbeanDump(String agentId, MBeanDumpKind mbeanDumpKind, List<String> objectNames)
     throws Exception {
   ConnectedAgent connectedAgent = connectedAgents.get(agentId);
   if (connectedAgent == null) {
     throw new AgentNotConnectedException();
   }
   return connectedAgent.mbeanDump(mbeanDumpKind, objectNames);
 }