@@ -1308,35 +1308,27 @@ public boolean isJoined()
1308
1308
1309
1309
public void rebuild (String sourceDc )
1310
1310
{
1311
- try
1311
+ if ( sourceDc != null )
1312
1312
{
1313
- // check ongoing rebuild
1314
- if (!isRebuilding .compareAndSet (false , true ))
1313
+ TokenMetadata .Topology topology = getTokenMetadata ().cloneOnlyTokenMap ().getTopology ();
1314
+ Set <String > availableDCs = topology .getDatacenterEndpoints ().keySet ();
1315
+ if (!availableDCs .contains (sourceDc ))
1315
1316
{
1316
- throw new IllegalStateException ("Node is still rebuilding. Check nodetool netstats." );
1317
- }
1318
-
1319
- if (sourceDc != null )
1320
- {
1321
- TokenMetadata .Topology topology = getTokenMetadata ().cloneOnlyTokenMap ().getTopology ();
1322
- Set <String > availableDCs = topology .getDatacenterEndpoints ().keySet ();
1323
- if (!availableDCs .contains (sourceDc ))
1324
- {
1325
- throw new IllegalArgumentException (String .format ("Provided datacenter '%s' is not a valid datacenter, available datacenters are: %s" ,
1326
- sourceDc , String .join ("," , availableDCs )));
1327
- }
1317
+ throw new IllegalArgumentException (String .format ("Provided datacenter '%s' is not a valid datacenter, available datacenters are: %s" ,
1318
+ sourceDc , String .join ("," , availableDCs )));
1328
1319
}
1329
1320
}
1330
- catch (Throwable ex )
1321
+
1322
+ // check ongoing rebuild
1323
+ if (!isRebuilding .compareAndSet (false , true ))
1331
1324
{
1332
- isRebuilding .set (false );
1333
- throw ex ;
1325
+ throw new IllegalStateException ("Node is still rebuilding. Check nodetool netstats." );
1334
1326
}
1335
1327
1336
- logger .info ("rebuild from dc: {}" , sourceDc == null ? "(any dc)" : sourceDc );
1337
-
1338
1328
try
1339
1329
{
1330
+ logger .info ("rebuild from dc: {}" , sourceDc == null ? "(any dc)" : sourceDc );
1331
+
1340
1332
RangeStreamer streamer = new RangeStreamer (tokenMetadata ,
1341
1333
null ,
1342
1334
FBUtilities .getBroadcastAddress (),
0 commit comments