test_class.declarator: TABLES = ImmutableSet.of("table1")
test_class.modifier: private static final
test_class.original_string: private static final Set<String> TABLES = ImmutableSet.of("table1");
test_class.type: Set<String>
test_class.var_name: TABLES
test_class.declarator: COORDS = Collections.singleton("")
test_class.modifier: private static final
test_class.original_string: private static final Set<String> COORDS = Collections.singleton("");
test_class.type: Set<String>
test_class.var_name: COORDS
test_class.file: src/server/src/test/java/io/cassandrareaper/service/SegmentRunnerTest.java
test_class.identifier: SegmentRunnerTest
test_case.body: @Test
    public void parseRepairIdTest() {
      String msg = "Repair session 883fd090-12f1-11e5-94c5-03d4762e50b7 for range (1,2] failed with";
      assertEquals("883fd090-12f1-11e5-94c5-03d4762e50b7", SegmentRunner.parseRepairId(msg));
      msg = "Two IDs: 883fd090-12f1-11e5-94c5-03d4762e50b7 883fd090-12f1-11e5-94c5-03d4762e50b7";
      assertEquals("883fd090-12f1-11e5-94c5-03d4762e50b7", SegmentRunner.parseRepairId(msg));
      msg = "No ID: foo bar baz";
      assertEquals(null, SegmentRunner.parseRepairId(msg));
      msg = "A message with bad ID 883fd090-fooo-11e5-94c5-03d4762e50b7";
      assertEquals(null, SegmentRunner.parseRepairId(msg));
      msg = "A message with good ID 883fd090-baad-11e5-94c5-03d4762e50b7";
      assertEquals("883fd090-baad-11e5-94c5-03d4762e50b7", SegmentRunner.parseRepairId(msg));
    }
