#ignite-629: remove forced flags.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5d5e8a3b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5d5e8a3b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5d5e8a3b Branch: refs/heads/gg-9998 Commit: 5d5e8a3beb4a37c0228132f3242981490cd2fbf2 Parents: 2062fec Author: ivasilinets <vasilinetc....@gmail.com> Authored: Sun Mar 29 23:49:08 2015 +0300 Committer: ivasilinets <vasilinetc....@gmail.com> Committed: Sun Mar 29 23:49:08 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheAdapter.java | 2 +- .../cache/GridCacheConcurrentMap.java | 19 +--- .../processors/cache/GridCacheContext.java | 96 +------------------- .../cache/GridCacheProjectionImpl.java | 13 +-- .../cache/GridCacheOffHeapSelfTest.java | 2 +- 5 files changed, 8 insertions(+), 124 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d5e8a3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index f836788..177b9b2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@ -381,7 +381,7 @@ public abstract class GridCacheAdapter<K, V> implements GridCache<K, V>, /** {@inheritDoc} */ @Override public Set<CacheFlag> flags() { - return F.asSet(ctx.forcedFlags()); + return new HashSet<>(); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d5e8a3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java index e0b756a..51df644 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java @@ -1802,9 +1802,6 @@ public class GridCacheConcurrentMap { private GridCacheProjectionImpl prjPerCall; /** */ - private CacheFlag[] forcedFlags; - - /** */ private boolean clone; /** @@ -1827,7 +1824,6 @@ public class GridCacheConcurrentMap { ctx = map.ctx; prjPerCall = ctx.projectionPerCall(); - forcedFlags = ctx.forcedFlags(); } /** {@inheritDoc} */ @@ -1839,7 +1835,7 @@ public class GridCacheConcurrentMap { * @return Entry iterator. */ Iterator<Cache.Entry<K, V>> entryIterator() { - return new EntryIterator<>(map, filter, ctx, prjPerCall, forcedFlags); + return new EntryIterator<>(map, filter, ctx, prjPerCall); } /** @@ -1980,9 +1976,6 @@ public class GridCacheConcurrentMap { /** */ private GridCacheProjectionImpl<K, V> prjPerCall; - /** */ - private CacheFlag[] forcedFlags; - /** * Empty constructor required for {@link Externalizable}. */ @@ -1995,19 +1988,16 @@ public class GridCacheConcurrentMap { * @param filter Entry filter. * @param ctx Cache context. * @param prjPerCall Projection per call. - * @param forcedFlags Forced flags. */ EntryIterator( GridCacheConcurrentMap map, CacheEntryPredicate[] filter, GridCacheContext<K, V> ctx, - GridCacheProjectionImpl<K, V> prjPerCall, - CacheFlag[] forcedFlags) { + GridCacheProjectionImpl<K, V> prjPerCall) { it = new Iterator0<>(map, false, filter, -1, -1); this.ctx = ctx; this.prjPerCall = prjPerCall; - this.forcedFlags = forcedFlags; } /** {@inheritDoc} */ @@ -2021,14 +2011,11 @@ public class GridCacheConcurrentMap { ctx.projectionPerCall(prjPerCall); - CacheFlag[] oldFlags = ctx.forceFlags(forcedFlags); - try { return it.next().wrapLazyValue(); } finally { ctx.projectionPerCall(oldPrj); - ctx.forceFlags(oldFlags); } } @@ -2042,7 +2029,6 @@ public class GridCacheConcurrentMap { out.writeObject(it); out.writeObject(ctx); out.writeObject(prjPerCall); - out.writeObject(forcedFlags); } /** {@inheritDoc} */ @@ -2051,7 +2037,6 @@ public class GridCacheConcurrentMap { it = (Iterator0<K, V>)in.readObject(); ctx = (GridCacheContext<K, V>)in.readObject(); prjPerCall = (GridCacheProjectionImpl<K, V>)in.readObject(); - forcedFlags = (CacheFlag[])in.readObject(); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d5e8a3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 3ad156d..5e07337 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -153,9 +153,6 @@ public class GridCacheContext<K, V> implements Externalizable { */ private ThreadLocal<GridCacheProjectionImpl<K, V>> prjPerCall = new ThreadLocal<>(); - /** Thread local forced flags that affect any projection in the same thread. */ - private ThreadLocal<CacheFlag[]> forcedFlags = new ThreadLocal<>(); - /** Cache name. */ private String cacheName; @@ -1178,30 +1175,6 @@ public class GridCacheContext<K, V> implements Externalizable { } /** - * Force projection flags for the current thread. These flags will affect all - * projections (even without flags) used within the current thread. - * - * @param flags Flags to force. - * @return Forced flags that were set prior to method call. - */ - @Nullable public CacheFlag[] forceFlags(@Nullable CacheFlag[] flags) { - CacheFlag[] oldFlags = forcedFlags.get(); - - forcedFlags.set(F.isEmpty(flags) ? null : flags); - - return oldFlags; - } - - /** - * Gets forced flags for current thread. - * - * @return Forced flags. - */ - public CacheFlag[] forcedFlags() { - return forcedFlags.get(); - } - - /** * Clone cached object. * * @param obj Object to clone @@ -1277,58 +1250,9 @@ public class GridCacheContext<K, V> implements Externalizable { GridCacheProjectionImpl<K, V> prj = prjPerCall.get(); - CacheFlag[] forced = forcedFlags.get(); - - return (prj != null && prj.flags().contains(flag)) || (forced != null && U.containsObjectArray(forced, flag)); + return (prj != null && prj.flags().contains(flag)); } - /** - * Checks whether any of the given flags is set. - * - * @param flags Flags to check. - * @return {@code true} if any of the given flags is set. - */ - public boolean hasAnyFlags(CacheFlag[] flags) { - assert !F.isEmpty(flags); - - if (nearContext()) - return dht().near().context().hasAnyFlags(flags); - - GridCacheProjectionImpl<K, V> prj = prjPerCall.get(); - - if (prj == null && F.isEmpty(forcedFlags.get())) - return false; - - for (CacheFlag f : flags) - if (hasFlag(f)) - return true; - - return false; - } - - /** - * Checks whether any of the given flags is set. - * - * @param flags Flags to check. - * @return {@code true} if any of the given flags is set. - */ - public boolean hasAnyFlags(Collection<CacheFlag> flags) { - assert !F.isEmpty(flags); - - if (nearContext()) - return dht().near().context().hasAnyFlags(flags); - - GridCacheProjectionImpl<K, V> prj = prjPerCall.get(); - - if (prj == null && F.isEmpty(forcedFlags.get())) - return false; - - for (CacheFlag f : flags) - if (hasFlag(f)) - return true; - - return false; - } /** * @return {@code True} if need check near cache context. @@ -1353,10 +1277,7 @@ public class GridCacheContext<K, V> implements Externalizable { // Have to get projection per call used by calling thread to use it in a new thread. final GridCacheProjectionImpl<K, V> prj = projectionPerCall(); - // Get flags in the same thread. - final CacheFlag[] flags = forcedFlags(); - - if (prj == null && F.isEmpty(flags)) + if (prj == null) return r; return new GPR() { @@ -1365,15 +1286,11 @@ public class GridCacheContext<K, V> implements Externalizable { projectionPerCall(prj); - CacheFlag[] oldFlags = forceFlags(flags); - try { r.run(); } finally { projectionPerCall(oldPrj); - - forceFlags(oldFlags); } } }; @@ -1395,10 +1312,7 @@ public class GridCacheContext<K, V> implements Externalizable { // Have to get projection per call used by calling thread to use it in a new thread. final GridCacheProjectionImpl<K, V> prj = projectionPerCall(); - // Get flags in the same thread. - final CacheFlag[] flags = forcedFlags(); - - if (prj == null && F.isEmpty(flags)) + if (prj == null) return r; return new GPC<T>() { @@ -1407,15 +1321,11 @@ public class GridCacheContext<K, V> implements Externalizable { projectionPerCall(prj); - CacheFlag[] oldFlags = forceFlags(flags); - try { return r.call(); } finally { projectionPerCall(oldPrj); - - forceFlags(oldFlags); } } }; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d5e8a3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java index 4ab187d..051c532 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProjectionImpl.java @@ -783,18 +783,7 @@ public class GridCacheProjectionImpl<K, V> implements GridCacheProjectionEx<K, V /** {@inheritDoc} */ @Override public Set<CacheFlag> flags() { - CacheFlag[] forced = cctx.forcedFlags(); - - if (F.isEmpty(forced)) - return flags; - - // We don't expect too many flags, so default size is fine. - Set<CacheFlag> ret = new HashSet<>(); - - ret.addAll(flags); - ret.addAll(F.asList(forced)); - - return Collections.unmodifiableSet(ret); + return flags; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5d5e8a3b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapSelfTest.java index 8b1c170..460a64c 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapSelfTest.java @@ -541,7 +541,7 @@ public class GridCacheOffHeapSelfTest extends GridCommonAbstractTest { CacheValue val = CU.value(entry.rawGet(), entry.context(), false); assertNotNull("Value null for key: " + i, val); - assertEquals(entry.key().value(entry.context().cacheObjectContext(), false), val.value()); + assertEquals(entry.key().value(entry.context().cacheObjectContext(), false), (Integer)val.value()); assertEquals(entry.version(), versions.get(i)); }