private boolean continueVolunteering() {
      synchronized (BucketAdvisor.this) {
        // false if caller is not the volunteeringThread
        if (!Thread.currentThread().equals(volunteeringThread)) {
          return false;
        }
        if (!isVolunteering() && !isBecomingPrimary()) {
          return false;
        }

        // false if primaryMember is not null
        if (!isAggressive() && basicGetPrimaryMember() != null) {
          return false;
        }
        // false if this member is already primary
        if (isPrimary()) {
          return false;
        }
        // false if closed
        if (isClosed()) {
          return false;
        }
        // false if no longer hosting
        return isHosting();

        // must be true... need to continue volunteering
      }
    }
Called from catch blocks in {@link #doVolunteerForPrimary()}. Handles the exception properly
based on advisor settings and shutdown condition.

@param e the RuntimeException that was caught while volunteering
@param loggit true if message should be logged if shutdown condition is not met
geode-core/src/main/java/org/apache/geode/internal/cache/BucketAdvisor.java