Fix test failures
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/502e9611 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/502e9611 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/502e9611 Branch: refs/heads/feature/GEODE-2632-10 Commit: 502e9611631ba8aa902397f60c87b1cc9e388a3c Parents: 4fb63aa Author: Kirk Lund <[email protected]> Authored: Tue May 2 14:23:46 2017 -0700 Committer: Kirk Lund <[email protected]> Committed: Tue May 2 14:23:46 2017 -0700 ---------------------------------------------------------------------- .../internal/AsyncEventQueueFactoryImpl.java | 32 - .../query/internal/index/AbstractIndex.java | 12 +- .../query/internal/index/IndexProtocol.java | 4 +- .../geode/internal/cache/AbstractRegion.java | 2 +- .../geode/internal/cache/PartitionedRegion.java | 32 +- .../wan/serial/SerialGatewaySenderQueue.java | 55 +- .../internal/cache/xmlcache/CacheCreation.java | 4 +- .../geode/cache30/CacheXml66DUnitTest.java | 592 ++++++++----------- .../geode/cache30/CacheXml70DUnitTest.java | 32 +- .../geode/cache30/CacheXml80DUnitTest.java | 70 +-- .../geode/cache30/CacheXml81DUnitTest.java | 24 +- .../geode/cache30/CacheXmlGeode10DUnitTest.java | 224 ++++--- .../apache/geode/cache30/CacheXmlTestCase.java | 60 +- .../cache/execute/Bug51193DUnitTest.java | 1 - ...tentColocatedPartitionedRegionDUnitTest.java | 3 - .../cache/internal/JUnit3CacheTestCase.java | 4 +- .../cache/internal/JUnit4CacheTestCase.java | 8 +- .../geode/cache/CacheXml70GatewayDUnitTest.java | 25 +- .../geode/cache/CacheXml80GatewayDUnitTest.java | 46 +- 19 files changed, 480 insertions(+), 750 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueFactoryImpl.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueFactoryImpl.java b/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueFactoryImpl.java index 042d0f7..7549a26 100644 --- a/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueFactoryImpl.java +++ b/geode-core/src/main/java/org/apache/geode/cache/asyncqueue/internal/AsyncEventQueueFactoryImpl.java @@ -152,38 +152,6 @@ public class AsyncEventQueueFactoryImpl implements AsyncEventQueueFactory { logger.debug("Creating GatewaySender that underlies the AsyncEventQueue"); } - // TODO: Suranjan .separate asynceventqueue from gatewaysender - // GatewaySenderFactory senderFactory = this.cache.createGatewaySenderFactory(); - // senderFactory.setMaximumQueueMemory(attrs.getMaximumQueueMemory()); - // senderFactory.setBatchSize(attrs.getBatchSize()); - // senderFactory.setBatchTimeInterval(attrs.getBatchTimeInterval()); - // if (attrs.isPersistenceEnabled()) { - // senderFactory.setPersistenceEnabled(true); - // } - // senderFactory.setDiskStoreName(attrs.getDiskStoreName()); - // senderFactory.setDiskSynchronous(attrs.isDiskSynchronous()); - // senderFactory.setBatchConflationEnabled(attrs.isBatchConflationEnabled()); - // senderFactory.setParallel(attrs.isParallel()); - // senderFactory.setDispatcherThreads(attrs.getDispatcherThreads()); - // if OrderPolicy is not null, set it, otherwise, let the default OrderPolicy take the charge - // if (attrs.getOrderPolicy() != null) { - // senderFactory.setOrderPolicy(attrs.getOrderPolicy()); - // } - // for (GatewayEventFilter filter : attrs.eventFilters) { - // senderFactory.addGatewayEventFilter(filter); - // } - // senderFactory.setGatewayEventSubstitutionFilter(attrs.getGatewayEventSubstitutionFilter()); - // Type cast to GatewaySenderFactory implementation impl to add the async event listener - // and set the isForInternalUse to true. These methods are not exposed on GatewaySenderFactory - // GatewaySenderFactory factoryImpl = (GatewaySenderFactoryImpl) senderFactory; - // senderFactory.setForInternalUse(true); - // senderFactory.addAsyncEventListener(listener); - // senderFactory.setBucketSorted(attrs.isBucketSorted()); - // add member id to differentiate between this region and the redundant bucket - // region created for this queue. - // GatewaySender sender = - // senderFactory.create( - // AsyncEventQueueImpl.getSenderIdFromAsyncEventQueueId(asyncQueueId)); addAsyncEventListener(listener); GatewaySender sender = create(AsyncEventQueueImpl.getSenderIdFromAsyncEventQueueId(asyncQueueId)); http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java index d0a7299..3837838 100644 --- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java +++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java @@ -488,9 +488,9 @@ public abstract class AbstractIndex implements IndexProtocol { } @Override - public boolean addAllIndexMappings(Collection c) throws IMQException { - for (Object regionEntry : c) { - this.addMapping((RegionEntry) regionEntry); + public boolean addAllIndexMappings(Collection<RegionEntry> c) throws IMQException { + for (RegionEntry regionEntry : c) { + addMapping(regionEntry); } // if no exception, then success return true; @@ -507,9 +507,9 @@ public abstract class AbstractIndex implements IndexProtocol { } @Override - public boolean removeAllIndexMappings(Collection c) throws IMQException { - for (Object regionEntry : c) { - removeMapping((RegionEntry) regionEntry, OTHER_OP); + public boolean removeAllIndexMappings(Collection<RegionEntry> c) throws IMQException { + for (RegionEntry regionEntry : c) { + removeMapping(regionEntry, OTHER_OP); } // if no exception, then success return true; http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexProtocol.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexProtocol.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexProtocol.java index 91faeb1..ab07f15 100644 --- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexProtocol.java +++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/IndexProtocol.java @@ -42,14 +42,14 @@ public interface IndexProtocol extends Index { boolean addIndexMapping(RegionEntry entry) throws IMQException; - boolean addAllIndexMappings(Collection c) throws IMQException; + boolean addAllIndexMappings(Collection<RegionEntry> c) throws IMQException; /** * @param opCode one of OTHER_OP, BEFORE_UPDATE_OP, AFTER_UPDATE_OP. */ boolean removeIndexMapping(RegionEntry entry, int opCode) throws IMQException; - boolean removeAllIndexMappings(Collection c) throws IMQException; + boolean removeAllIndexMappings(Collection<RegionEntry> c) throws IMQException; boolean clear() throws QueryException; http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java index 31e7a25..9309374 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/AbstractRegion.java @@ -1118,7 +1118,7 @@ public abstract class AbstractRegion implements Region, RegionAttributes, Attrib void checkEntryTimeoutAction(String mode, ExpirationAction ea) { if ((this.dataPolicy.withReplication() || this.dataPolicy.withPartitioning()) - && ea == ExpirationAction.LOCAL_DESTROY || ea == ExpirationAction.LOCAL_INVALIDATE) { + && (ea == ExpirationAction.LOCAL_DESTROY || ea == ExpirationAction.LOCAL_INVALIDATE)) { throw new IllegalArgumentException( LocalizedStrings.AbstractRegion_0_ACTION_IS_INCOMPATIBLE_WITH_THIS_REGIONS_DATA_POLICY .toLocalizedString(mode)); http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java index 8be5646..2470f8f 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java @@ -2034,9 +2034,7 @@ public class PartitionedRegion extends LocalRegion } } catch (RegionDestroyedException rde) { if (!rde.getRegionFullPath().equals(getFullPath())) { - RegionDestroyedException rde2 = new RegionDestroyedException(toString(), getFullPath()); - rde2.initCause(rde); - throw rde2; + throw new RegionDestroyedException(toString(), getFullPath(), rde); } } finally { if (putAllOp_save == null) { @@ -3960,12 +3958,10 @@ public class PartitionedRegion extends LocalRegion } else { // with transaction if (prce instanceof BucketNotFoundException) { - TransactionException ex = new TransactionDataRebalancedException( + throw new TransactionDataRebalancedException( LocalizedStrings.PartitionedRegion_TRANSACTIONAL_DATA_MOVED_DUE_TO_REBALANCING .toLocalizedString(key), prce); - ex.initCause(prce); - throw ex; } Throwable cause = prce.getCause(); if (cause instanceof PrimaryBucketException) { @@ -3973,11 +3969,9 @@ public class PartitionedRegion extends LocalRegion } else if (cause instanceof TransactionDataRebalancedException) { throw (TransactionDataRebalancedException) cause; } else if (cause instanceof RegionDestroyedException) { - TransactionException ex = new TransactionDataRebalancedException( + throw new TransactionDataRebalancedException( LocalizedStrings.PartitionedRegion_TRANSACTIONAL_DATA_MOVED_DUE_TO_REBALANCING - .toLocalizedString(key)); - ex.initCause(cause); - throw ex; + .toLocalizedString(key), cause); } else { // Make transaction fail so client could retry // instead of returning null if ForceReattemptException is thrown. @@ -5140,9 +5134,7 @@ public class PartitionedRegion extends LocalRegion } catch (RegionDestroyedException rde) { if (!rde.getRegionFullPath().equals(getFullPath())) { // Handle when a bucket is destroyed - RegionDestroyedException rde2 = new RegionDestroyedException(toString(), getFullPath()); - rde2.initCause(rde); - throw rde2; + throw new RegionDestroyedException(toString(), getFullPath(), rde); } } finally { this.prStats.endDestroy(startTime); @@ -5637,9 +5629,7 @@ public class PartitionedRegion extends LocalRegion } catch (RegionDestroyedException rde) { if (!rde.getRegionFullPath().equals(getFullPath())) { // Handle when a bucket is destroyed - RegionDestroyedException rde2 = new RegionDestroyedException(toString(), getFullPath()); - rde2.initCause(rde); - throw rde2; + throw new RegionDestroyedException(toString(), getFullPath(), rde); } } finally { this.prStats.endInvalidate(startTime); @@ -6364,9 +6354,7 @@ public class PartitionedRegion extends LocalRegion retryNode = getOrCreateNodeForBucketRead(bucketIdInt); } catch (RegionDestroyedException rde) { if (!rde.getRegionFullPath().equals(getFullPath())) { - RegionDestroyedException rde2 = new RegionDestroyedException(toString(), getFullPath()); - rde2.initCause(rde); - throw rde2; + throw new RegionDestroyedException(toString(), getFullPath(), rde); } } @@ -9451,11 +9439,9 @@ public class PartitionedRegion extends LocalRegion try { br.checkForPrimary(); } catch (PrimaryBucketException pbe) { - RuntimeException re = new TransactionDataRebalancedException( + throw new TransactionDataRebalancedException( LocalizedStrings.PartitionedRegion_TRANSACTIONAL_DATA_MOVED_DUE_TO_REBALANCING - .toLocalizedString()); - re.initCause(pbe); - throw re; + .toLocalizedString(), pbe); } } } catch (RegionDestroyedException ignore) { http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java index 02baf81..60775a4 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderQueue.java @@ -55,6 +55,7 @@ import org.apache.geode.internal.cache.Conflatable; import org.apache.geode.internal.cache.DistributedRegion; import org.apache.geode.internal.cache.EntryEventImpl; import org.apache.geode.internal.cache.GemFireCacheImpl; +import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.InternalRegionArguments; import org.apache.geode.internal.cache.LocalRegion; import org.apache.geode.internal.cache.RegionQueue; @@ -233,18 +234,8 @@ public class SerialGatewaySenderQueue implements RegionQueue { (r instanceof DistributedRegion && r.getName().equals(PeerTypeRegistration.REGION_NAME)); final boolean isWbcl = this.regionName.startsWith(AsyncEventQueueImpl.ASYNC_EVENT_QUEUE_PREFIX); if (!(isPDXRegion && isWbcl)) { - // TODO: Kishor : after merging this change. AsyncEventQueue test failed - // with data inconsistency. As of now going ahead with sync putandGetKey. - // Need to work on this during cedar - // if (this.keyPutNoSync) { - // putAndGetKeyNoSync(event); - // } - // else { - // synchronized (this) { putAndGetKey(event); return true; - // } - // } } return false; } @@ -366,26 +357,6 @@ public class SerialGatewaySenderQueue implements RegionQueue { // If we do want to support it then each caller needs // to call freeOffHeapResources and the returned GatewaySenderEventImpl throw new UnsupportedOperationException(); - // resetLastPeeked(); - // AsyncEvent object = peekAhead(); - // // If it is not null, destroy it and increment the head key - // if (object != null) { - // Long key = this.peekedIds.remove(); - // if (logger.isTraceEnabled()) { - // logger.trace("{}: Retrieved {} -> {}",this, key, object); - // } - // // Remove the entry at that key with a callback arg signifying it is - // // a WAN queue so that AbstractRegionEntry.destroy can get the value - // // even if it has been evicted to disk. In the normal case, the - // // AbstractRegionEntry.destroy only gets the value in the VM. - // this.region.destroy(key, RegionQueue.WAN_QUEUE_TOKEN); - // updateHeadKey(key.longValue()); - - // if (logger.isTraceEnabled()) { - // logger.trace("{}: Destroyed {} -> {}", this, key, object); - // } - // } - // return object; } public List<AsyncEvent> take(int batchSize) throws CacheException { @@ -393,20 +364,6 @@ public class SerialGatewaySenderQueue implements RegionQueue { // If we do want to support it then the callers // need to call freeOffHeapResources on each returned GatewaySenderEventImpl throw new UnsupportedOperationException(); - // List<AsyncEvent> batch = new ArrayList<AsyncEvent>( - // batchSize * 2); - // for (int i = 0; i < batchSize; i++) { - // AsyncEvent obj = take(); - // if (obj != null) { - // batch.add(obj); - // } else { - // break; - // } - // } - // if (logger.isTraceEnabled()) { - // logger.trace("{}: Took a batch of {} entries", this, batch.size()); - // } - // return batch; } /** @@ -969,7 +926,7 @@ public class SerialGatewaySenderQueue implements RegionQueue { */ @SuppressWarnings({"unchecked", "rawtypes"}) private void initializeRegion(AbstractGatewaySender sender, CacheListener listener) { - final GemFireCacheImpl gemCache = (GemFireCacheImpl) sender.getCache(); + final InternalCache gemCache = sender.getCache(); this.region = gemCache.getRegion(this.regionName); if (this.region == null) { AttributesFactory<Long, AsyncEvent> factory = new AttributesFactory<Long, AsyncEvent>(); @@ -992,11 +949,9 @@ public class SerialGatewaySenderQueue implements RegionQueue { factory.setEvictionAttributes(ea); factory.setConcurrencyChecksEnabled(false); - factory.setDiskStoreName(this.diskStoreName); - // TODO: Suranjan, can we do the following - // In case of persistence write to disk sync and in case of eviction - // write in async + + // In case of persistence write to disk sync and in case of eviction write in async factory.setDiskSynchronous(this.isDiskSynchronous); // Create the region @@ -1213,7 +1168,7 @@ public class SerialGatewaySenderQueue implements RegionQueue { AbstractGatewaySender sender = null; protected SerialGatewaySenderQueueMetaRegion(String regionName, RegionAttributes attrs, - LocalRegion parentRegion, GemFireCacheImpl cache, AbstractGatewaySender sender) { + LocalRegion parentRegion, InternalCache cache, AbstractGatewaySender sender) { super(regionName, attrs, parentRegion, cache, new InternalRegionArguments().setDestroyLockFlag(true).setRecreateFlag(false) .setSnapshotInputStream(null).setImageTarget(null) http://git-wip-us.apache.org/repos/asf/geode/blob/502e9611/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheCreation.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheCreation.java b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheCreation.java index 52030af..12a71a6 100755 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheCreation.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheCreation.java @@ -1005,8 +1005,8 @@ public class CacheCreation implements InternalCache { @Override public Region getRegion(String path) { - if (!path.contains("/")) { - throw new UnsupportedOperationException("Region path must contain '/'"); + if (path.contains("/")) { + throw new UnsupportedOperationException("Region path '" + path + "' contains '/'"); } return this.roots.get(path); }
