You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Mike Drob (JIRA)" <ji...@apache.org> on 2014/06/11 23:16:05 UTC

[jira] [Created] (ACCUMULO-2894) MultiTableBatchWriter.getBatchWriter has dubious loop condition

Mike Drob created ACCUMULO-2894:
-----------------------------------

             Summary: MultiTableBatchWriter.getBatchWriter has dubious loop condition
                 Key: ACCUMULO-2894
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2894
             Project: Accumulo
          Issue Type: Improvement
          Components: client
    Affects Versions: 1.6.0
            Reporter: Mike Drob


This while loop could use a variable instead of multiple break and continue labels.
{code}
    while (true) {
      long cacheResetCount = Tables.getCacheResetCount();

      // cacheResetCount could change after this point in time, but I think thats ok because just want to ensure this methods sees changes
      // made before it was called.
      
      long internalResetCount = cacheLastState.get();

      if (cacheResetCount > internalResetCount) {
        if (!cacheLastState.compareAndSet(internalResetCount, cacheResetCount)) {
          continue; // concurrent operation, lets not possibly move cacheLastState backwards in the case where a thread pauses for along time
        }

        nameToIdCache.invalidateAll();
        break;
      }

      break;
    }
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)