ignite-10 Fix ignite instance [de]serialization
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0adee3ae Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0adee3ae Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0adee3ae Branch: refs/heads/ignite-843-rc2 Commit: 0adee3ae09a86334375b521871539b086215ba92 Parents: 6904724 Author: sboikov <sboi...@gridgain.com> Authored: Wed Dec 9 09:56:53 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Wed Dec 9 09:56:53 2015 +0300 ---------------------------------------------------------------------- .../messaging/MessagingPingPongExample.java | 4 -- .../examples/MessagingExamplesSelfTest.java | 2 - .../main/java/org/apache/ignite/Ignition.java | 16 +++++++ .../store/jdbc/CacheAbstractJdbcStore.java | 5 +-- .../configuration/CacheConfiguration.java | 1 - .../configuration/IgniteConfiguration.java | 2 - .../apache/ignite/internal/IgniteKernal.java | 2 +- .../org/apache/ignite/internal/IgnitionEx.java | 39 +++++++++++++---- .../ignite/internal/MarshallerContextImpl.java | 23 +++++----- .../managers/communication/GridIoManager.java | 3 +- .../internal/portable/BinaryFieldAccessor.java | 9 ++-- .../internal/portable/BinaryReaderExImpl.java | 19 ++++---- .../internal/portable/BinaryWriterExImpl.java | 19 ++++---- .../internal/portable/PortableContext.java | 12 ++--- .../CacheDefaultBinaryAffinityKeyMapper.java | 2 +- .../processors/cache/GridCacheProcessor.java | 2 +- .../dht/GridDhtAffinityAssignmentResponse.java | 2 +- .../CacheObjectBinaryProcessorImpl.java | 41 +++++++++-------- .../cache/query/GridCacheQueryManager.java | 46 ++++++++++---------- .../util/nio/GridNioBackPressureControl.java | 14 +----- .../org/apache/ignite/spi/IgniteSpiThread.java | 10 ++--- .../communication/tcp/TcpCommunicationSpi.java | 6 +-- .../org/apache/ignite/thread/IgniteThread.java | 43 ++++++++++-------- .../ignite/thread/IgniteThreadPoolExecutor.java | 37 ++-------------- .../portable/BinaryMarshallerSelfTest.java | 2 +- ...cheAbstractFullApiMultithreadedSelfTest.java | 2 +- .../cache/GridCacheAbstractFullApiSelfTest.java | 4 +- ...eAbstractDataStructuresFailoverSelfTest.java | 2 - .../marshaller/GridMarshallerAbstractTest.java | 32 +++++++++++++- .../testframework/junits/GridAbstractTest.java | 9 ++-- .../junits/IgniteTestResources.java | 2 +- .../ignite/testsuites/IgniteCacheTestSuite.java | 4 +- .../IgnitePortableCacheTestSuite.java | 3 +- ...niteCacheP2pUnmarshallingQueryErrorTest.java | 5 +++ .../ignite/osgi/AbstractIgniteKarafTest.java | 2 - .../ignite/internal/GridFactorySelfTest.java | 29 ++++++++++++ .../GridSpringBeanSerializationSelfTest.java | 2 + 37 files changed, 252 insertions(+), 205 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java ---------------------------------------------------------------------- diff --git a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java index a2ba227..8571f66 100644 --- a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java +++ b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java @@ -26,7 +26,6 @@ import org.apache.ignite.cluster.ClusterGroup; import org.apache.ignite.examples.ExampleNodeStartup; import org.apache.ignite.examples.ExamplesUtils; import org.apache.ignite.lang.IgniteBiPredicate; -import org.apache.ignite.resources.IgniteInstanceResource; /** * Demonstrates simple message exchange between local and remote nodes. @@ -65,9 +64,6 @@ public class MessagingPingPongExample { // Set up remote player. ignite.message(nodeB).remoteListen(null, new IgniteBiPredicate<UUID, String>() { - @IgniteInstanceResource - private Ignite ignite; - @Override public boolean apply(UUID nodeId, String rcvMsg) { System.out.println("Received message [msg=" + rcvMsg + ", sender=" + nodeId + ']'); http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/examples/src/test/java8/org/apache/ignite/java8/examples/MessagingExamplesSelfTest.java ---------------------------------------------------------------------- diff --git a/examples/src/test/java8/org/apache/ignite/java8/examples/MessagingExamplesSelfTest.java b/examples/src/test/java8/org/apache/ignite/java8/examples/MessagingExamplesSelfTest.java index c77e4b6..e15159d 100644 --- a/examples/src/test/java8/org/apache/ignite/java8/examples/MessagingExamplesSelfTest.java +++ b/examples/src/test/java8/org/apache/ignite/java8/examples/MessagingExamplesSelfTest.java @@ -41,8 +41,6 @@ public class MessagingExamplesSelfTest extends GridAbstractExamplesTest { * @throws Exception If failed. */ public void testMessagingPingPongExample() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-10"); - MessagingPingPongExample.main(EMPTY_ARGS); } http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/Ignition.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/Ignition.java b/modules/core/src/main/java/org/apache/ignite/Ignition.java index 2c06881..4fdc849 100644 --- a/modules/core/src/main/java/org/apache/ignite/Ignition.java +++ b/modules/core/src/main/java/org/apache/ignite/Ignition.java @@ -26,6 +26,7 @@ import org.apache.ignite.internal.IgnitionEx; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.spi.discovery.DiscoverySpi; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; +import org.apache.ignite.thread.IgniteThread; import org.jetbrains.annotations.Nullable; /** @@ -516,6 +517,21 @@ public class Ignition { } /** + * This method is used to address a local {@link Ignite} instance, principally from closure. + * <p> + * According to contract this method has to be called only under {@link IgniteThread}. + * An {@link IllegalArgumentException} will be thrown otherwise. + * + * @return A current {@link Ignite} instance to address from closure. + * @throws IgniteIllegalStateException Thrown if grid was not properly + * initialized or grid instance was stopped or was not started + * @throws IllegalArgumentException Thrown if current thread is not an {@link IgniteThread}. + */ + public static Ignite localIgnite() throws IgniteIllegalStateException, IllegalArgumentException { + return IgnitionEx.localIgnite(); + } + + /** * Adds a lsnr for grid life cycle events. * <p> * Note that unlike other listeners in Ignite this listener will be http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java index 366262c..060ab89 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/store/jdbc/CacheAbstractJdbcStore.java @@ -62,6 +62,7 @@ import org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect; import org.apache.ignite.cache.store.jdbc.dialect.OracleDialect; import org.apache.ignite.cache.store.jdbc.dialect.SQLServerDialect; import org.apache.ignite.configuration.CacheConfiguration; +import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.internal.util.tostring.GridToStringExclude; import org.apache.ignite.internal.util.typedef.C1; import org.apache.ignite.internal.util.typedef.F; @@ -69,7 +70,6 @@ import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiInClosure; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lifecycle.LifecycleAware; -import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.resources.CacheStoreSessionResource; import org.apache.ignite.resources.IgniteInstanceResource; import org.apache.ignite.resources.LoggerResource; @@ -78,10 +78,9 @@ import org.jetbrains.annotations.Nullable; import static java.sql.Statement.EXECUTE_FAILED; import static java.sql.Statement.SUCCESS_NO_INFO; - import static org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.DFLT_BATCH_SIZE; -import static org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.DFLT_WRITE_ATTEMPTS; import static org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.DFLT_PARALLEL_LOAD_CACHE_MINIMUM_THRESHOLD; +import static org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory.DFLT_WRITE_ATTEMPTS; /** * Implementation of {@link CacheStore} backed by JDBC. http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java index af3530a..67f7b2e 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/CacheConfiguration.java @@ -45,7 +45,6 @@ import org.apache.ignite.cache.CacheAtomicWriteOrderMode; import org.apache.ignite.cache.CacheAtomicityMode; import org.apache.ignite.cache.CacheEntryProcessor; import org.apache.ignite.cache.CacheInterceptor; -import org.apache.ignite.cache.CacheKeyConfiguration; import org.apache.ignite.cache.CacheMemoryMode; import org.apache.ignite.cache.CacheMode; import org.apache.ignite.cache.CacheRebalanceMode; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java index 07fb3a8..7d8f5be 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java @@ -46,8 +46,6 @@ import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lifecycle.LifecycleBean; import org.apache.ignite.lifecycle.LifecycleEventType; import org.apache.ignite.marshaller.Marshaller; -import org.apache.ignite.marshaller.jdk.JdkMarshaller; -import org.apache.ignite.marshaller.optimized.OptimizedMarshaller; import org.apache.ignite.plugin.PluginConfiguration; import org.apache.ignite.plugin.PluginProvider; import org.apache.ignite.plugin.segmentation.SegmentationPolicy; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/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 ab62c13..d231ad3 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 @@ -3227,7 +3227,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { */ protected Object readResolve() throws ObjectStreamException { try { - return IgnitionEx.gridx(gridName); + return IgnitionEx.localIgnite(); } catch (IllegalStateException e) { throw U.withCause(new InvalidObjectException(e.getMessage()), e); http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index be06f85..a73fdeb 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -94,6 +94,7 @@ import org.apache.ignite.spi.indexing.noop.NoopIndexingSpi; import org.apache.ignite.spi.loadbalancing.roundrobin.RoundRobinLoadBalancingSpi; import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi; import org.apache.ignite.spi.swapspace.noop.NoopSwapSpaceSpi; +import org.apache.ignite.thread.IgniteThread; import org.apache.ignite.thread.IgniteThreadPoolExecutor; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; @@ -1194,6 +1195,20 @@ public class IgnitionEx { } /** + * Gets a name of the grid, which is owner of current thread. An Exception is thrown if + * current thread is not an {@link IgniteThread}. + * + * @return Grid instance related to current thread + * @throws IllegalArgumentException Thrown to indicate, that current thread is not an {@link IgniteThread}. + */ + public static IgniteKernal localIgnite() throws IllegalArgumentException { + if (Thread.currentThread() instanceof IgniteThread) + return gridx(((IgniteThread)Thread.currentThread()).getGridName()); + else + throw new IllegalArgumentException("This method should be accessed under " + IgniteThread.class.getName()); + } + + /** * Gets grid instance without waiting its initialization. * * @param name Grid name. @@ -1528,7 +1543,8 @@ public class IgnitionEx { } execSvc = new IgniteThreadPoolExecutor( - "pub-" + cfg.getGridName(), + "pub", + cfg.getGridName(), cfg.getPublicThreadPoolSize(), cfg.getPublicThreadPoolSize(), DFLT_PUBLIC_KEEP_ALIVE_TIME, @@ -1541,7 +1557,8 @@ public class IgnitionEx { // Note that since we use 'LinkedBlockingQueue', number of // maximum threads has no effect. sysExecSvc = new IgniteThreadPoolExecutor( - "sys-" + cfg.getGridName(), + "sys", + cfg.getGridName(), cfg.getSystemThreadPoolSize(), cfg.getSystemThreadPoolSize(), DFLT_SYSTEM_KEEP_ALIVE_TIME, @@ -1555,7 +1572,8 @@ public class IgnitionEx { // Note, that we do not pre-start threads here as management pool may // not be needed. mgmtExecSvc = new IgniteThreadPoolExecutor( - "mgmt-" + cfg.getGridName(), + "mgmt", + cfg.getGridName(), cfg.getManagementThreadPoolSize(), cfg.getManagementThreadPoolSize(), 0, @@ -1566,7 +1584,8 @@ public class IgnitionEx { // Note, that we do not pre-start threads here as class loading pool may // not be needed. p2pExecSvc = new IgniteThreadPoolExecutor( - "p2p-" + cfg.getGridName(), + "p2p", + cfg.getGridName(), cfg.getPeerClassLoadingThreadPoolSize(), cfg.getPeerClassLoadingThreadPoolSize(), 0, @@ -1574,7 +1593,8 @@ public class IgnitionEx { // Note that we do not pre-start threads here as igfs pool may not be needed. igfsExecSvc = new IgniteThreadPoolExecutor( - "igfs-" + cfg.getGridName(), + "igfs", + cfg.getGridName(), cfg.getIgfsThreadPoolSize(), cfg.getIgfsThreadPoolSize(), 0, @@ -1582,7 +1602,8 @@ public class IgnitionEx { if (myCfg.getConnectorConfiguration() != null) { restExecSvc = new IgniteThreadPoolExecutor( - "rest-" + myCfg.getGridName(), + "rest", + myCfg.getGridName(), myCfg.getConnectorConfiguration().getThreadPoolSize(), myCfg.getConnectorConfiguration().getThreadPoolSize(), ConnectorConfiguration.DFLT_KEEP_ALIVE_TIME, @@ -1591,14 +1612,16 @@ public class IgnitionEx { } utilityCacheExecSvc = new IgniteThreadPoolExecutor( - "utility-" + cfg.getGridName(), + "utility", + cfg.getGridName(), myCfg.getUtilityCacheThreadPoolSize(), DFLT_SYSTEM_MAX_THREAD_CNT, myCfg.getUtilityCacheKeepAliveTime(), new LinkedBlockingQueue<Runnable>(DFLT_SYSTEM_THREADPOOL_QUEUE_CAP)); marshCacheExecSvc = new IgniteThreadPoolExecutor( - "marshaller-cache-" + cfg.getGridName(), + "marshaller-cache", + cfg.getGridName(), myCfg.getMarshallerCacheThreadPoolSize(), DFLT_SYSTEM_MAX_THREAD_CNT, myCfg.getMarshallerCacheKeepAliveTime(), http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java index 276cdc3..c7fa902 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java @@ -17,18 +17,6 @@ package org.apache.ignite.internal; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.IgniteLogger; -import org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException; -import org.apache.ignite.internal.processors.cache.GridCacheAdapter; -import org.apache.ignite.internal.processors.cache.GridCacheTryPutFailedException; -import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.plugin.PluginProvider; - -import javax.cache.event.CacheEntryEvent; -import javax.cache.event.CacheEntryListenerException; -import javax.cache.event.CacheEntryUpdatedListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -37,6 +25,17 @@ import java.io.IOException; import java.io.Writer; import java.util.List; import java.util.concurrent.CountDownLatch; +import javax.cache.event.CacheEntryEvent; +import javax.cache.event.CacheEntryListenerException; +import javax.cache.event.CacheEntryUpdatedListener; +import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.IgniteLogger; +import org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException; +import org.apache.ignite.internal.processors.cache.GridCacheAdapter; +import org.apache.ignite.internal.processors.cache.GridCacheTryPutFailedException; +import org.apache.ignite.internal.util.typedef.F; +import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.plugin.PluginProvider; /** * Marshaller context implementation. http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java index a8557cc..bf7c7e4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java @@ -242,7 +242,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa utilityCachePool = ctx.utilityCachePool(); marshCachePool = ctx.marshallerCachePool(); affPool = new IgniteThreadPoolExecutor( - "aff-" + ctx.gridName(), + "aff", + ctx.gridName(), 1, 1, 0, http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryFieldAccessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryFieldAccessor.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryFieldAccessor.java index eece245..2f6b73c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryFieldAccessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryFieldAccessor.java @@ -17,11 +17,6 @@ package org.apache.ignite.internal.portable; -import org.apache.ignite.binary.BinaryObjectException; -import org.apache.ignite.internal.util.GridUnsafe; -import org.apache.ignite.internal.util.typedef.internal.U; -import sun.misc.Unsafe; - import java.lang.reflect.Field; import java.math.BigDecimal; import java.sql.Timestamp; @@ -29,6 +24,10 @@ import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.UUID; +import org.apache.ignite.binary.BinaryObjectException; +import org.apache.ignite.internal.util.GridUnsafe; +import org.apache.ignite.internal.util.typedef.internal.U; +import sun.misc.Unsafe; /** * Field accessor to speedup access. http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java index 91b67f6..a0aa2e5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryReaderExImpl.java @@ -17,6 +17,15 @@ package org.apache.ignite.internal.portable; +import java.io.EOFException; +import java.io.IOException; +import java.io.ObjectInput; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.Collection; +import java.util.Date; +import java.util.Map; +import java.util.UUID; import org.apache.ignite.binary.BinaryIdMapper; import org.apache.ignite.binary.BinaryInvalidTypeException; import org.apache.ignite.binary.BinaryObject; @@ -28,16 +37,6 @@ import org.apache.ignite.internal.util.typedef.internal.SB; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.io.EOFException; -import java.io.IOException; -import java.io.ObjectInput; -import java.math.BigDecimal; -import java.sql.Timestamp; -import java.util.Collection; -import java.util.Date; -import java.util.Map; -import java.util.UUID; - import static org.apache.ignite.internal.portable.GridPortableMarshaller.BOOLEAN; import static org.apache.ignite.internal.portable.GridPortableMarshaller.BOOLEAN_ARR; import static org.apache.ignite.internal.portable.GridPortableMarshaller.BYTE; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryWriterExImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryWriterExImpl.java index 59632f1..6bb493e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryWriterExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/BinaryWriterExImpl.java @@ -17,16 +17,6 @@ package org.apache.ignite.internal.portable; -import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.binary.BinaryIdMapper; -import org.apache.ignite.binary.BinaryObjectException; -import org.apache.ignite.binary.BinaryRawWriter; -import org.apache.ignite.binary.BinaryWriter; -import org.apache.ignite.internal.portable.streams.PortableHeapOutputStream; -import org.apache.ignite.internal.portable.streams.PortableOutputStream; -import org.apache.ignite.internal.util.typedef.internal.A; -import org.jetbrains.annotations.Nullable; - import java.io.IOException; import java.io.ObjectOutput; import java.lang.reflect.InvocationTargetException; @@ -37,6 +27,15 @@ import java.util.Collection; import java.util.Date; import java.util.Map; import java.util.UUID; +import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.binary.BinaryIdMapper; +import org.apache.ignite.binary.BinaryObjectException; +import org.apache.ignite.binary.BinaryRawWriter; +import org.apache.ignite.binary.BinaryWriter; +import org.apache.ignite.internal.portable.streams.PortableHeapOutputStream; +import org.apache.ignite.internal.portable.streams.PortableOutputStream; +import org.apache.ignite.internal.util.typedef.internal.A; +import org.jetbrains.annotations.Nullable; import static java.nio.charset.StandardCharsets.UTF_8; import static org.apache.ignite.internal.portable.GridPortableMarshaller.BOOLEAN; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java index fd6c41d..8bad737 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/portable/PortableContext.java @@ -53,16 +53,16 @@ import java.util.concurrent.ConcurrentSkipListSet; import java.util.jar.JarEntry; import java.util.jar.JarFile; import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.binary.BinaryIdMapper; +import org.apache.ignite.binary.BinaryInvalidTypeException; +import org.apache.ignite.binary.BinaryObjectException; +import org.apache.ignite.binary.BinarySerializer; +import org.apache.ignite.binary.BinaryType; +import org.apache.ignite.binary.BinaryTypeConfiguration; import org.apache.ignite.cache.CacheKeyConfiguration; import org.apache.ignite.cache.affinity.AffinityKeyMapped; import org.apache.ignite.configuration.BinaryConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.binary.BinaryTypeConfiguration; -import org.apache.ignite.binary.BinaryObjectException; -import org.apache.ignite.binary.BinaryIdMapper; -import org.apache.ignite.binary.BinaryInvalidTypeException; -import org.apache.ignite.binary.BinaryType; -import org.apache.ignite.binary.BinarySerializer; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.IgnitionEx; import org.apache.ignite.internal.processors.cache.portable.CacheObjectBinaryProcessorImpl; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheDefaultBinaryAffinityKeyMapper.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheDefaultBinaryAffinityKeyMapper.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheDefaultBinaryAffinityKeyMapper.java index d244a16..828e2ff 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheDefaultBinaryAffinityKeyMapper.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheDefaultBinaryAffinityKeyMapper.java @@ -19,10 +19,10 @@ package org.apache.ignite.internal.processors.cache; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteException; +import org.apache.ignite.binary.BinaryObject; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.processors.cache.portable.CacheObjectBinaryProcessorImpl; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.binary.BinaryObject; /** * http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java index 02e6403..3bd9466 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java @@ -70,6 +70,7 @@ import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteNodeAttributes; import org.apache.ignite.internal.IgniteTransactionsEx; import org.apache.ignite.internal.managers.discovery.CustomEventListener; +import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.internal.processors.GridProcessorAdapter; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.datastructures.CacheDataStructuresManager; @@ -113,7 +114,6 @@ import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.lifecycle.LifecycleAware; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.marshaller.jdk.JdkMarshaller; -import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.spi.IgniteNodeValidationResult; import org.jetbrains.annotations.Nullable; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java index 42358d9..e731406 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtAffinityAssignmentResponse.java @@ -116,7 +116,7 @@ public class GridDhtAffinityAssignmentResponse extends GridCacheMessage { if (affAssignmentBytes != null) { affAssignment = ctx.marshaller().unmarshal(affAssignmentBytes, ldr); - // TODO IGNITE-10: setting 'local' for nodes not needed when IGNITE-10 is implemented. + // TODO IGNITE-2110: setting 'local' for nodes not needed when IGNITE-2110 is implemented. int assignments = affAssignment.size(); for (int n = 0; n < assignments; n++) { http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java index d172bca..cd65681 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/portable/CacheObjectBinaryProcessorImpl.java @@ -17,6 +17,25 @@ package org.apache.ignite.internal.processors.cache.portable; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CountDownLatch; +import javax.cache.Cache; +import javax.cache.CacheException; +import javax.cache.event.CacheEntryEvent; +import javax.cache.event.CacheEntryListenerException; +import javax.cache.event.CacheEntryUpdatedListener; +import javax.cache.event.EventType; +import javax.cache.processor.EntryProcessor; +import javax.cache.processor.MutableEntry; import org.apache.ignite.IgniteBinary; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteException; @@ -31,6 +50,7 @@ import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException; import org.apache.ignite.internal.portable.BinaryEnumObjectImpl; +import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.internal.portable.BinaryMetadata; import org.apache.ignite.internal.portable.BinaryMetadataHandler; import org.apache.ignite.internal.portable.BinaryObjectEx; @@ -73,31 +93,10 @@ import org.apache.ignite.lang.IgniteBiPredicate; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteClosure; import org.apache.ignite.marshaller.Marshaller; -import org.apache.ignite.internal.portable.BinaryMarshaller; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; import sun.misc.Unsafe; -import javax.cache.Cache; -import javax.cache.CacheException; -import javax.cache.event.CacheEntryEvent; -import javax.cache.event.CacheEntryListenerException; -import javax.cache.event.CacheEntryUpdatedListener; -import javax.cache.event.EventType; -import javax.cache.processor.EntryProcessor; -import javax.cache.processor.MutableEntry; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CountDownLatch; - /** * Portable processor implementation. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java index bb5d230..4681e47 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java @@ -17,6 +17,28 @@ package org.apache.ignite.internal.processors.cache.query; +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.sql.SQLException; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Queue; +import java.util.UUID; +import java.util.concurrent.Callable; +import java.util.concurrent.ConcurrentMap; +import javax.cache.expiry.ExpiryPolicy; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteException; @@ -91,30 +113,6 @@ import org.apache.ignite.spi.indexing.IndexingSpi; import org.jetbrains.annotations.Nullable; import org.jsr166.ConcurrentHashMap8; -import javax.cache.Cache; -import javax.cache.expiry.ExpiryPolicy; -import java.io.Externalizable; -import java.io.IOException; -import java.io.ObjectInput; -import java.io.ObjectOutput; -import java.sql.SQLException; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.Queue; -import java.util.UUID; -import java.util.concurrent.Callable; -import java.util.concurrent.ConcurrentMap; - import static org.apache.ignite.cache.CacheMode.LOCAL; import static org.apache.ignite.events.EventType.EVT_CACHE_QUERY_EXECUTED; import static org.apache.ignite.events.EventType.EVT_CACHE_QUERY_OBJECT_READ; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java index b15e4a6..96a1ab3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioBackPressureControl.java @@ -17,8 +17,6 @@ package org.apache.ignite.internal.util.nio; -import org.apache.ignite.thread.IgniteThread; - /** * Utility class that allows to ignore back-pressure control for threads that are processing messages. */ @@ -34,11 +32,6 @@ public class GridNioBackPressureControl { * @return Flag indicating whether current thread is processing message. */ public static boolean threadProcessingMessage() { - Thread th = Thread.currentThread(); - - if (th instanceof IgniteThread) - return ((IgniteThread)th).processingMessage(); - return threadProcMsg.get(); } @@ -46,11 +39,6 @@ public class GridNioBackPressureControl { * @param processing Flag indicating whether current thread is processing message. */ public static void threadProcessingMessage(boolean processing) { - Thread th = Thread.currentThread(); - - if (th instanceof IgniteThread) - ((IgniteThread)th).processingMessage(processing); - else - threadProcMsg.set(processing); + threadProcMsg.set(processing); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiThread.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiThread.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiThread.java index 25b81e7..1667891 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiThread.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiThread.java @@ -21,16 +21,16 @@ import java.util.concurrent.atomic.AtomicLong; import org.apache.ignite.IgniteLogger; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.thread.IgniteThread; /** * This class provides convenient adapter for threads used by SPIs. - * This class adds necessary plumbing on top of the {@link Thread} class: + * This class adds necessary plumbing on top of the {@link IgniteThread} class: * <ul> - * <li>Consistent naming of threads</li> - * <li>Dedicated parent thread group</li> + * <li>Proper exception handling in {@link #body()}</li> * </ul> */ -public abstract class IgniteSpiThread extends Thread { +public abstract class IgniteSpiThread extends IgniteThread { /** Default thread's group. */ public static final ThreadGroup DFLT_GRP = new ThreadGroup("ignite-spi"); @@ -48,7 +48,7 @@ public abstract class IgniteSpiThread extends Thread { * @param log Grid logger to use. */ protected IgniteSpiThread(String gridName, String name, IgniteLogger log) { - super(DFLT_GRP, name + "-#" + cntr.incrementAndGet() + '%' + gridName); + super(gridName, DFLT_GRP, createName(cntr.incrementAndGet(), name, gridName)); assert log != null; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java index 09e4877..bf6e869 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java @@ -1510,7 +1510,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter nioSrvr.start(); - commWorker = new CommunicationWorker(); + commWorker = new CommunicationWorker(gridName); commWorker.start(); @@ -3024,9 +3024,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter private final BlockingQueue<GridNioRecoveryDescriptor> q = new LinkedBlockingQueue<>(); /** - * + * @param gridName Grid name. */ - private CommunicationWorker() { + private CommunicationWorker(String gridName) { super(gridName, "tcp-comm-worker", log); } http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java index 6ea77ae..974fa94 100644 --- a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java +++ b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThread.java @@ -28,6 +28,7 @@ import org.apache.ignite.internal.util.worker.GridWorker; * <li>Consistent naming of threads</li> * <li>Dedicated parent thread group</li> * <li>Backing interrupted flag</li> + * <li>Name of the grid this thread belongs to</li> * </ul> * <b>Note</b>: this class is intended for internal use only. */ @@ -36,10 +37,10 @@ public class IgniteThread extends Thread { private static final ThreadGroup DFLT_GRP = new ThreadGroup("ignite"); /** Number of all grid threads in the system. */ - private static final AtomicLong threadCntr = new AtomicLong(0); + private static final AtomicLong cntr = new AtomicLong(); - /** Boolean flag indicating of this thread is currently processing message. */ - private boolean procMsg; + /** The name of the grid this thread belongs to. */ + protected final String gridName; /** * Creates thread with given worker. @@ -71,7 +72,25 @@ public class IgniteThread extends Thread { * @param r Runnable to execute. */ public IgniteThread(ThreadGroup grp, String gridName, String threadName, Runnable r) { - super(grp, r, createName(threadCntr.incrementAndGet(), threadName, gridName)); + super(grp, r, createName(cntr.incrementAndGet(), threadName, gridName)); + + this.gridName = gridName; + } + + /** + * @param gridName Name of grid this thread is created for. + * @param threadGrp Thread group. + * @param threadName Name of thread. + */ + protected IgniteThread(String gridName, ThreadGroup threadGrp, String threadName) { + super(threadGrp, threadName); + + this.gridName = gridName; + } + + /** {@inheritDoc} */ + public String getGridName() { + return gridName; } /** @@ -82,24 +101,10 @@ public class IgniteThread extends Thread { * @param gridName Grid name. * @return New thread name. */ - private static String createName(long num, String threadName, String gridName) { + protected static String createName(long num, String threadName, String gridName) { return threadName + "-#" + num + '%' + gridName + '%'; } - /** - * @param procMsg Flag indicating whether thread is currently processing message. - */ - public void processingMessage(boolean procMsg) { - this.procMsg = procMsg; - } - - /** - * @return Flag indicating whether thread is currently processing message. - */ - public boolean processingMessage() { - return procMsg; - } - /** {@inheritDoc} */ @Override public String toString() { return S.toString(IgniteThread.class, this, "name", getName()); http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/main/java/org/apache/ignite/thread/IgniteThreadPoolExecutor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThreadPoolExecutor.java b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThreadPoolExecutor.java index 0af422f..940e1a3 100644 --- a/modules/core/src/main/java/org/apache/ignite/thread/IgniteThreadPoolExecutor.java +++ b/modules/core/src/main/java/org/apache/ignite/thread/IgniteThreadPoolExecutor.java @@ -166,7 +166,8 @@ public class IgniteThreadPoolExecutor extends ThreadPoolExecutor { /** * Creates a new service with the given initial parameters. * - * @param gridName Name of the grid + * @param threadNamePrefix Will be added at the beginning of all created threads. + * @param gridName Must be the name of the grid. * @param corePoolSize The number of threads to keep in the pool, even if they are idle. * @param maxPoolSize The maximum number of threads to allow in the pool. * @param keepAliveTime When the number of threads is greater than the core, this is the maximum time @@ -175,6 +176,7 @@ public class IgniteThreadPoolExecutor extends ThreadPoolExecutor { * runnable tasks submitted by the {@link #execute(Runnable)} method. */ public IgniteThreadPoolExecutor( + String threadNamePrefix, String gridName, int corePoolSize, int maxPoolSize, @@ -186,38 +188,7 @@ public class IgniteThreadPoolExecutor extends ThreadPoolExecutor { keepAliveTime, TimeUnit.MILLISECONDS, workQ, - new IgniteThreadFactory(gridName) - ); - } - - /** - * Creates a new service with the given initial parameters. - * - * @param gridName Name of the grid. - * @param corePoolSize The number of threads to keep in the pool, even if they are idle. - * @param maxPoolSize The maximum number of threads to allow in the pool. - * @param keepAliveTime When the number of threads is greater than the core, this is the maximum time - * that excess idle threads will wait for new tasks before terminating. - * @param workQ The queue to use for holding tasks before they are executed. This queue will hold only the - * runnable tasks submitted by the {@link #execute(Runnable)} method. - * @param hnd Optional handler to use when execution is blocked because the thread bounds and queue - * capacities are reached. If {@code null} then {@code AbortPolicy} - * handler is used by default. - */ - public IgniteThreadPoolExecutor( - String gridName, - int corePoolSize, - int maxPoolSize, - long keepAliveTime, - BlockingQueue<Runnable> workQ, - RejectedExecutionHandler hnd) { - this( - corePoolSize, - maxPoolSize, - keepAliveTime, - workQ, - new IgniteThreadFactory(gridName), - hnd + new IgniteThreadFactory(gridName, threadNamePrefix) ); } http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/internal/portable/BinaryMarshallerSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/portable/BinaryMarshallerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/portable/BinaryMarshallerSelfTest.java index 49be8dd..a06e6c3 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/portable/BinaryMarshallerSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/portable/BinaryMarshallerSelfTest.java @@ -3874,4 +3874,4 @@ public class BinaryMarshallerSelfTest extends GridCommonAbstractTest { rawValArr = rawReader.readDecimalArray(); } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiMultithreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiMultithreadedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiMultithreadedSelfTest.java index 5e43b2a..95ca9b5 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiMultithreadedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiMultithreadedSelfTest.java @@ -19,10 +19,10 @@ package org.apache.ignite.internal.processors.cache; import com.google.common.collect.ImmutableSet; import java.util.Collection; +import java.util.HashSet; import java.util.Map; import java.util.Random; import java.util.Set; -import java.util.HashSet; import java.util.TreeSet; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java index 5af90e9..41e9016 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java @@ -17,6 +17,8 @@ package org.apache.ignite.internal.processors.cache; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Sets; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; @@ -44,8 +46,6 @@ import javax.cache.processor.EntryProcessor; import javax.cache.processor.EntryProcessorException; import javax.cache.processor.EntryProcessorResult; import javax.cache.processor.MutableEntry; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; import junit.framework.AssertionFailedError; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCache; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java index ef96d9f..cb16aeb 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAbstractDataStructuresFailoverSelfTest.java @@ -43,12 +43,10 @@ import org.apache.ignite.configuration.AtomicConfiguration; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.internal.IgniteInternalFuture; -import org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException; import org.apache.ignite.internal.util.GridLeanSet; import org.apache.ignite.internal.util.typedef.CA; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.G; -import org.apache.ignite.internal.util.typedef.X; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteCallable; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/marshaller/GridMarshallerAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/GridMarshallerAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/GridMarshallerAbstractTest.java index 2408176..0e858ed 100644 --- a/modules/core/src/test/java/org/apache/ignite/marshaller/GridMarshallerAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/marshaller/GridMarshallerAbstractTest.java @@ -24,8 +24,11 @@ import java.io.ObjectOutput; import java.io.Serializable; import java.util.Arrays; import java.util.Collections; +import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutorService; +import java.util.concurrent.FutureTask; +import java.util.concurrent.RunnableFuture; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCache; import org.apache.ignite.IgniteCheckedException; @@ -69,6 +72,7 @@ import org.apache.ignite.p2p.GridP2PTestJob; import org.apache.ignite.p2p.GridP2PTestTask; import org.apache.ignite.testframework.GridTestClassLoader; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; +import org.apache.ignite.thread.IgniteThread; import org.jetbrains.annotations.Nullable; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; @@ -84,6 +88,9 @@ public abstract class GridMarshallerAbstractTest extends GridCommonAbstractTest /** */ private static Marshaller marsh; + /** */ + private static String gridName; + /** Closure job. */ protected IgniteInClosure<String> c1 = new IgniteInClosure<String>() { @Override public void apply(String s) { @@ -144,6 +151,7 @@ public abstract class GridMarshallerAbstractTest extends GridCommonAbstractTest /** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { marsh = grid().configuration().getMarshaller(); + gridName = grid().configuration().getGridName(); } /** @@ -831,8 +839,28 @@ public abstract class GridMarshallerAbstractTest extends GridCommonAbstractTest * @throws IgniteCheckedException Thrown if any exception occurs while unmarshalling. */ @SuppressWarnings({"RedundantTypeArguments"}) - protected static <T> T unmarshal(byte[] buf) throws IgniteCheckedException { - return marsh.<T>unmarshal(buf, Thread.currentThread().getContextClassLoader()); + protected static <T> T unmarshal(final byte[] buf) throws IgniteCheckedException { + RunnableFuture<T> f = new FutureTask<>(new Callable<T>() { + @Override public T call() throws IgniteCheckedException { + return marsh.<T>unmarshal(buf, Thread.currentThread().getContextClassLoader()); + } + }); + + // Any deserialization has to be executed under a thread, that contains the grid name. + new IgniteThread(gridName, "unmarshal-thread", f).start(); + + try { + return f.get(); + } + catch (Exception e) { + if (e.getCause() instanceof IgniteCheckedException) { + throw (IgniteCheckedException)e.getCause(); + } + + fail(e.getCause().getMessage()); + } + + return null; } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/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 eaf63d7..2d91895 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 @@ -60,10 +60,10 @@ import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.IgnitionEx; +import org.apache.ignite.internal.portable.BinaryEnumCache; import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.internal.processors.resource.GridSpringResourceContext; import org.apache.ignite.internal.util.GridClassLoaderCache; -import org.apache.ignite.internal.portable.BinaryEnumCache; import org.apache.ignite.internal.util.GridTestClockTimer; import org.apache.ignite.internal.util.GridUnsafe; import org.apache.ignite.internal.util.typedef.F; @@ -89,6 +89,7 @@ import org.apache.ignite.testframework.junits.logger.GridTestLog4jLogger; import org.apache.ignite.testframework.junits.multijvm.IgniteCacheProcessProxy; import org.apache.ignite.testframework.junits.multijvm.IgniteNodeRunner; import org.apache.ignite.testframework.junits.multijvm.IgniteProcessProxy; +import org.apache.ignite.thread.IgniteThread; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.Level; import org.apache.log4j.Logger; @@ -150,7 +151,7 @@ public abstract class GridAbstractTest extends TestCase { private static long ts = System.currentTimeMillis(); /** Starting grid name. */ - protected static ThreadLocal<String> startingGrid = new ThreadLocal<>(); + protected final static ThreadLocal<String> startingGrid = new ThreadLocal<>(); /** * @@ -1628,7 +1629,7 @@ public abstract class GridAbstractTest extends TestCase { @Override protected void runTest() throws Throwable { final AtomicReference<Throwable> ex = new AtomicReference<>(); - Thread runner = new Thread("test-runner") { + Thread runner = new IgniteThread(getTestGridName(), "test-runner", new Runnable() { @Override public void run() { try { runTestInternal(); @@ -1639,7 +1640,7 @@ public abstract class GridAbstractTest extends TestCase { ex.set(hnd != null ? hnd.apply(e) : e); } } - }; + }); runner.start(); http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java index 970002d..097c75f 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteTestResources.java @@ -153,7 +153,7 @@ public class IgniteTestResources { * @param prestart Prestart flag. */ public void startThreads(boolean prestart) { - execSvc = new IgniteThreadPoolExecutor(nodeId.toString(), 40, 40, Long.MAX_VALUE, + execSvc = new IgniteThreadPoolExecutor(nodeId.toString(), null, 40, 40, Long.MAX_VALUE, new LinkedBlockingQueue<Runnable>()); // Improve concurrency for testing. http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java index 7e45470..88d0834 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java @@ -29,17 +29,17 @@ import org.apache.ignite.cache.affinity.fair.FairAffinityFunctionSelfTest; import org.apache.ignite.cache.store.GridCacheBalancingStoreSelfTest; import org.apache.ignite.cache.store.GridCacheLoadOnlyStoreAdapterSelfTest; import org.apache.ignite.cache.store.StoreResourceInjectionSelfTest; +import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreBinaryMarshallerSelfTest; import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreMultitreadedSelfTest; import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreOptimizedMarshallerSelfTest; import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreTest; -import org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreBinaryMarshallerSelfTest; import org.apache.ignite.cache.store.jdbc.GridCacheJdbcBlobStoreMultithreadedSelfTest; import org.apache.ignite.cache.store.jdbc.GridCacheJdbcBlobStoreSelfTest; import org.apache.ignite.internal.processors.cache.CacheAffinityCallSelfTest; import org.apache.ignite.internal.processors.cache.CacheDeferredDeleteSanitySelfTest; import org.apache.ignite.internal.processors.cache.CacheFutureExceptionSelfTest; -import org.apache.ignite.internal.processors.cache.CachePutEventListenerErrorSelfTest; import org.apache.ignite.internal.processors.cache.CacheNamesSelfTest; +import org.apache.ignite.internal.processors.cache.CachePutEventListenerErrorSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheAffinityApiSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheAffinityMapperSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheAffinityRoutingSelfTest; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePortableCacheTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePortableCacheTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePortableCacheTestSuite.java index 574ddeb..efe4d2a 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePortableCacheTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePortableCacheTestSuite.java @@ -19,6 +19,7 @@ package org.apache.ignite.testsuites; import java.util.HashSet; import junit.framework.TestSuite; +import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.internal.processors.cache.GridCacheAffinityRoutingSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheEntryMemorySizeSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheMvccSelfTest; @@ -27,7 +28,6 @@ import org.apache.ignite.internal.processors.cache.GridCacheOffHeapTieredEvictio import org.apache.ignite.internal.processors.cache.GridCacheOffHeapTieredEvictionSelfTest; import org.apache.ignite.internal.processors.cache.GridCacheOffHeapTieredSelfTest; import org.apache.ignite.internal.processors.cache.expiry.IgniteCacheAtomicLocalExpiryPolicyTest; -import org.apache.ignite.internal.processors.cache.expiry.IgniteCacheExpiryPolicyTestSuite; import org.apache.ignite.internal.processors.cache.portable.GridPortableCacheEntryMemorySizeSelfTest; import org.apache.ignite.internal.processors.cache.portable.datastreaming.DataStreamProcessorPortableSelfTest; import org.apache.ignite.internal.processors.cache.portable.datastreaming.GridDataStreamerImplSelfTest; @@ -44,7 +44,6 @@ import org.apache.ignite.internal.processors.cache.portable.distributed.dht.Grid import org.apache.ignite.internal.processors.cache.portable.distributed.dht.GridCachePortablesNearPartitionedByteArrayValuesSelfTest; import org.apache.ignite.internal.processors.cache.portable.distributed.dht.GridCachePortablesPartitionedOnlyByteArrayValuesSelfTest; import org.apache.ignite.internal.processors.datastreamer.DataStreamProcessorSelfTest; -import org.apache.ignite.internal.portable.BinaryMarshaller; import org.apache.ignite.testframework.config.GridTestProperties; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingQueryErrorTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingQueryErrorTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingQueryErrorTest.java index 411e363..6f8ca2d 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingQueryErrorTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingQueryErrorTest.java @@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache; import java.io.IOException; import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import javax.cache.CacheException; import org.apache.ignite.cache.query.ScanQuery; import org.apache.ignite.cache.query.SqlQuery; @@ -75,6 +76,10 @@ public class IgniteCacheP2pUnmarshallingQueryErrorTest extends IgniteCacheP2pUnm private void readObject(ObjectInputStream is) throws IOException { throw new IOException(); } + + private void writeObject(ObjectOutputStream os) throws IOException { + throw new IOException(); + } })).getAll(); assertTrue("Request unmarshalling failed, but error response was not sent.", portableMarshaller()); http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java ---------------------------------------------------------------------- diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java index 786b543..394de68 100644 --- a/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java +++ b/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java @@ -23,9 +23,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import javax.inject.Inject; - import org.apache.karaf.features.FeaturesService; - import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.PaxExam; http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java index 8a073fd..bc7dc4b 100644 --- a/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java +++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java @@ -44,6 +44,7 @@ import org.apache.ignite.internal.util.lang.GridTuple; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.G; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.lang.IgniteRunnable; import org.apache.ignite.lifecycle.LifecycleBean; import org.apache.ignite.lifecycle.LifecycleEventType; import org.apache.ignite.resources.IgniteInstanceResource; @@ -857,6 +858,34 @@ public class GridFactorySelfTest extends GridCommonAbstractTest { } /** + * @throws Exception If failed. + */ + public void testCurrentIgnite() throws Exception { + final String LEFT = "LEFT"; + final String RIGHT = "RIGHT"; + try { + Ignite iLEFT = startGrid(LEFT); + Ignite iRIGHT = startGrid(RIGHT); + waitForDiscovery(iLEFT, iRIGHT); + + iLEFT.compute(iLEFT.cluster().forRemotes()).run(new IgniteRunnable() { + @Override public void run() { + assert Ignition.localIgnite().name().equals(RIGHT); + } + }); + + iRIGHT.compute(iRIGHT.cluster().forRemotes()).run(new IgniteRunnable() { + @Override public void run() { + assert Ignition.localIgnite().name().equals(LEFT); + } + }); + } + finally { + stopAllGrids(); + } + } + + /** * Test task. */ private static class TestTask extends ComputeTaskSplitAdapter<Void, Void> { http://git-wip-us.apache.org/repos/asf/ignite/blob/0adee3ae/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java b/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java index 5c82242..cbe35bd 100644 --- a/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java +++ b/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java @@ -71,6 +71,8 @@ public class GridSpringBeanSerializationSelfTest extends GridCommonAbstractTest cfg.setConnectorConfiguration(null); + cfg.setGridName(getTestGridName()); + return cfg; }