[ 
https://issues.apache.org/jira/browse/GEODE-1153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sai Boorlagadda updated GEODE-1153:
-----------------------------------
    Description: 
BucketOperatorWrapper.createBucket should invoke completion.onSuccess or 
completion.onFailure based on create bucket status.

In the below code, a completion callback is passed in as a last argument is 
ignored by the code.

{code}
    @Override
    public void createRedundantBucket(
        final InternalDistributedMember targetMember, final int i, 
        final Map<String, Long> colocatedRegionBytes, final Completion 
completion) {
      
      if(stats != null) {
        stats.startBucketCreate(regionCount);
      }
      
      final long start = System.nanoTime();
      delegate.createRedundantBucket(targetMember, i,  
          colocatedRegionBytes, new Completion() {

        @Override
        public void onSuccess() {
          long totalBytes = 0;
          long elapsed= System.nanoTime() - start;
          if(logger.isDebugEnabled()) {
            logger.debug("Rebalancing {} redundant bucket {} created on {}", 
leaderRegion, i, targetMember);
          }
          for (PartitionRebalanceDetailsImpl details : detailSet) {
            String regionPath = details.getRegionPath();
            Long lrb = colocatedRegionBytes.get(regionPath);
            if (lrb != null) { // region could have gone away - esp during 
shutdow
              long regionBytes = lrb.longValue();
              //Only add the elapsed time to the leader region.
              details.incCreates(regionBytes, 
                  details.getRegion().equals(leaderRegion) ? elapsed : 0);
              totalBytes += regionBytes;
            }
          }

          if(stats != null) {
            stats.endBucketCreate(regionCount, true, totalBytes, elapsed);
          }

        }

        @Override
        public void onFailure() {
          long elapsed= System.nanoTime() - start;

          if (logger.isDebugEnabled()) {
            logger.debug("Rebalancing {} redundant bucket {} failed creation on 
{}", leaderRegion, i, targetMember);
          }

          if(stats != null) {
            stats.endBucketCreate(regionCount, false, 0, elapsed);
          }
        }
      });
    }
{code}

  was:BucketOperatorWrapper.createBucket should invoke completion.onSuccess or 
completion.onFailure based on create bucket status.


> BucketOperatorWrapper fails to invoke completion callback.
> ----------------------------------------------------------
>
>                 Key: GEODE-1153
>                 URL: https://issues.apache.org/jira/browse/GEODE-1153
>             Project: Geode
>          Issue Type: Bug
>          Components: regions
>            Reporter: Sai Boorlagadda
>            Assignee: Sai Boorlagadda
>
> BucketOperatorWrapper.createBucket should invoke completion.onSuccess or 
> completion.onFailure based on create bucket status.
> In the below code, a completion callback is passed in as a last argument is 
> ignored by the code.
> {code}
>     @Override
>     public void createRedundantBucket(
>         final InternalDistributedMember targetMember, final int i, 
>         final Map<String, Long> colocatedRegionBytes, final Completion 
> completion) {
>       
>       if(stats != null) {
>         stats.startBucketCreate(regionCount);
>       }
>       
>       final long start = System.nanoTime();
>       delegate.createRedundantBucket(targetMember, i,  
>           colocatedRegionBytes, new Completion() {
>         @Override
>         public void onSuccess() {
>           long totalBytes = 0;
>           long elapsed= System.nanoTime() - start;
>           if(logger.isDebugEnabled()) {
>             logger.debug("Rebalancing {} redundant bucket {} created on {}", 
> leaderRegion, i, targetMember);
>           }
>           for (PartitionRebalanceDetailsImpl details : detailSet) {
>             String regionPath = details.getRegionPath();
>             Long lrb = colocatedRegionBytes.get(regionPath);
>             if (lrb != null) { // region could have gone away - esp during 
> shutdow
>               long regionBytes = lrb.longValue();
>               //Only add the elapsed time to the leader region.
>               details.incCreates(regionBytes, 
>                   details.getRegion().equals(leaderRegion) ? elapsed : 0);
>               totalBytes += regionBytes;
>             }
>           }
>           if(stats != null) {
>             stats.endBucketCreate(regionCount, true, totalBytes, elapsed);
>           }
>         }
>         @Override
>         public void onFailure() {
>           long elapsed= System.nanoTime() - start;
>           if (logger.isDebugEnabled()) {
>             logger.debug("Rebalancing {} redundant bucket {} failed creation 
> on {}", leaderRegion, i, targetMember);
>           }
>           if(stats != null) {
>             stats.endBucketCreate(regionCount, false, 0, elapsed);
>           }
>         }
>       });
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to