# ignite-510
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/385d9c8e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/385d9c8e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/385d9c8e Branch: refs/heads/ignite-gg-9933 Commit: 385d9c8e5d13423bbb7e49e36afaa3775e075f1d Parents: 2e6e93d Author: sboikov <sboi...@gridgain.com> Authored: Thu Mar 19 12:38:35 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Mar 19 12:38:35 2015 +0300 ---------------------------------------------------------------------- .../apache/ignite/internal/IgniteKernal.java | 2 +- .../deployment/GridDeploymentLocalStore.java | 5 +- .../GridDeploymentPerLoaderStore.java | 5 +- .../GridDeploymentPerVersionStore.java | 5 +- .../optimized/OptimizedClassDescriptor.java | 20 ++++++-- .../optimized/OptimizedMarshaller.java | 30 +++++++----- .../optimized/OptimizedMarshallerUtils.java | 50 +++++++------------- .../optimized/OptimizedObjectInputStream.java | 19 ++++++-- .../optimized/OptimizedObjectOutputStream.java | 21 ++++++-- .../processors/service/DummyService.java | 4 ++ .../optimized/OptimizedMarshallerTest.java | 4 +- .../OptimizedObjectStreamSelfTest.java | 8 +++- .../testframework/junits/GridAbstractTest.java | 2 +- 13 files changed, 106 insertions(+), 69 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index 031c054..ab1038c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -1797,7 +1797,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { notifyLifecycleBeansEx(LifecycleEventType.AFTER_NODE_STOP); // Clean internal class/classloader caches to avoid stopped contexts held in memory. - OptimizedMarshaller.clearCache(); + U.clearClassCache(); MarshallerExclusions.clearCache(); GridEnumCache.clear(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java index 195621c..cd94854 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentLocalStore.java @@ -523,8 +523,9 @@ class GridDeploymentLocalStore extends GridDeploymentStoreAdapter { // Resource cleanup. ctx.resource().onUndeployed(dep); - // Clear optimized marshaller's cache. If another marshaller is used, this is no-op. - OptimizedMarshaller.onUndeploy(ldr); + // Clear optimized marshaller's cache. + if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) + ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java index 7a98cbc..e81cf38 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerLoaderStore.java @@ -496,8 +496,9 @@ public class GridDeploymentPerLoaderStore extends GridDeploymentStoreAdapter { ctx.cache().onUndeployed(ldr); ctx.stream().onUndeployed(ldr); - // Clear optimized marshaller's cache. If another marshaller is used, this is no-op. - OptimizedMarshaller.onUndeploy(ldr); + // Clear optimized marshaller's cache. + if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) + ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java index dc72248..1cfe4b8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java @@ -1259,8 +1259,9 @@ public class GridDeploymentPerVersionStore extends GridDeploymentStoreAdapter { ctx.cache().onUndeployed(ldr); ctx.stream().onUndeployed(ldr); - // Clear optimized marshaller's cache. If another marshaller is used, this is no-op. - OptimizedMarshaller.onUndeploy(ldr); + // Clear optimized marshaller's cache. + if (ctx.config().getMarshaller() instanceof OptimizedMarshaller) + ((OptimizedMarshaller)ctx.config().getMarshaller()).onUndeploy(ldr); clearSerializationCaches(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java index 2e9c659..9eaf7af 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedClassDescriptor.java @@ -26,6 +26,7 @@ import sun.misc.*; import java.io.*; import java.lang.reflect.*; import java.util.*; +import java.util.concurrent.*; import static java.lang.reflect.Modifier.*; import static org.apache.ignite.marshaller.optimized.OptimizedMarshallerUtils.*; @@ -44,6 +45,9 @@ class OptimizedClassDescriptor { /** Context. */ private final MarshallerContext ctx; + /** */ + private ConcurrentMap<Class, OptimizedClassDescriptor> clsMap; + /** ID mapper. */ private final OptimizedMarshallerIdMapper mapper; @@ -107,16 +111,23 @@ class OptimizedClassDescriptor { /** * Creates descriptor for class. * + * @param typeId Type ID. + * @param clsMap Class descriptors by class map. * @param cls Class. * @param ctx Context. * @param mapper ID mapper. * @throws IOException In case of error. */ @SuppressWarnings("ForLoopReplaceableByForEach") - OptimizedClassDescriptor(Class<?> cls, int typeId, MarshallerContext ctx, OptimizedMarshallerIdMapper mapper) + OptimizedClassDescriptor(Class<?> cls, + int typeId, + ConcurrentMap<Class, OptimizedClassDescriptor> clsMap, + MarshallerContext ctx, + OptimizedMarshallerIdMapper mapper) throws IOException { this.cls = cls; this.typeId = typeId; + this.clsMap = clsMap; this.ctx = ctx; this.mapper = mapper; @@ -614,7 +625,10 @@ class OptimizedClassDescriptor { break; case OBJ_ARR: - OptimizedClassDescriptor compDesc = classDescriptor(obj.getClass().getComponentType(), ctx, mapper); + OptimizedClassDescriptor compDesc = classDescriptor(clsMap, + obj.getClass().getComponentType(), + ctx, + mapper); compDesc.writeTypeData(out); @@ -673,7 +687,7 @@ class OptimizedClassDescriptor { break; case CLS: - OptimizedClassDescriptor clsDesc = classDescriptor((Class<?>)obj, ctx, mapper); + OptimizedClassDescriptor clsDesc = classDescriptor(clsMap, (Class<?>)obj, ctx, mapper); clsDesc.writeTypeData(out); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshaller.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshaller.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshaller.java index 8ceed43..7e61d5b 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshaller.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshaller.java @@ -19,11 +19,14 @@ package org.apache.ignite.marshaller.optimized; import org.apache.ignite.*; import org.apache.ignite.internal.util.*; +import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.marshaller.*; +import org.jdk8.backport.*; import org.jetbrains.annotations.*; import sun.misc.*; import java.io.*; +import java.util.concurrent.*; /** * Optimized implementation of {@link org.apache.ignite.marshaller.Marshaller}. Unlike {@link org.apache.ignite.marshaller.jdk.JdkMarshaller}, @@ -82,6 +85,9 @@ public class OptimizedMarshaller extends AbstractMarshaller { /** ID mapper. */ private OptimizedMarshallerIdMapper mapper; + /** Class descriptors by class. */ + private final ConcurrentMap<Class, OptimizedClassDescriptor> clsMap = new ConcurrentHashMap8<>(); + /** * Creates new marshaller will all defaults. * @@ -89,7 +95,7 @@ public class OptimizedMarshaller extends AbstractMarshaller { */ public OptimizedMarshaller() { if (!available()) - throw new IgniteException("Using GridOptimizedMarshaller on unsupported JVM version (some of " + + throw new IgniteException("Using OptimizedMarshaller on unsupported JVM version (some of " + "JVM-private APIs required for the marshaller to work are missing)."); } @@ -149,7 +155,7 @@ public class OptimizedMarshaller extends AbstractMarshaller { try { objOut = OptimizedObjectStreamRegistry.out(); - objOut.context(ctx, mapper, requireSer); + objOut.context(clsMap, ctx, mapper, requireSer); objOut.out().outputStream(out); @@ -170,7 +176,7 @@ public class OptimizedMarshaller extends AbstractMarshaller { try { objOut = OptimizedObjectStreamRegistry.out(); - objOut.context(ctx, mapper, requireSer); + objOut.context(clsMap, ctx, mapper, requireSer); objOut.writeObject(obj); @@ -194,7 +200,7 @@ public class OptimizedMarshaller extends AbstractMarshaller { try { objIn = OptimizedObjectStreamRegistry.in(); - objIn.context(ctx, mapper, clsLdr != null ? clsLdr : dfltClsLdr); + objIn.context(clsMap, ctx, mapper, clsLdr != null ? clsLdr : dfltClsLdr); objIn.in().inputStream(in); @@ -223,7 +229,7 @@ public class OptimizedMarshaller extends AbstractMarshaller { try { objIn = OptimizedObjectStreamRegistry.in(); - objIn.context(ctx, mapper, clsLdr != null ? clsLdr : dfltClsLdr); + objIn.context(clsMap, ctx, mapper, clsLdr != null ? clsLdr : dfltClsLdr); objIn.in().bytes(arr, arr.length); @@ -278,14 +284,12 @@ public class OptimizedMarshaller extends AbstractMarshaller { * * @param ldr Class loader being undeployed. */ - public static void onUndeploy(ClassLoader ldr) { - OptimizedMarshallerUtils.onUndeploy(ldr); - } + public void onUndeploy(ClassLoader ldr) { + for (Class<?> cls : clsMap.keySet()) { + if (ldr.equals(cls.getClassLoader())) + clsMap.remove(cls); + } - /** - * Clears internal caches and frees memory. Usually called on system stop. - */ - public static void clearCache() { - OptimizedMarshallerUtils.clearCache(); + U.clearClassCache(ldr); } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerUtils.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerUtils.java index 8c64e33..ec8039c 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerUtils.java @@ -151,9 +151,6 @@ class OptimizedMarshallerUtils { /** JDK marshaller. */ static final JdkMarshaller JDK_MARSH = new JdkMarshaller(); - /** Class descriptors by class. */ - private static final ConcurrentMap<Class, OptimizedClassDescriptor> DESC_BY_CLS = new ConcurrentHashMap8<>(); - static { try { HASH_SET_MAP_OFF = UNSAFE.objectFieldOffset(HashSet.class.getDeclaredField("map")); @@ -172,18 +169,21 @@ class OptimizedMarshallerUtils { /** * Gets descriptor for provided class. * + * @param clsMap Class descriptors by class map. * @param cls Class. * @param ctx Context. * @param mapper ID mapper. * @return Descriptor. * @throws IOException In case of error. */ - static OptimizedClassDescriptor classDescriptor(Class cls, + static OptimizedClassDescriptor classDescriptor( + ConcurrentMap<Class, OptimizedClassDescriptor> clsMap, + Class cls, MarshallerContext ctx, OptimizedMarshallerIdMapper mapper) throws IOException { - OptimizedClassDescriptor desc = DESC_BY_CLS.get(cls); + OptimizedClassDescriptor desc = clsMap.get(cls); if (desc == null) { int typeId = resolveTypeId(cls.getName(), mapper); @@ -197,10 +197,10 @@ class OptimizedMarshallerUtils { throw new IOException("Failed to register class: " + cls.getName(), e); } - desc = new OptimizedClassDescriptor(cls, registered ? typeId : 0, ctx, mapper); + desc = new OptimizedClassDescriptor(cls, registered ? typeId : 0, clsMap, ctx, mapper); if (registered) { - OptimizedClassDescriptor old = DESC_BY_CLS.putIfAbsent(cls, desc); + OptimizedClassDescriptor old = clsMap.putIfAbsent(cls, desc); if (old != null) desc = old; @@ -233,6 +233,7 @@ class OptimizedMarshallerUtils { /** * Gets descriptor for provided ID. * + * @param clsMap Class descriptors by class map. * @param id ID. * @param ldr Class loader. * @param ctx Context. @@ -241,15 +242,19 @@ class OptimizedMarshallerUtils { * @throws IOException In case of error. * @throws ClassNotFoundException If class was not found. */ - static OptimizedClassDescriptor classDescriptor(int id, ClassLoader ldr, MarshallerContext ctx, + static OptimizedClassDescriptor classDescriptor( + ConcurrentMap<Class, OptimizedClassDescriptor> clsMap, + int id, + ClassLoader ldr, + MarshallerContext ctx, OptimizedMarshallerIdMapper mapper) throws IOException, ClassNotFoundException { Class cls = ctx.getClass(id, ldr); - OptimizedClassDescriptor desc = DESC_BY_CLS.get(cls); + OptimizedClassDescriptor desc = clsMap.get(cls); if (desc == null) { - OptimizedClassDescriptor old = DESC_BY_CLS.putIfAbsent(cls, desc = - new OptimizedClassDescriptor(cls, resolveTypeId(cls.getName(), mapper), ctx, mapper)); + OptimizedClassDescriptor old = clsMap.putIfAbsent(cls, desc = + new OptimizedClassDescriptor(cls, resolveTypeId(cls.getName(), mapper), clsMap, ctx, mapper)); if (old != null) desc = old; @@ -259,29 +264,6 @@ class OptimizedMarshallerUtils { } /** - * Undeployment callback. - * - * @param ldr Undeployed class loader. - */ - public static void onUndeploy(ClassLoader ldr) { - for (Class<?> cls : DESC_BY_CLS.keySet()) { - if (ldr.equals(cls.getClassLoader())) - DESC_BY_CLS.remove(cls); - } - - U.clearClassCache(ldr); - } - - /** - * Intended for test purposes only. - */ - public static void clearCache() { - DESC_BY_CLS.clear(); - - U.clearClassCache(); - } - - /** * Computes the serial version UID value for the given class. * The code is taken from {@link ObjectStreamClass#computeDefaultSUID(Class)}. * http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectInputStream.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectInputStream.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectInputStream.java index 23af9f1..4bc648f 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectInputStream.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectInputStream.java @@ -29,6 +29,7 @@ import sun.misc.*; import java.io.*; import java.lang.reflect.*; import java.util.*; +import java.util.concurrent.*; import static org.apache.ignite.marshaller.optimized.OptimizedMarshallerUtils.*; @@ -72,6 +73,9 @@ class OptimizedObjectInputStream extends ObjectInputStream { /** */ private Class<?> curCls; + /** */ + private ConcurrentMap<Class, OptimizedClassDescriptor> clsMap; + /** * @param in Input. * @throws IOException In case of error. @@ -81,11 +85,18 @@ class OptimizedObjectInputStream extends ObjectInputStream { } /** + * @param clsMap Class descriptors by class map. * @param ctx Context. * @param mapper ID mapper. * @param clsLdr Class loader. */ - void context(MarshallerContext ctx, OptimizedMarshallerIdMapper mapper, ClassLoader clsLdr) { + void context( + ConcurrentMap<Class, OptimizedClassDescriptor> clsMap, + MarshallerContext ctx, + OptimizedMarshallerIdMapper mapper, + ClassLoader clsLdr) + { + this.clsMap = clsMap; this.ctx = ctx; this.mapper = mapper; this.clsLdr = clsLdr; @@ -244,8 +255,8 @@ class OptimizedObjectInputStream extends ObjectInputStream { int typeId = readInt(); OptimizedClassDescriptor desc = typeId == 0 ? - classDescriptor(U.forName(readUTF(), clsLdr), ctx, mapper): - classDescriptor(typeId, clsLdr, ctx, mapper); + classDescriptor(clsMap, U.forName(readUTF(), clsLdr), ctx, mapper): + classDescriptor(clsMap, typeId, clsLdr, ctx, mapper); curCls = desc.describedClass(); @@ -275,7 +286,7 @@ class OptimizedObjectInputStream extends ObjectInputStream { int compTypeId = readInt(); return compTypeId == 0 ? U.forName(readUTF(), clsLdr) : - classDescriptor(compTypeId, clsLdr, ctx, mapper).describedClass(); + classDescriptor(clsMap, compTypeId, clsLdr, ctx, mapper).describedClass(); } /** http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectOutputStream.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectOutputStream.java b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectOutputStream.java index 59f1547..06c2554 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectOutputStream.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/OptimizedObjectOutputStream.java @@ -27,6 +27,7 @@ import org.apache.ignite.marshaller.*; import java.io.*; import java.lang.reflect.*; import java.util.*; +import java.util.concurrent.*; import static org.apache.ignite.marshaller.optimized.OptimizedMarshallerUtils.*; @@ -68,6 +69,9 @@ class OptimizedObjectOutputStream extends ObjectOutputStream { /** */ private PutFieldImpl curPut; + /** */ + private ConcurrentMap<Class, OptimizedClassDescriptor> clsMap; + /** * @param out Output. * @throws IOException In case of error. @@ -77,11 +81,16 @@ class OptimizedObjectOutputStream extends ObjectOutputStream { } /** + * @param clsMap Class descriptors by class map. * @param ctx Context. * @param mapper ID mapper. * @param requireSer Require {@link Serializable} flag. */ - void context(MarshallerContext ctx, OptimizedMarshallerIdMapper mapper, boolean requireSer) { + void context(ConcurrentMap<Class, OptimizedClassDescriptor> clsMap, + MarshallerContext ctx, + OptimizedMarshallerIdMapper mapper, + boolean requireSer) { + this.clsMap = clsMap; this.ctx = ctx; this.mapper = mapper; this.requireSer = requireSer; @@ -170,7 +179,10 @@ class OptimizedObjectOutputStream extends ObjectOutputStream { } else { OptimizedClassDescriptor desc = classDescriptor( - obj instanceof Object[] ? Object[].class : obj.getClass(), ctx, mapper); + clsMap, + obj instanceof Object[] ? Object[].class : obj.getClass(), + ctx, + mapper); if (desc.excluded()) { writeByte(NULL); @@ -194,7 +206,10 @@ class OptimizedObjectOutputStream extends ObjectOutputStream { if (obj0 != obj) { obj = obj0; - desc = classDescriptor(obj instanceof Object[] ? Object[].class : obj.getClass(), ctx, mapper); + desc = classDescriptor(clsMap, + obj instanceof Object[] ? Object[].class : obj.getClass(), + ctx, + mapper); } if (handle >= 0) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/test/java/org/apache/ignite/internal/processors/service/DummyService.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/DummyService.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/DummyService.java index a633bb5..bf7e681 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/service/DummyService.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/service/DummyService.java @@ -104,6 +104,7 @@ public class DummyService implements Service { } /** + * @param name Service name. * @return Cancelled flag. */ public static int cancelled(String name) { @@ -113,6 +114,7 @@ public class DummyService implements Service { } /** + * @param name Service name. * @return Started counter. */ public static int started(String name) { @@ -133,6 +135,7 @@ public class DummyService implements Service { } /** + * @param name Service name. * @param latch Count down latch. */ public static void exeLatch(String name, CountDownLatch latch) { @@ -140,6 +143,7 @@ public class DummyService implements Service { } /** + * @param name Service name. * @param latch Cancel latch. */ public static void cancelLatch(String name, CountDownLatch latch) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java index 59d9a4d..135c5c2 100644 --- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java +++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedMarshallerTest.java @@ -41,7 +41,7 @@ public class OptimizedMarshallerTest extends GridCommonAbstractTest { * @return Marshaller. */ private OptimizedMarshaller marshaller() { - OptimizedMarshallerUtils.clearCache(); + U.clearClassCache(); OptimizedMarshaller marsh = new OptimizedMarshaller(); @@ -283,7 +283,7 @@ public class OptimizedMarshallerTest extends GridCommonAbstractTest { ignite.compute().execute(taskClsName, 2); ConcurrentMap<Class<?>, OptimizedClassDescriptor> cache = - U.staticField(OptimizedMarshallerUtils.class, "DESC_BY_CLS"); + U.field(ignite.configuration().getMarshaller(), "clsMap"); assertTrue(cache.containsKey(jobCls)); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedObjectStreamSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedObjectStreamSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedObjectStreamSelfTest.java index 5f63730..17868f2 100644 --- a/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedObjectStreamSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/marshaller/optimized/OptimizedObjectStreamSelfTest.java @@ -25,6 +25,7 @@ import org.apache.ignite.internal.util.typedef.internal.*; import org.apache.ignite.marshaller.*; import org.apache.ignite.testframework.*; import org.apache.ignite.testframework.junits.common.*; +import org.jdk8.backport.*; import org.jetbrains.annotations.*; import java.io.*; @@ -43,6 +44,9 @@ public class OptimizedObjectStreamSelfTest extends GridCommonAbstractTest { /** */ private static final MarshallerContext CTX = new MarshallerContextTestImpl(); + /** */ + private ConcurrentMap<Class, OptimizedClassDescriptor> clsMap = new ConcurrentHashMap8<>(); + /** * @throws Exception If failed. */ @@ -1022,7 +1026,7 @@ public class OptimizedObjectStreamSelfTest extends GridCommonAbstractTest { try { out = OptimizedObjectStreamRegistry.out(); - out.context(CTX, null, true); + out.context(clsMap, CTX, null, true); out.writeObject(obj); @@ -1030,7 +1034,7 @@ public class OptimizedObjectStreamSelfTest extends GridCommonAbstractTest { in = OptimizedObjectStreamRegistry.in(); - in.context(CTX, null, getClass().getClassLoader()); + in.context(clsMap, CTX, null, getClass().getClassLoader()); in.in().bytes(arr, arr.length); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/385d9c8e/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java index f0cec80..f114b6b 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java @@ -1180,7 +1180,7 @@ public abstract class GridAbstractTest extends TestCase { // Remove resources cached in static, if any. GridClassLoaderCache.clear(); - OptimizedMarshaller.clearCache(); + U.clearClassCache(); MarshallerExclusions.clearCache(); GridEnumCache.clear(); }