/** * invokes a test hook, if it was installed, and removes it. */ public void invokeBucketReadHook() { Runnable r = this.bucketReadHook; if (r != null) { setBucketReadHook(null); r.run(); } } public void setBucketReadHook(Runnable r) {
/** * invokes a test hook, if it was installed, and removes it. */ public void invokeBucketReadHook() { Runnable r = this.bucketReadHook; if (r != null) { setBucketReadHook(null); r.run(); } } public void setBucketReadHook(Runnable r) {
public Object call() throws Exception { PartitionedRegion pr = (PartitionedRegion)cache.getRegion("CustomerPR"); Runnable r = new ReadHook(); pr.getDataStore().setBucketReadHook(r); return null; } };
public void run() { final PartitionedRegion pr = (PartitionedRegion) getCache().getRegion(regionPath[0]); final boolean[] invoked = new boolean[]{false}; final PartitionedRegionDataStore prds = pr.getDataStore(); prds.setBucketReadHook(new Runnable() { public void run() { invoked[0] = true; pr.getLogWriterI18n().info(LocalizedStrings.DEBUG, "in bucketReadHook"/*, new Exception("STACK")*/); prds.removeBucket(0, false); } }); try { Bucket bucket = pr.getRegionAdvisor().getBucket(0); assertTrue("Target member is not hosting bucket to remove", bucket.isHosting()); assertNotNull("Bucket is null on target member", bucket); assertNotNull("BucketRegion is null on target member", bucket.getBucketAdvisor() .getProxyBucketRegion().getHostedBucketRegion()); assertEquals(false, invoked[0]); op.runit(pr, KEY, VALUE); assertEquals(true, invoked[0]); } finally { prds.setBucketReadHook(null); } } });