test_case.class_method_signature: SegmentRunnerTest.parseRepairIdTest()
test_case.full_signature: @Test public void parseRepairIdTest()
test_case.identifier: parseRepairIdTest
test_case.invocations: assertEquals parseRepairId assertEquals parseRepairId assertEquals parseRepairId assertEquals parseRepairId assertEquals parseRepairId
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void parseRepairIdTest()
focal_class.declarator: SEGMENT_RUNNERS = Maps.newConcurrentMap()
focal_class.modifier: static final
focal_class.original_string: static final Map<UUID, SegmentRunner> SEGMENT_RUNNERS = Maps.newConcurrentMap();
focal_class.type: Map<UUID, SegmentRunner>
focal_class.var_name: SEGMENT_RUNNERS
focal_class.declarator: LOG = LoggerFactory.getLogger(SegmentRunner.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = LoggerFactory.getLogger(SegmentRunner.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.declarator: MAX_TIMEOUT_EXTENSIONS = 10
focal_class.modifier: private static final
focal_class.original_string: private static final int MAX_TIMEOUT_EXTENSIONS = 10;
focal_class.type: int
focal_class.var_name: MAX_TIMEOUT_EXTENSIONS
focal_class.declarator: LOCK_DURATION = 30
focal_class.modifier: private static final
focal_class.original_string: private static final int LOCK_DURATION = 30;
focal_class.type: int
focal_class.var_name: LOCK_DURATION
focal_class.declarator: REPAIR_UUID_PATTERN
        = Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern REPAIR_UUID_PATTERN
        = Pattern.compile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}");
focal_class.type: Pattern
focal_class.var_name: REPAIR_UUID_PATTERN
focal_class.declarator: SLEEP_TIME_AFTER_POSTPONE_IN_MS
        = Integer.getInteger(SegmentRunner.class.getName() + ".sleep_time_after_postpone_in_ms", 10000)
focal_class.modifier: private static final
focal_class.original_string: private static final long SLEEP_TIME_AFTER_POSTPONE_IN_MS
        = Integer.getInteger(SegmentRunner.class.getName() + ".sleep_time_after_postpone_in_ms", 10000);
focal_class.type: long
focal_class.var_name: SLEEP_TIME_AFTER_POSTPONE_IN_MS
focal_class.declarator: METRICS_GRABBER_EXECUTOR = Executors.newFixedThreadPool(10)
focal_class.modifier: private static final
focal_class.original_string: private static final ExecutorService METRICS_GRABBER_EXECUTOR = Executors.newFixedThreadPool(10);
focal_class.type: ExecutorService
focal_class.var_name: METRICS_GRABBER_EXECUTOR
focal_class.declarator: METRICS_POLL_INTERVAL_MS = TimeUnit.SECONDS.toMillis(5)
focal_class.modifier: private static final
focal_class.original_string: private static final long METRICS_POLL_INTERVAL_MS = TimeUnit.SECONDS.toMillis(5);
focal_class.type: long
focal_class.var_name: METRICS_POLL_INTERVAL_MS
focal_class.declarator: METRICS_MAX_WAIT_MS = TimeUnit.MINUTES.toMillis(2)
focal_class.modifier: private static final
focal_class.original_string: private static final long METRICS_MAX_WAIT_MS = TimeUnit.MINUTES.toMillis(2);
focal_class.type: long
focal_class.var_name: METRICS_MAX_WAIT_MS
focal_class.declarator: context
focal_class.modifier: private final
focal_class.original_string: private final AppContext context;
focal_class.type: AppContext
focal_class.var_name: context
focal_class.declarator: segmentId
focal_class.modifier: private final
focal_class.original_string: private final UUID segmentId;
focal_class.type: UUID
focal_class.var_name: segmentId
focal_class.declarator: condition = new SimpleCondition()
focal_class.modifier: private final
focal_class.original_string: private final Condition condition = new SimpleCondition();
focal_class.type: Condition
focal_class.var_name: condition
focal_class.declarator: potentialCoordinators
focal_class.modifier: private final
focal_class.original_string: private final Collection<String> potentialCoordinators;
focal_class.type: Collection<String>
focal_class.var_name: potentialCoordinators
focal_class.declarator: timeoutMillis
focal_class.modifier: private final
focal_class.original_string: private final long timeoutMillis;
focal_class.type: long
focal_class.var_name: timeoutMillis
focal_class.declarator: intensity
focal_class.modifier: private final
focal_class.original_string: private final double intensity;
focal_class.type: double
focal_class.var_name: intensity
focal_class.declarator: validationParallelism
focal_class.modifier: private final
focal_class.original_string: private final RepairParallelism validationParallelism;
focal_class.type: RepairParallelism
focal_class.var_name: validationParallelism
focal_class.declarator: clusterName
focal_class.modifier: private final
focal_class.original_string: private final String clusterName;
focal_class.type: String
focal_class.var_name: clusterName
focal_class.declarator: repairRunner
focal_class.modifier: private final
focal_class.original_string: private final RepairRunner repairRunner;
focal_class.type: RepairRunner
focal_class.var_name: repairRunner
focal_class.declarator: repairUnit
focal_class.modifier: private final
focal_class.original_string: private final RepairUnit repairUnit;
focal_class.type: RepairUnit
focal_class.var_name: repairUnit
focal_class.declarator: repairNo
focal_class.modifier: private volatile
focal_class.original_string: private volatile int repairNo;
focal_class.type: int
focal_class.var_name: repairNo
focal_class.declarator: segmentFailed
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean segmentFailed;
focal_class.type: AtomicBoolean
focal_class.var_name: segmentFailed
focal_class.declarator: leaderElectionId
focal_class.modifier: private final
focal_class.original_string: private final UUID leaderElectionId;
focal_class.type: UUID
focal_class.var_name: leaderElectionId
focal_class.declarator: successOrFailedNotified = new AtomicBoolean(false)
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean successOrFailedNotified = new AtomicBoolean(false);
focal_class.type: AtomicBoolean
focal_class.var_name: successOrFailedNotified
focal_class.declarator: completeNotified = new AtomicBoolean(false)
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean completeNotified = new AtomicBoolean(false);
focal_class.type: AtomicBoolean
focal_class.var_name: completeNotified
focal_class.declarator: clusterFacade
focal_class.modifier: private final
focal_class.original_string: private final ClusterFacade clusterFacade;
focal_class.type: ClusterFacade
focal_class.var_name: clusterFacade
focal_class.declarator: tablesToRepair
focal_class.modifier: private final
focal_class.original_string: private final Set<String> tablesToRepair;
focal_class.type: Set<String>
focal_class.var_name: tablesToRepair
focal_class.declarator: releasedSegmentRunner = new AtomicBoolean(false)
focal_class.modifier: private final
focal_class.original_string: private final AtomicBoolean releasedSegmentRunner = new AtomicBoolean(false);
focal_class.type: AtomicBoolean
focal_class.var_name: releasedSegmentRunner
focal_class.file: src/server/src/main/java/io/cassandrareaper/service/SegmentRunner.java
focal_class.identifier: SegmentRunner
focal_class.interfaces: implements RepairStatusHandler, Runnable
focal_class.class_method_signature: SegmentRunner.SegmentRunner(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.full_signature: private  SegmentRunner(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.identifier: SegmentRunner
focal_class.modifiers: private
focal_class.parameters: (
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.signature:  SegmentRunner(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.class_method_signature: SegmentRunner.create(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.full_signature: public static SegmentRunner create(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.return: SegmentRunner
focal_class.signature: SegmentRunner create(
        AppContext context,
        ClusterFacade clusterFacade,
        UUID segmentId,
        Collection<String> potentialCoordinators,
        long timeoutMillis,
        double intensity,
        RepairParallelism validationParallelism,
        String clusterName,
        RepairUnit repairUnit,
        Set<String> tablesToRepair,
        RepairRunner repairRunner)
focal_class.class_method_signature: SegmentRunner.run()
focal_class.full_signature: @Override public void run()
focal_class.identifier: run
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void run()
focal_class.class_method_signature: SegmentRunner.postponeSegment(AppContext context, RepairSegment segment)
focal_class.full_signature: static void postponeSegment(AppContext context, RepairSegment segment)
focal_class.identifier: postponeSegment
focal_class.modifiers: static
focal_class.parameters: (AppContext context, RepairSegment segment)
focal_class.return: void
focal_class.signature: void postponeSegment(AppContext context, RepairSegment segment)
focal_class.class_method_signature: SegmentRunner.postpone(AppContext context, RepairSegment segment, RepairUnit repairUnit)
focal_class.full_signature: private static void postpone(AppContext context, RepairSegment segment, RepairUnit repairUnit)
focal_class.identifier: postpone
focal_class.modifiers: private static
focal_class.parameters: (AppContext context, RepairSegment segment, RepairUnit repairUnit)
focal_class.return: void
focal_class.signature: void postpone(AppContext context, RepairSegment segment, RepairUnit repairUnit)
focal_class.class_method_signature: SegmentRunner.abort(AppContext context, RepairSegment segment, JmxProxy jmxConnection)
focal_class.full_signature: static void abort(AppContext context, RepairSegment segment, JmxProxy jmxConnection)
focal_class.identifier: abort
focal_class.modifiers: static
focal_class.parameters: (AppContext context, RepairSegment segment, JmxProxy jmxConnection)
focal_class.return: void
focal_class.signature: void abort(AppContext context, RepairSegment segment, JmxProxy jmxConnection)
focal_class.class_method_signature: SegmentRunner.abort(RepairSegment segment, JmxProxy jmxConnection)
focal_class.full_signature: private void abort(RepairSegment segment, JmxProxy jmxConnection)
focal_class.identifier: abort
focal_class.modifiers: private
focal_class.parameters: (RepairSegment segment, JmxProxy jmxConnection)
focal_class.return: void
focal_class.signature: void abort(RepairSegment segment, JmxProxy jmxConnection)
focal_class.class_method_signature: SegmentRunner.postponeCurrentSegment()
focal_class.full_signature:  void postponeCurrentSegment()
focal_class.identifier: postponeCurrentSegment
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void postponeCurrentSegment()
focal_class.class_method_signature: SegmentRunner.getOpenFilesAmount()
focal_class.full_signature: private static long getOpenFilesAmount()
focal_class.identifier: getOpenFilesAmount
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getOpenFilesAmount()
focal_class.class_method_signature: SegmentRunner.runRepair()
focal_class.full_signature: private boolean runRepair()
focal_class.identifier: runRepair
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean runRepair()
focal_class.class_method_signature: SegmentRunner.processTriggeredSegment(final RepairSegment segment, final JmxProxy coordinator, int repairNo)
focal_class.full_signature: private void processTriggeredSegment(final RepairSegment segment, final JmxProxy coordinator, int repairNo)
focal_class.identifier: processTriggeredSegment
focal_class.modifiers: private
focal_class.parameters: (final RepairSegment segment, final JmxProxy coordinator, int repairNo)
focal_class.return: void
focal_class.signature: void processTriggeredSegment(final RepairSegment segment, final JmxProxy coordinator, int repairNo)
focal_class.class_method_signature: SegmentRunner.metricNameForPostpone(RepairUnit unit, RepairSegment segment)
focal_class.full_signature: private static String metricNameForPostpone(RepairUnit unit, RepairSegment segment)
focal_class.identifier: metricNameForPostpone
focal_class.modifiers: private static
focal_class.parameters: (RepairUnit unit, RepairSegment segment)
focal_class.return: String
focal_class.signature: String metricNameForPostpone(RepairUnit unit, RepairSegment segment)
focal_class.class_method_signature: SegmentRunner.metricNameForRepairing(RepairSegment rs)
focal_class.full_signature: private String metricNameForRepairing(RepairSegment rs)
focal_class.identifier: metricNameForRepairing
focal_class.modifiers: private
focal_class.parameters: (RepairSegment rs)
focal_class.return: String
focal_class.signature: String metricNameForRepairing(RepairSegment rs)
focal_class.class_method_signature: SegmentRunner.metricNameForRunRepair(RepairSegment rs)
focal_class.full_signature: private String metricNameForRunRepair(RepairSegment rs)
focal_class.identifier: metricNameForRunRepair
focal_class.modifiers: private
focal_class.parameters: (RepairSegment rs)
focal_class.return: String
focal_class.signature: String metricNameForRunRepair(RepairSegment rs)
focal_class.class_method_signature: SegmentRunner.canRepair(
        RepairSegment segment,
        String keyspace,
        JmxProxy coordinator,
        Cluster cluster,
        LazyInitializer<Set<String>> busyHosts)
focal_class.full_signature:  boolean canRepair(
        RepairSegment segment,
        String keyspace,
        JmxProxy coordinator,
        Cluster cluster,
        LazyInitializer<Set<String>> busyHosts)
focal_class.identifier: canRepair
focal_class.parameters: (
        RepairSegment segment,
        String keyspace,
        JmxProxy coordinator,
        Cluster cluster,
        LazyInitializer<Set<String>> busyHosts)
focal_class.return: boolean
focal_class.signature: boolean canRepair(
        RepairSegment segment,
        String keyspace,
        JmxProxy coordinator,
        Cluster cluster,
        LazyInitializer<Set<String>> busyHosts)
focal_class.class_method_signature: SegmentRunner.okToRepairSegment(
        boolean allHostsChecked,
        boolean allLocalDcHostsChecked,
        DatacenterAvailability dcAvailability)
focal_class.full_signature: static boolean okToRepairSegment(
        boolean allHostsChecked,
        boolean allLocalDcHostsChecked,
        DatacenterAvailability dcAvailability)
focal_class.identifier: okToRepairSegment
focal_class.modifiers: static
focal_class.parameters: (
        boolean allHostsChecked,
        boolean allLocalDcHostsChecked,
        DatacenterAvailability dcAvailability)
focal_class.return: boolean
focal_class.signature: boolean okToRepairSegment(
        boolean allHostsChecked,
        boolean allLocalDcHostsChecked,
        DatacenterAvailability dcAvailability)
focal_class.class_method_signature: SegmentRunner.handlePotentialStuckRepairs(LazyInitializer<Set<String>> busyHosts, String hostName)
focal_class.full_signature: private void handlePotentialStuckRepairs(LazyInitializer<Set<String>> busyHosts, String hostName)
focal_class.identifier: handlePotentialStuckRepairs
focal_class.modifiers: private
focal_class.parameters: (LazyInitializer<Set<String>> busyHosts, String hostName)
focal_class.return: void
focal_class.signature: void handlePotentialStuckRepairs(LazyInitializer<Set<String>> busyHosts, String hostName)
focal_class.class_method_signature: SegmentRunner.getNodeMetrics(String node, String localDc, String nodeDc)
focal_class.full_signature:  Pair<String, Callable<Optional<NodeMetrics>>> getNodeMetrics(String node, String localDc, String nodeDc)
focal_class.identifier: getNodeMetrics
focal_class.parameters: (String node, String localDc, String nodeDc)
focal_class.return: Pair<String, Callable<Optional<NodeMetrics>>>
focal_class.signature: Pair<String, Callable<Optional<NodeMetrics>>> getNodeMetrics(String node, String localDc, String nodeDc)
focal_class.class_method_signature: SegmentRunner.maybeGetRemoteNodeMetrics(String node, String nodeDc)
focal_class.full_signature: private Optional<NodeMetrics> maybeGetRemoteNodeMetrics(String node, String nodeDc)
focal_class.identifier: maybeGetRemoteNodeMetrics
focal_class.modifiers: private
focal_class.parameters: (String node, String nodeDc)
focal_class.return: Optional<NodeMetrics>
focal_class.signature: Optional<NodeMetrics> maybeGetRemoteNodeMetrics(String node, String nodeDc)
focal_class.class_method_signature: SegmentRunner.getRemoteNodeMetrics(String node, String nodeDc)
focal_class.full_signature: private Optional<NodeMetrics> getRemoteNodeMetrics(String node, String nodeDc)
focal_class.identifier: getRemoteNodeMetrics
focal_class.modifiers: private
focal_class.parameters: (String node, String nodeDc)
focal_class.return: Optional<NodeMetrics>
focal_class.signature: Optional<NodeMetrics> getRemoteNodeMetrics(String node, String nodeDc)
focal_class.class_method_signature: SegmentRunner.nodesReadyForNewRepair(
        JmxProxy coordinator,
        RepairSegment segment,
        Map<String, String> dcByNode,
        LazyInitializer<Set<String>> busyHosts)
focal_class.full_signature: private boolean nodesReadyForNewRepair(
        JmxProxy coordinator,
        RepairSegment segment,
        Map<String, String> dcByNode,
        LazyInitializer<Set<String>> busyHosts)
focal_class.identifier: nodesReadyForNewRepair
focal_class.modifiers: private
focal_class.parameters: (
        JmxProxy coordinator,
        RepairSegment segment,
        Map<String, String> dcByNode,
        LazyInitializer<Set<String>> busyHosts)
focal_class.return: boolean
focal_class.signature: boolean nodesReadyForNewRepair(
        JmxProxy coordinator,
        RepairSegment segment,
        Map<String, String> dcByNode,
        LazyInitializer<Set<String>> busyHosts)
focal_class.class_method_signature: SegmentRunner.isRepairRunningOnNodes(
        RepairSegment segment,
        Map<String, String> dcByNode,
        String keyspace,
        Cluster cluster)
focal_class.full_signature: private boolean isRepairRunningOnNodes(
        RepairSegment segment,
        Map<String, String> dcByNode,
        String keyspace,
        Cluster cluster)
focal_class.identifier: isRepairRunningOnNodes
focal_class.modifiers: private
focal_class.parameters: (
        RepairSegment segment,
        Map<String, String> dcByNode,
        String keyspace,
        Cluster cluster)
focal_class.return: boolean
focal_class.signature: boolean isRepairRunningOnNodes(
        RepairSegment segment,
        Map<String, String> dcByNode,
        String keyspace,
        Cluster cluster)
focal_class.class_method_signature: SegmentRunner.getNodesInvolvedInSegment(Map<String, String> dcByNode)
focal_class.full_signature: private Collection<String> getNodesInvolvedInSegment(Map<String, String> dcByNode)
focal_class.identifier: getNodesInvolvedInSegment
focal_class.modifiers: private
focal_class.parameters: (Map<String, String> dcByNode)
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getNodesInvolvedInSegment(Map<String, String> dcByNode)
focal_class.class_method_signature: SegmentRunner.hasReplicaInNodes(
        Cluster cluster,
        String keyspace,
        RepairSegment segment,
        Collection<String> nodes)
focal_class.full_signature: private boolean hasReplicaInNodes(
        Cluster cluster,
        String keyspace,
        RepairSegment segment,
        Collection<String> nodes)
focal_class.identifier: hasReplicaInNodes
focal_class.modifiers: private
focal_class.parameters: (
        Cluster cluster,
        String keyspace,
        RepairSegment segment,
        Collection<String> nodes)
focal_class.return: boolean
focal_class.signature: boolean hasReplicaInNodes(
        Cluster cluster,
        String keyspace,
        RepairSegment segment,
        Collection<String> nodes)
focal_class.class_method_signature: SegmentRunner.getDCsByNodeForRepairSegment(
        JmxProxy coordinator,
        Cluster cluster,
        RepairSegment segment,
        String keyspace)
focal_class.full_signature: private Map<String, String> getDCsByNodeForRepairSegment(
        JmxProxy coordinator,
        Cluster cluster,
        RepairSegment segment,
        String keyspace)
focal_class.identifier: getDCsByNodeForRepairSegment
focal_class.modifiers: private
focal_class.parameters: (
        JmxProxy coordinator,
        Cluster cluster,
        RepairSegment segment,
        String keyspace)
focal_class.return: Map<String, String>
focal_class.signature: Map<String, String> getDCsByNodeForRepairSegment(
        JmxProxy coordinator,
        Cluster cluster,
        RepairSegment segment,
        String keyspace)
focal_class.class_method_signature: SegmentRunner.storeNodeMetrics(NodeMetrics metrics)
focal_class.full_signature: private void storeNodeMetrics(NodeMetrics metrics)
focal_class.identifier: storeNodeMetrics
focal_class.modifiers: private
focal_class.parameters: (NodeMetrics metrics)
focal_class.return: void
focal_class.signature: void storeNodeMetrics(NodeMetrics metrics)
focal_class.class_method_signature: SegmentRunner.handle(
        int repairNo,
        Optional<ActiveRepairService.Status> status,
        Optional<ProgressEventType> progress,
        String message,
        JmxProxy jmxProxy)
focal_class.full_signature: @Override public void handle(
        int repairNo,
        Optional<ActiveRepairService.Status> status,
        Optional<ProgressEventType> progress,
        String message,
        JmxProxy jmxProxy)
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: (
        int repairNo,
        Optional<ActiveRepairService.Status> status,
        Optional<ProgressEventType> progress,
        String message,
        JmxProxy jmxProxy)
focal_class.return: void
focal_class.signature: void handle(
        int repairNo,
        Optional<ActiveRepairService.Status> status,
        Optional<ProgressEventType> progress,
        String message,
        JmxProxy jmxProxy)
focal_class.class_method_signature: SegmentRunner.handleJmxNotificationForCassandra22(
        Optional<ProgressEventType> progress,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        JmxProxy jmxProxy)
focal_class.full_signature: private boolean handleJmxNotificationForCassandra22(
        Optional<ProgressEventType> progress,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        JmxProxy jmxProxy)
focal_class.identifier: handleJmxNotificationForCassandra22
focal_class.modifiers: private
focal_class.parameters: (
        Optional<ProgressEventType> progress,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        JmxProxy jmxProxy)
focal_class.return: boolean
focal_class.signature: boolean handleJmxNotificationForCassandra22(
        Optional<ProgressEventType> progress,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        JmxProxy jmxProxy)
focal_class.class_method_signature: SegmentRunner.handleJmxNotificationForCassandra21(
        Optional<ActiveRepairService.Status> status,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        Optional<ProgressEventType> progress,
        JmxProxy jmxProxy)
focal_class.full_signature: private boolean handleJmxNotificationForCassandra21(
        Optional<ActiveRepairService.Status> status,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        Optional<ProgressEventType> progress,
        JmxProxy jmxProxy)
focal_class.identifier: handleJmxNotificationForCassandra21
focal_class.modifiers: private
focal_class.parameters: (
        Optional<ActiveRepairService.Status> status,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        Optional<ProgressEventType> progress,
        JmxProxy jmxProxy)
focal_class.return: boolean
focal_class.signature: boolean handleJmxNotificationForCassandra21(
        Optional<ActiveRepairService.Status> status,
        RepairSegment currentSegment,
        int repairNumber,
        boolean failOutsideSynchronizedBlock,
        Optional<ProgressEventType> progress,
        JmxProxy jmxProxy)
focal_class.class_method_signature: SegmentRunner.tryClearSnapshots(String message)
focal_class.full_signature:  void tryClearSnapshots(String message)
focal_class.identifier: tryClearSnapshots
focal_class.parameters: (String message)
focal_class.return: void
focal_class.signature: void tryClearSnapshots(String message)
focal_class.class_method_signature: SegmentRunner.parseRepairId(String message)
focal_class.full_signature: static String parseRepairId(String message)
focal_class.identifier: parseRepairId
focal_class.modifiers: static
focal_class.parameters: (String message)
focal_class.return: String
focal_class.signature: String parseRepairId(String message)
focal_class.class_method_signature: SegmentRunner.intensityBasedDelayMillis(double intensity)
focal_class.full_signature:  long intensityBasedDelayMillis(double intensity)
focal_class.identifier: intensityBasedDelayMillis
focal_class.parameters: (double intensity)
focal_class.return: long
focal_class.signature: long intensityBasedDelayMillis(double intensity)
focal_class.class_method_signature: SegmentRunner.lockSegmentRunners()
focal_class.full_signature: private boolean lockSegmentRunners()
focal_class.identifier: lockSegmentRunners
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean lockSegmentRunners()
focal_class.class_method_signature: SegmentRunner.releaseSegmentRunners()
focal_class.full_signature: private void releaseSegmentRunners()
focal_class.identifier: releaseSegmentRunners
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void releaseSegmentRunners()
focal_class.class_method_signature: SegmentRunner.takeLead()
focal_class.full_signature: private boolean takeLead()
focal_class.identifier: takeLead
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean takeLead()
focal_class.class_method_signature: SegmentRunner.renewLead()
focal_class.full_signature: private boolean renewLead()
focal_class.identifier: renewLead
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean renewLead()
focal_class.class_method_signature: SegmentRunner.releaseLead()
focal_class.full_signature: private void releaseLead()
focal_class.identifier: releaseLead
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void releaseLead()
focal_class.class_method_signature: SegmentRunner.countRunningReapers()
focal_class.full_signature: private int countRunningReapers()
focal_class.identifier: countRunningReapers
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int countRunningReapers()
focal_method.body: static String parseRepairId(String message) {
      Matcher uuidMatcher = REPAIR_UUID_PATTERN.matcher(message);
      if (uuidMatcher.find()) {
        return uuidMatcher.group();
      } else {
        return null;
      }
    }
focal_method.class_method_signature: SegmentRunner.parseRepairId(String message)
focal_method.full_signature: static String parseRepairId(String message)
focal_method.identifier: parseRepairId
focal_method.invocations: matcher find group
focal_method.modifiers: static
focal_method.parameters: (String message)
focal_method.return: String
focal_method.signature: String parseRepairId(String message)