class PartitionedRegion extends LocalRegion implements CacheDistributionAdvisee, QueryExecutor {

  void handleForceReattemptExceptionWithTransaction(
      ForceReattemptException forceReattemptException) {
    if (forceReattemptException instanceof BucketNotFoundException) {
      throw new TransactionDataRebalancedException(DATA_MOVED_BY_REBALANCE,
          forceReattemptException);
    }
    Throwable cause = forceReattemptException.getCause();
    if (cause instanceof PrimaryBucketException) {
      throw (PrimaryBucketException) cause;
    } else if (cause instanceof TransactionDataRebalancedException) {
      throw (TransactionDataRebalancedException) cause;
    } else if (cause instanceof RegionDestroyedException) {
      throw new TransactionDataRebalancedException(DATA_MOVED_BY_REBALANCE, cause);
    } else {
      throw new TransactionDataRebalancedException(DATA_MOVED_BY_REBALANCE,
          forceReattemptException);
    }
  }

  public  PartitionedRegion(String regionName,
      RegionAttributes regionAttributes,
      LocalRegion parentRegion,
      InternalCache cache,
      InternalRegionArguments internalRegionArgs,
      StatisticsClock statisticsClock,
      ColocationLoggerFactory colocationLoggerFactory);

}