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 c86eed679cbce..0082375d860ce 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 @@ -1211,7 +1211,7 @@ private boolean poke0(K key, @Nullable V newVal) throws IgniteCheckedException { * @param ldr Class loader to undeploy. */ public void onUndeploy(ClassLoader ldr) { - ctx.deploy().onUndeploy(ldr); + ctx.deploy().onUndeploy(ldr, context()); } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java index 12cd679cd2220..c9467eb267242 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java @@ -205,35 +205,32 @@ public void unwind(GridCacheContext ctx) { * Undeploys given class loader. * * @param ldr Class loader to undeploy. + * @param ctx Grid cache context. */ - public void onUndeploy(final ClassLoader ldr) { + public void onUndeploy(final ClassLoader ldr, final GridCacheContext ctx) { assert ldr != null; if (log.isDebugEnabled()) log.debug("Received onUndeploy() request [ldr=" + ldr + ", cctx=" + cctx + ']'); synchronized (undeploys) { - for (final GridCacheContext cacheCtx : cctx.cacheContexts()) { - List queue = undeploys.get(cacheCtx.name()); + List queue = undeploys.get(ctx.name()); - if (queue == null) - undeploys.put(cacheCtx.name(), queue = new ArrayList<>()); + if (queue == null) + undeploys.put(ctx.name(), queue = new ArrayList<>()); - queue.add(new CA() { - @Override - public void apply() { - onUndeploy0(ldr, cacheCtx); - } - }); - } + queue.add(new CA() { + @Override + public void apply() { + onUndeploy0(ldr, ctx); + } + }); } - for (GridCacheContext cacheCtx : cctx.cacheContexts()) { - // Unwind immediately for local and replicate caches. - // We go through preloader for proper synchronization. - if (cacheCtx.isLocal()) - cacheCtx.preloader().unwindUndeploys(); - } + // Unwind immediately for local and replicate caches. + // We go through preloader for proper synchronization. + if (ctx.isLocal()) + ctx.preloader().unwindUndeploys(); } /**