# Fix org.jsr107.tck.CacheTest test
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8083d9a2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8083d9a2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8083d9a2 Branch: refs/heads/ignite-55-2 Commit: 8083d9a25e85a68f292a18281ce0c2bf452af6a7 Parents: db8b4c7 Author: sevdokimov <sevdoki...@gridgain.com> Authored: Wed Feb 11 17:40:48 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Wed Feb 11 17:40:48 2015 +0300 ---------------------------------------------------------------------- .../java/org/apache/ignite/cache/CacheManager.java | 15 +++++++++------ .../internal/processors/cache/CacheEntryImpl.java | 6 +++--- .../internal/processors/cache/IgniteCacheProxy.java | 6 +++++- 3 files changed, 17 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8083d9a2/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java index 7ac45be..fc8c52e 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheManager.java @@ -57,6 +57,9 @@ public class CacheManager implements javax.cache.CacheManager { /** */ private final AtomicBoolean closed = new AtomicBoolean(); + /** */ + private final AtomicInteger mgrIdx = new AtomicInteger(); + /** * @param uri Uri. * @param cachingProvider Caching provider. @@ -128,7 +131,7 @@ public class CacheManager implements javax.cache.CacheManager { if (uri.equals(cachingProvider.getDefaultURI())) { IgniteConfiguration cfg = new IgniteConfiguration(); - cfg.setGridName("grid-for-" + cacheName); + cfg.setGridName(mgrIdx.incrementAndGet() + "-grid-for-" + cacheName); cfg.setCacheConfiguration(new CacheConfiguration((CompleteConfiguration)cacheCfg)); @@ -346,20 +349,20 @@ public class CacheManager implements javax.cache.CacheManager { * @param name cache name. */ public void registerCacheObject(MBeanServer mBeanServer, Object mxbean, String name, String objectName) { - ObjectName registeredObjectName = getObjectName(name, objectName); + ObjectName registeredObjName = getObjectName(name, objectName); try { - if (!isRegistered(mBeanServer, registeredObjectName)) + if (!isRegistered(mBeanServer, registeredObjName)) if (objectName.equals(CACHE_CONFIGURATION)) mBeanServer.registerMBean(new IgniteStandardMXBean((CacheMXBean)mxbean, CacheMXBean.class), - registeredObjectName); + registeredObjName); else mBeanServer.registerMBean( new IgniteStandardMXBean((CacheStatisticsMXBean)mxbean, CacheStatisticsMXBean.class), - registeredObjectName); + registeredObjName); } catch (Exception e) { - throw new CacheException("Failed to register MBean: " + registeredObjectName, e); + throw new CacheException("Failed to register MBean: " + registeredObjName, e); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8083d9a2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImpl.java index e609cd1..e22b34a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheEntryImpl.java @@ -51,10 +51,10 @@ public class CacheEntryImpl<K, V> implements Cache.Entry<K, V> { /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public <T> T unwrap(Class<T> cls) { - if (!cls.equals(getClass())) - throw new IllegalArgumentException("Unwrapping to class is not supported: " + cls); + if(cls.isAssignableFrom(getClass())) + return cls.cast(this); - return (T)this; + throw new IllegalArgumentException("Unwrapping to class is not supported: " + cls); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8083d9a2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java index b8581e7..0ee919c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java @@ -31,6 +31,7 @@ import org.apache.ignite.mxbean.*; import org.jetbrains.annotations.*; import javax.cache.*; +import javax.cache.CacheManager; import javax.cache.configuration.*; import javax.cache.expiry.*; import javax.cache.integration.*; @@ -868,7 +869,10 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V /** {@inheritDoc} */ @Override public void close() { // TODO IGNITE-45 (Support start/close/destroy cache correctly) - getCacheManager().destroyCache(getName()); + CacheManager cacheMgr = getCacheManager(); + + if (cacheMgr != null) // cacheMgr == null means cache is closed. + cacheMgr.destroyCache(getName()); } /** {@inheritDoc} */