This is an automated email from the ASF dual-hosted git repository.

shishkovilja pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 2fe5dbdddd8 IGNITE-26186 Remove GridNioFuture (#12393)
2fe5dbdddd8 is described below

commit 2fe5dbdddd83d21d38109d86838ca95661c872f1
Author: Vladimir Steshin <[email protected]>
AuthorDate: Wed Oct 8 09:01:32 2025 +0300

    IGNITE-26186 Remove GridNioFuture (#12393)
---
 .../GridNioClientConnectionMultiplexer.java        |  10 +-
 .../processors/cache/CacheOperationFilter.java     |  61 ------
 .../processors/odbc/ClientListenerNioListener.java |   4 +-
 .../protocols/tcp/GridTcpMemcachedNioListener.java |   3 +-
 .../rest/protocols/tcp/GridTcpRestNioListener.java |   3 +-
 .../protocols/tcp/redis/GridRedisNioListener.java  |   3 +-
 .../util/nio/GridConnectionBytesVerifyFilter.java  |   5 +-
 .../util/nio/GridNioAsyncNotifyFilter.java         |   5 +-
 .../internal/util/nio/GridNioCodecFilter.java      |   5 +-
 .../internal/util/nio/GridNioEmbeddedFuture.java   |  77 --------
 .../ignite/internal/util/nio/GridNioFilter.java    |  17 +-
 .../internal/util/nio/GridNioFilterAdapter.java    |  13 +-
 .../internal/util/nio/GridNioFilterChain.java      |  17 +-
 .../internal/util/nio/GridNioFinishedFuture.java   |  70 -------
 .../ignite/internal/util/nio/GridNioFuture.java    |  49 -----
 .../internal/util/nio/GridNioFutureImpl.java       |  66 -------
 .../ignite/internal/util/nio/GridNioServer.java    |  67 ++++---
 .../ignite/internal/util/nio/GridNioSession.java   |   9 +-
 .../internal/util/nio/GridNioSessionImpl.java      |  18 +-
 .../internal/util/nio/GridNioTracerFilter.java     |   5 +-
 .../util/nio/GridSelectorNioSessionImpl.java       |   5 +-
 .../util/nio/GridTcpNioCommunicationClient.java    |   3 +-
 .../internal/util/nio/ssl/GridNioSslFilter.java    |  22 +--
 .../internal/util/nio/ssl/GridNioSslHandler.java   |  33 ++--
 .../future/nio/GridNioEmbeddedFutureSelfTest.java  |  62 ------
 .../util/future/nio/GridNioFutureSelfTest.java     | 218 ---------------------
 .../ignite/internal/util/nio/GridNioSelfTest.java  |   2 +-
 .../util/nio/impl/GridNioFilterChainSelfTest.java  |  10 +-
 .../internal/util/nio/impl/MockNioSession.java     |  16 +-
 .../ignite/testsuites/IgniteLangSelfTestSuite.java |   4 -
 30 files changed, 156 insertions(+), 726 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
index 2e4cb0d25e0..d2f6895ac1d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/client/thin/io/gridnioserver/GridNioClientConnectionMultiplexer.java
@@ -31,15 +31,15 @@ import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.client.ClientConnectionException;
 import org.apache.ignite.configuration.ClientConfiguration;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.client.thin.ClientSslUtils;
 import org.apache.ignite.internal.client.thin.io.ClientConnection;
 import org.apache.ignite.internal.client.thin.io.ClientConnectionMultiplexer;
 import org.apache.ignite.internal.client.thin.io.ClientConnectionStateHandler;
 import org.apache.ignite.internal.client.thin.io.ClientMessageHandler;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.nio.GridNioCodecFilter;
 import org.apache.ignite.internal.util.nio.GridNioFilter;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
-import org.apache.ignite.internal.util.nio.GridNioFutureImpl;
 import org.apache.ignite.internal.util.nio.GridNioServer;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter;
@@ -173,15 +173,15 @@ public class GridNioClientConnectionMultiplexer 
implements ClientConnectionMulti
             }
 
             Map<Integer, Object> meta = new HashMap<>();
-            GridNioFuture<?> sslHandshakeFut = null;
+            IgniteInternalFuture<?> sslHandshakeFut = null;
 
             if (sslCtx != null) {
-                sslHandshakeFut = new GridNioFutureImpl<>(null);
+                sslHandshakeFut = new GridFutureAdapter<>();
 
                 meta.put(GridNioSslFilter.HANDSHAKE_FUT_META_KEY, 
sslHandshakeFut);
             }
 
-            GridNioFuture<GridNioSession> sesFut = srv.createSession(ch, meta, 
false, null);
+            IgniteInternalFuture<GridNioSession> sesFut = 
srv.createSession(ch, meta, false, null);
 
             if (sesFut.error() != null)
                 sesFut.get();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOperationFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOperationFilter.java
deleted file mode 100644
index 7fdfaac5b7b..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheOperationFilter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache;
-
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Cache operation filter.
- */
-public enum CacheOperationFilter {
-    /** Always pass. */
-    ALWAYS,
-
-    /** No value. */
-    NO_VAL,
-
-    /** Has value. */
-    HAS_VAL,
-
-    /** Equals to value. */
-    EQUALS_VAL;
-
-    /**
-     * Creare predicate from operation filter.
-     *
-     * @param val Optional value.
-     * @return Predicate.
-     */
-    @Nullable public CacheEntryPredicate createPredicate(@Nullable CacheObject 
val) {
-        switch (this) {
-            case ALWAYS:
-                return null;
-
-            case NO_VAL:
-                return new CacheEntryPredicateNoValue();
-
-            case HAS_VAL:
-                return new CacheEntryPredicateHasValue();
-
-            default:
-                assert this == EQUALS_VAL;
-
-                return new CacheEntryPredicateContainsValue(val);
-        }
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
index d7d6a428595..f56867a0eeb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerNioListener.java
@@ -27,6 +27,7 @@ import 
org.apache.ignite.configuration.ThinClientConfiguration;
 import org.apache.ignite.failure.FailureContext;
 import org.apache.ignite.failure.FailureType;
 import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.MarshallerContextImpl;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.binary.BinaryReaderEx;
@@ -40,7 +41,6 @@ import 
org.apache.ignite.internal.processors.platform.client.ClientConnectionCon
 import org.apache.ignite.internal.processors.platform.client.ClientStatus;
 import org.apache.ignite.internal.processors.security.OperationSecurityContext;
 import org.apache.ignite.internal.util.GridSpinBusyLock;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioServerListenerAdapter;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey;
@@ -269,7 +269,7 @@ public class ClientListenerNioListener extends 
GridNioServerListenerAdapter<Clie
                 ", resp=" + resp.status() + ']');
         }
 
-        GridNioFuture<?> fut = ses.send(parser.encode(resp));
+        IgniteInternalFuture<?> fut = ses.send(parser.encode(resp));
 
         fut.listen(() -> {
             if (fut.error() == null)
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpMemcachedNioListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpMemcachedNioListener.java
index 39839416519..255f177a47c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpMemcachedNioListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpMemcachedNioListener.java
@@ -32,7 +32,6 @@ import 
org.apache.ignite.internal.processors.rest.request.GridRestRequest;
 import org.apache.ignite.internal.util.future.GridEmbeddedFuture;
 import org.apache.ignite.internal.util.lang.GridTuple3;
 import org.apache.ignite.internal.util.lang.IgniteClosure2X;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioServerListenerAdapter;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.typedef.C2;
@@ -260,7 +259,7 @@ public class GridTcpMemcachedNioListener extends 
GridNioServerListenerAdapter<Gr
      * @param res Response.
      * @return NIO send future.
      */
-    private GridNioFuture<?> sendResponse(GridNioSession ses, 
GridMemcachedMessage res) {
+    private IgniteInternalFuture<?> sendResponse(GridNioSession ses, 
GridMemcachedMessage res) {
         return ses.send(res);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
index 459834f3fca..63e86b309c2 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
@@ -63,7 +63,6 @@ import 
org.apache.ignite.internal.processors.rest.request.GridRestRequest;
 import org.apache.ignite.internal.processors.rest.request.GridRestTaskRequest;
 import 
org.apache.ignite.internal.processors.rest.request.GridRestTopologyRequest;
 import 
org.apache.ignite.internal.processors.rest.request.GridRestWarmUpRequest;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioServerListenerAdapter;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey;
@@ -304,7 +303,7 @@ public class GridTcpRestNioListener extends 
GridNioServerListenerAdapter<GridCli
                             res.errorMessage("Failed to process client 
request: " + e.getMessage());
                         }
 
-                        GridNioFuture<?> sf = ses.send(res);
+                        IgniteInternalFuture<?> sf = ses.send(res);
 
                         // Check if send failed.
                         sf.listen(new CI1<IgniteInternalFuture<?>>() {
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/GridRedisNioListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/GridRedisNioListener.java
index 9c0d08541a5..955eed9f2c8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/GridRedisNioListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/redis/GridRedisNioListener.java
@@ -41,7 +41,6 @@ import 
org.apache.ignite.internal.processors.rest.handlers.redis.string.GridRedi
 import 
org.apache.ignite.internal.processors.rest.handlers.redis.string.GridRedisSetCommandHandler;
 import 
org.apache.ignite.internal.processors.rest.handlers.redis.string.GridRedisSetRangeCommandHandler;
 import 
org.apache.ignite.internal.processors.rest.handlers.redis.string.GridRedisStrlenCommandHandler;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioServerListenerAdapter;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey;
@@ -162,7 +161,7 @@ public class GridRedisNioListener extends 
GridNioServerListenerAdapter<GridRedis
      * @param res Response.
      * @return NIO send future.
      */
-    private GridNioFuture<?> sendResponse(GridNioSession ses, GridRedisMessage 
res) {
+    private IgniteInternalFuture<?> sendResponse(GridNioSession ses, 
GridRedisMessage res) {
         return ses.send(res);
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
index f110cf29937..3829aaa6aa0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
@@ -21,6 +21,7 @@ import java.nio.ByteBuffer;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.LT;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteInClosure;
@@ -72,7 +73,7 @@ public class GridConnectionBytesVerifyFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -134,7 +135,7 @@ public class GridConnectionBytesVerifyFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         return proceedSessionClose(ses);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioAsyncNotifyFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioAsyncNotifyFilter.java
index 3ca6a8cc7ea..ccb7f38b912 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioAsyncNotifyFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioAsyncNotifyFilter.java
@@ -21,6 +21,7 @@ import java.util.concurrent.Executor;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.internal.util.worker.GridWorker;
 import org.apache.ignite.internal.util.worker.GridWorkerPool;
@@ -110,7 +111,7 @@ public class GridNioAsyncNotifyFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -120,7 +121,7 @@ public class GridNioAsyncNotifyFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         return proceedSessionClose(ses);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
index a53a5c0d4e7..1ecb10dc3b6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
@@ -22,6 +22,7 @@ import java.nio.ByteBuffer;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.internal.LT;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -80,7 +81,7 @@ public class GridNioCodecFilter extends GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -133,7 +134,7 @@ public class GridNioCodecFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         return proceedSessionClose(ses);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioEmbeddedFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioEmbeddedFuture.java
deleted file mode 100644
index 7efa84560e8..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioEmbeddedFuture.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.nio;
-
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteInClosure;
-import org.jetbrains.annotations.Nullable;
-
-/**
- * Future that delegates to some other future.
- */
-public class GridNioEmbeddedFuture<R> extends GridNioFutureImpl<R> {
-    /**
-     *
-     */
-    public GridNioEmbeddedFuture() {
-        super(null);
-    }
-
-    /**
-     * Callback to notify that future is finished.
-     * This method must delegate to {@link #onDone(GridNioFuture, Throwable)} 
method.
-     *
-     * @param res Result.
-     */
-    public final void onDone(GridNioFuture<R> res) {
-        onDone(res, null);
-    }
-
-    /**
-     * Callback to notify that future is finished. Note that if non-{@code 
null} exception is passed in
-     * the result value will be ignored.
-     *
-     * @param delegate Optional result.
-     * @param err Optional error.
-     */
-    public void onDone(@Nullable GridNioFuture<R> delegate, @Nullable 
Throwable err) {
-        assert delegate != null || err != null;
-
-        if (err != null)
-            onDone(err);
-        else {
-            delegate.listen(new IgniteInClosure<IgniteInternalFuture<R>>() {
-                @Override public void apply(IgniteInternalFuture<R> t) {
-                    try {
-                        onDone(t.get());
-                    }
-                    catch (IgniteCheckedException e) {
-                        onDone(e);
-                    }
-                }
-            });
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridNioEmbeddedFuture.class, this, super.toString());
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilter.java
index 9163a4f6f05..98096f489fb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilter.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.util.nio;
 
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.lang.IgniteInClosure;
 
 /**
@@ -112,7 +113,7 @@ public interface GridNioFilter {
      * @return Write future or {@code null}.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<?> proceedSessionWrite(
+    public IgniteInternalFuture<?> proceedSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -126,7 +127,7 @@ public interface GridNioFilter {
      * @return Close future.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<Boolean> proceedSessionClose(GridNioSession ses) 
throws IgniteCheckedException;
+    public IgniteInternalFuture<Boolean> proceedSessionClose(GridNioSession 
ses) throws IgniteCheckedException;
 
     /**
      * Invoked when a new session was created.
@@ -163,7 +164,7 @@ public interface GridNioFilter {
      * @return Write future or {@code null}.
      * @throws GridNioException If GridNioException occurred while handling 
event.
      */
-    public GridNioFuture<?> onSessionWrite(GridNioSession ses,
+    public IgniteInternalFuture<?> onSessionWrite(GridNioSession ses,
         Object msg,
         boolean fut,
         IgniteInClosure<IgniteException> ackC) throws IgniteCheckedException;
@@ -184,7 +185,7 @@ public interface GridNioFilter {
      * @return Close future.
      * @throws IgniteCheckedException If IgniteCheckedException occurred while 
handling event.
      */
-    public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) throws 
IgniteCheckedException;
+    public IgniteInternalFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException;
 
     /**
      * Called when session is idle for longer time that is
@@ -227,7 +228,7 @@ public interface GridNioFilter {
      * @return Future for operation.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<?> proceedPauseReads(GridNioSession ses) throws 
IgniteCheckedException;
+    public IgniteInternalFuture<?> proceedPauseReads(GridNioSession ses) 
throws IgniteCheckedException;
 
     /**
      * Pauses reads for session.
@@ -236,7 +237,7 @@ public interface GridNioFilter {
      * @return Future for operation.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<?> onPauseReads(GridNioSession ses) throws 
IgniteCheckedException;
+    public IgniteInternalFuture<?> onPauseReads(GridNioSession ses) throws 
IgniteCheckedException;
 
     /**
      * Resumes reads for session.
@@ -245,7 +246,7 @@ public interface GridNioFilter {
      * @return Future for operation.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<?> proceedResumeReads(GridNioSession ses) throws 
IgniteCheckedException;
+    public IgniteInternalFuture<?> proceedResumeReads(GridNioSession ses) 
throws IgniteCheckedException;
 
     /**
      * Resumes reads for session.
@@ -254,5 +255,5 @@ public interface GridNioFilter {
      * @return Future for operation.
      * @throws IgniteCheckedException If filter is not in chain or 
GridNioException occurred in the underlying filter.
      */
-    public GridNioFuture<?> onResumeReads(GridNioSession ses) throws 
IgniteCheckedException;
+    public IgniteInternalFuture<?> onResumeReads(GridNioSession ses) throws 
IgniteCheckedException;
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterAdapter.java
index 05f4ec6885b..ed95f6a9802 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterAdapter.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.util.nio;
 
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.lang.IgniteInClosure;
 
 /**
@@ -110,7 +111,7 @@ public abstract class GridNioFilterAdapter implements 
GridNioFilter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> proceedSessionWrite(
+    @Override public IgniteInternalFuture<?> proceedSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -122,7 +123,7 @@ public abstract class GridNioFilterAdapter implements 
GridNioFilter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> proceedSessionClose(GridNioSession 
ses) throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
proceedSessionClose(GridNioSession ses) throws IgniteCheckedException {
         checkNext();
 
         return nextFilter.onSessionClose(ses);
@@ -143,26 +144,26 @@ public abstract class GridNioFilterAdapter implements 
GridNioFilter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> proceedPauseReads(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> proceedPauseReads(GridNioSession 
ses) throws IgniteCheckedException {
         checkNext();
 
         return nextFilter.onPauseReads(ses);
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> proceedResumeReads(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> proceedResumeReads(GridNioSession 
ses) throws IgniteCheckedException {
         checkNext();
 
         return nextFilter.onResumeReads(ses);
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onPauseReads(GridNioSession ses) throws 
IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> onPauseReads(GridNioSession ses) 
throws IgniteCheckedException {
         return proceedPauseReads(ses);
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onResumeReads(GridNioSession ses) throws 
IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> onResumeReads(GridNioSession ses) 
throws IgniteCheckedException {
         return proceedResumeReads(ses);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
index a57b546e3db..2903a709aef 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.util.nio;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.typedef.internal.LT;
 import org.apache.ignite.lang.IgniteInClosure;
 
@@ -183,7 +184,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
      * @return Send future.
      * @throws IgniteCheckedException If IgniteCheckedException occurred while 
handling event.
      */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -199,7 +200,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
      * @return Close future.
      * @throws IgniteCheckedException If IgniteCheckedException occurred while 
handling event.
      */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         return tail.onSessionClose(ses);
     }
 
@@ -220,7 +221,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
      * @return Future.
      * @throws IgniteCheckedException If IgniteCheckedException occurred while 
handling event.
      */
-    @Override public GridNioFuture<?> onPauseReads(GridNioSession ses) throws 
IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> onPauseReads(GridNioSession ses) 
throws IgniteCheckedException {
         return tail.onPauseReads(ses);
     }
 
@@ -231,7 +232,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
      * @return Future.
      * @throws IgniteCheckedException If IgniteCheckedException occurred while 
handling event.
      */
-    @Override public GridNioFuture<?> onResumeReads(GridNioSession ses) throws 
IgniteCheckedException {
+    @Override public IgniteInternalFuture<?> onResumeReads(GridNioSession ses) 
throws IgniteCheckedException {
         return tail.onResumeReads(ses);
     }
 
@@ -262,7 +263,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onSessionWrite(GridNioSession ses,
+        @Override public IgniteInternalFuture<?> onSessionWrite(GridNioSession 
ses,
             Object msg,
             boolean fut,
             IgniteInClosure<IgniteException> ackC) throws 
IgniteCheckedException {
@@ -270,7 +271,7 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession 
ses) throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
             return proceedSessionClose(ses);
         }
 
@@ -290,12 +291,12 @@ public class GridNioFilterChain<T> extends 
GridNioFilterAdapter {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onPauseReads(GridNioSession ses) 
throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<?> onPauseReads(GridNioSession 
ses) throws IgniteCheckedException {
             return proceedPauseReads(ses);
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onResumeReads(GridNioSession ses) 
throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<?> onResumeReads(GridNioSession 
ses) throws IgniteCheckedException {
             return proceedResumeReads(ses);
         }
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFinishedFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFinishedFuture.java
deleted file mode 100644
index bbd62c54e2a..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFinishedFuture.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.nio;
-
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.util.future.GridFinishedFuture;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteInClosure;
-
-/**
- * Future that represents already completed result.
- */
-public class GridNioFinishedFuture<R> extends GridFinishedFuture<R> implements 
GridNioFuture<R> {
-    /** Message thread flag. */
-    private boolean msgThread;
-
-    /**
-     * @param res Result.
-     */
-    public GridNioFinishedFuture(R res) {
-        super(res);
-    }
-
-    /**
-     * @param err Error.
-     */
-    public GridNioFinishedFuture(Throwable err) {
-        super(err);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void messageThread(boolean msgThread) {
-        this.msgThread = msgThread;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean messageThread() {
-        return msgThread;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean skipRecovery() {
-        return true;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteInClosure<IgniteException> ackClosure() {
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridNioFinishedFuture.class, this, super.toString());
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFuture.java
deleted file mode 100644
index b604ed86284..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFuture.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.nio;
-
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.lang.IgniteInClosure;
-
-/**
- * NIO future.
- */
-public interface GridNioFuture<R> extends IgniteInternalFuture<R> {
-    /**
-     * Sets flag indicating that message send future was created in thread 
that was processing a message.
-     *
-     * @param msgThread {@code True} if future was created in thread that is 
processing message.
-     */
-    public void messageThread(boolean msgThread);
-
-    /**
-     * @return {@code True} if future was created in thread that was 
processing message.
-     */
-    public boolean messageThread();
-
-    /**
-     * @return {@code True} if skip recovery for this operation.
-     */
-    public boolean skipRecovery();
-
-    /**
-     * @return Ack closure.
-     */
-    public IgniteInClosure<IgniteException> ackClosure();
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFutureImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFutureImpl.java
deleted file mode 100644
index c497893b886..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFutureImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.nio;
-
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.internal.util.future.GridFutureAdapter;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteInClosure;
-
-/**
- * Default future implementation.
- */
-public class GridNioFutureImpl<R> extends GridFutureAdapter<R> implements 
GridNioFuture<R> {
-    /** */
-    private boolean msgThread;
-
-    /** */
-    protected final IgniteInClosure<IgniteException> ackC;
-
-    /**
-     * @param ackC Ack closure.
-     */
-    public GridNioFutureImpl(IgniteInClosure<IgniteException> ackC) {
-        this.ackC = ackC;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void messageThread(boolean msgThread) {
-        this.msgThread = msgThread;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean messageThread() {
-        return msgThread;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean skipRecovery() {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public IgniteInClosure<IgniteException> ackClosure() {
-        return ackC;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridNioFutureImpl.class, this);
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 52c3fb053e2..4e43d28ea7e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -68,6 +68,8 @@ import org.apache.ignite.internal.processors.tracing.Tracing;
 import org.apache.ignite.internal.util.GridConcurrentHashSet;
 import org.apache.ignite.internal.util.GridUnsafe;
 import org.apache.ignite.internal.util.future.GridCompoundFuture;
+import org.apache.ignite.internal.util.future.GridFinishedFuture;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter;
 import org.apache.ignite.internal.util.tostring.GridToStringExclude;
 import org.apache.ignite.internal.util.typedef.F;
@@ -551,13 +553,13 @@ public class GridNioServer<T> {
      * @param ses Session to close.
      * @return Future for operation.
      */
-    public GridNioFuture<Boolean> close(GridNioSession ses) {
+    public IgniteInternalFuture<Boolean> close(GridNioSession ses) {
         assert ses instanceof GridSelectorNioSessionImpl : ses;
 
         GridSelectorNioSessionImpl impl = (GridSelectorNioSessionImpl)ses;
 
         if (impl.closed())
-            return new GridNioFinishedFuture<>(false);
+            return new GridFinishedFuture<>(false);
 
         NioOperationFuture<Boolean> fut = new NioOperationFuture<>(impl, 
NioOperation.CLOSE);
 
@@ -584,7 +586,7 @@ public class GridNioServer<T> {
      * @param ackC Closure invoked when message ACK is received.
      * @return Future for operation.
      */
-    GridNioFuture<?> send(GridNioSession ses,
+    IgniteInternalFuture<?> send(GridNioSession ses,
         ByteBuffer msg,
         boolean createFut,
         IgniteInClosure<IgniteException> ackC) throws IgniteCheckedException {
@@ -615,7 +617,7 @@ public class GridNioServer<T> {
      * @param ackC Closure invoked when message ACK is received.
      * @return Future for operation.
      */
-    GridNioFuture<?> send(GridNioSession ses,
+    IgniteInternalFuture<?> send(GridNioSession ses,
         Message msg,
         boolean createFut,
         IgniteInClosure<IgniteException> ackC) throws IgniteCheckedException {
@@ -658,7 +660,7 @@ public class GridNioServer<T> {
 
                 req.onError(err);
 
-                if (!(req instanceof GridNioFuture))
+                if (!(req instanceof IgniteInternalFuture))
                     throw new IgniteCheckedException(err);
             }
         }
@@ -789,14 +791,14 @@ public class GridNioServer<T> {
      * @param op Operation.
      * @return Future for operation.
      */
-    private GridNioFuture<?> pauseResumeReads(GridNioSession ses, NioOperation 
op) {
+    private IgniteInternalFuture<?> pauseResumeReads(GridNioSession ses, 
NioOperation op) {
         assert ses instanceof GridSelectorNioSessionImpl;
         assert op == NioOperation.PAUSE_READ || op == NioOperation.RESUME_READ;
 
         GridSelectorNioSessionImpl impl = (GridSelectorNioSessionImpl)ses;
 
         if (impl.closed())
-            return new GridNioFinishedFuture(new IOException("Failed to 
pause/resume reads " +
+            return new GridFinishedFuture(new IOException("Failed to 
pause/resume reads " +
                 "(connection was closed): " + ses));
 
         NioOperationFuture<?> fut = new NioOperationFuture<Void>(impl, op);
@@ -914,7 +916,7 @@ public class GridNioServer<T> {
      * @param lsnr Listener that should be invoked in NIO thread.
      * @return Future to get session.
      */
-    public GridNioFuture<GridNioSession> createSession(
+    public IgniteInternalFuture<GridNioSession> createSession(
         final SocketChannel ch,
         @Nullable Map<Integer, Object> meta,
         boolean async,
@@ -940,11 +942,11 @@ public class GridNioServer<T> {
                 return req;
             }
             else
-                return new GridNioFinishedFuture<>(
+                return new GridFinishedFuture<>(
                     new IgniteCheckedException("Failed to create session, 
server is stopped."));
         }
         catch (IOException e) {
-            return new GridNioFinishedFuture<>(e);
+            return new GridFinishedFuture<>(e);
         }
     }
 
@@ -952,7 +954,7 @@ public class GridNioServer<T> {
      * @param ch Channel.
      * @param meta Session meta.
      */
-    public GridNioFuture<GridNioSession> cancelConnect(final SocketChannel ch, 
Map<Integer, ?> meta) {
+    public IgniteInternalFuture<GridNioSession> cancelConnect(final 
SocketChannel ch, Map<Integer, ?> meta) {
         if (!closed) {
             NioOperationFuture<GridNioSession> req = new 
NioOperationFuture<>(ch, false, meta);
 
@@ -967,7 +969,7 @@ public class GridNioServer<T> {
             return req;
         }
         else
-            return new GridNioFinishedFuture<>(
+            return new GridFinishedFuture<>(
                 new IgniteCheckedException("Failed to cancel connection, 
server is stopped."));
     }
 
@@ -3413,7 +3415,7 @@ public class GridNioServer<T> {
     /**
      * Class for requesting write and session close operations.
      */
-    private static class NioOperationFuture<R> extends GridNioFutureImpl<R> 
implements SessionWriteRequest,
+    private static class NioOperationFuture<R> extends GridFutureAdapter<R> 
implements SessionWriteRequest,
         SessionChangeRequest, GridNioKeyAttachment {
         /** Socket channel in register request. */
         @GridToStringExclude
@@ -3444,6 +3446,12 @@ public class GridNioServer<T> {
         /** */
         private Span span;
 
+        /** */
+        private boolean msgThread;
+
+        /** */
+        private IgniteInClosure<IgniteException> ackC;
+
         /**
          * @param sockCh Socket channel.
          * @param accepted {@code True} if socket has been accepted.
@@ -3454,8 +3462,6 @@ public class GridNioServer<T> {
             boolean accepted,
             @Nullable Map<Integer, ?> meta
         ) {
-            super(null);
-
             op = NioOperation.REGISTER;
 
             this.sockCh = sockCh;
@@ -3471,8 +3477,6 @@ public class GridNioServer<T> {
          * @param op Requested operation.
          */
         NioOperationFuture(GridSelectorNioSessionImpl ses, NioOperation op) {
-            super(null);
-
             assert ses != null || op == NioOperation.DUMP_STATS : "Invalid 
params [ses=" + ses + ", op=" + op + ']';
             assert op != null;
             assert op != NioOperation.REGISTER;
@@ -3494,8 +3498,6 @@ public class GridNioServer<T> {
             NioOperation op,
             Object msg,
             IgniteInClosure<IgniteException> ackC) {
-            super(ackC);
-
             assert ses != null;
             assert op != null;
             assert op != NioOperation.REGISTER;
@@ -3505,6 +3507,7 @@ public class GridNioServer<T> {
             this.op = op;
             this.msg = msg;
             this.span = MTC.span();
+            this.ackC = ackC;
         }
 
         /**
@@ -3521,8 +3524,6 @@ public class GridNioServer<T> {
             Message commMsg,
             boolean skipRecovery,
             IgniteInClosure<IgniteException> ackC) {
-            super(ackC);
-
             assert ses != null;
             assert op != null;
             assert op != NioOperation.REGISTER;
@@ -3533,6 +3534,7 @@ public class GridNioServer<T> {
             this.msg = commMsg;
             this.skipRecovery = skipRecovery;
             this.span = MTC.span();
+            this.ackC = ackC;
         }
 
         /** {@inheritDoc} */
@@ -3598,6 +3600,21 @@ public class GridNioServer<T> {
             onDone();
         }
 
+        /** {@inheritDoc} */
+        @Override public void messageThread(boolean msgThread) {
+            this.msgThread = msgThread;
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean messageThread() {
+            return msgThread;
+        }
+
+        /** {@inheritDoc} */
+        @Override public IgniteInClosure<IgniteException> ackClosure() {
+            return ackC;
+        }
+
         /** {@inheritDoc} */
         @Override public boolean skipRecovery() {
             return skipRecovery;
@@ -3693,7 +3710,7 @@ public class GridNioServer<T> {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onSessionWrite(GridNioSession ses,
+        @Override public IgniteInternalFuture<?> onSessionWrite(GridNioSession 
ses,
             Object msg,
             boolean fut,
             IgniteInClosure<IgniteException> ackC) throws 
IgniteCheckedException {
@@ -3731,7 +3748,7 @@ public class GridNioServer<T> {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession 
ses) {
+        @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) {
             return close(ses);
         }
 
@@ -3746,12 +3763,12 @@ public class GridNioServer<T> {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onPauseReads(GridNioSession ses) 
throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<?> onPauseReads(GridNioSession 
ses) throws IgniteCheckedException {
             return pauseResumeReads(ses, NioOperation.PAUSE_READ);
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onResumeReads(GridNioSession ses) 
throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<?> onResumeReads(GridNioSession 
ses) throws IgniteCheckedException {
             return pauseResumeReads(ses, NioOperation.RESUME_READ);
         }
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
index 979bc9f1437..1b9ac6f874a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSession.java
@@ -21,6 +21,7 @@ import java.net.InetSocketAddress;
 import java.security.cert.Certificate;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.lang.IgniteInClosure;
 import org.jetbrains.annotations.Nullable;
 
@@ -97,7 +98,7 @@ public interface GridNioSession {
      *
      * @return Future representing result.
      */
-    public GridNioFuture<Boolean> close();
+    public IgniteInternalFuture<Boolean> close();
 
     /**
      * Performs a request for asynchronous data send.
@@ -106,7 +107,7 @@ public interface GridNioSession {
      *            to the nio server.
      * @return Future representing result.
      */
-    public GridNioFuture<?> send(Object msg);
+    public IgniteInternalFuture<?> send(Object msg);
 
     /**
      * @param msg Message to be sent.
@@ -156,14 +157,14 @@ public interface GridNioSession {
      *
      * @return Future representing result.
      */
-    public GridNioFuture<?> resumeReads();
+    public IgniteInternalFuture<?> resumeReads();
 
     /**
      * Pauses reads.
      *
      * @return Future representing result.
      */
-    public GridNioFuture<?> pauseReads();
+    public IgniteInternalFuture<?> pauseReads();
 
     /**
      * Checks whether reads are paused.
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionImpl.java
index 64e250a316c..ef8aadd909f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionImpl.java
@@ -23,6 +23,8 @@ import java.util.concurrent.atomic.AtomicLong;
 import javax.net.ssl.SSLPeerUnverifiedException;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.nio.ssl.GridSslMeta;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -110,7 +112,7 @@ public class GridNioSessionImpl implements GridNioSession {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> send(Object msg) {
+    @Override public IgniteInternalFuture<?> send(Object msg) {
         try {
             resetSendScheduleTime();
 
@@ -119,7 +121,7 @@ public class GridNioSessionImpl implements GridNioSession {
         catch (IgniteCheckedException e) {
             close();
 
-            return new GridNioFinishedFuture<Object>(e);
+            return new GridFinishedFuture<Object>(e);
         }
     }
 
@@ -137,39 +139,39 @@ public class GridNioSessionImpl implements GridNioSession 
{
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> resumeReads() {
+    @Override public IgniteInternalFuture<?> resumeReads() {
         try {
             return chain().onResumeReads(this);
         }
         catch (IgniteCheckedException e) {
             close();
 
-            return new GridNioFinishedFuture<Object>(e);
+            return new GridFinishedFuture<Object>(e);
         }
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> pauseReads() {
+    @Override public IgniteInternalFuture<?> pauseReads() {
         try {
             return chain().onPauseReads(this);
         }
         catch (IgniteCheckedException e) {
             close();
 
-            return new GridNioFinishedFuture<Object>(e);
+            return new GridFinishedFuture<Object>(e);
         }
     }
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
-    @Override public GridNioFuture<Boolean> close() {
+    @Override public IgniteInternalFuture<Boolean> close() {
         markedForClose = true;
 
         try {
             return filterChain.onSessionClose(this);
         }
         catch (IgniteCheckedException e) {
-            return new GridNioFinishedFuture<>(e);
+            return new GridFinishedFuture<>(e);
         }
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioTracerFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioTracerFilter.java
index 31c69ef4acb..650aeb2cc7c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioTracerFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioTracerFilter.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.util.nio;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.tracing.MTC;
 import org.apache.ignite.internal.processors.tracing.NoopSpan;
 import org.apache.ignite.internal.processors.tracing.NoopTracing;
@@ -80,7 +81,7 @@ public class GridNioTracerFilter extends GridNioFilterAdapter 
{
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -109,7 +110,7 @@ public class GridNioTracerFilter extends 
GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         return proceedSessionClose(ses);
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
index 85e76900b36..7fceaad96ea 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
@@ -28,6 +28,7 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
 import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
 import org.apache.ignite.internal.processors.tracing.MTC;
@@ -494,8 +495,8 @@ public class GridSelectorNioSessionImpl extends 
GridNioSessionImpl implements Gr
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> close() {
-        GridNioFuture<Boolean> fut = super.close();
+    @Override public IgniteInternalFuture<Boolean> close() {
+        IgniteInternalFuture<Boolean> fut = super.close();
 
         if (!fut.isDone()) {
             fut.listen(() -> {
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridTcpNioCommunicationClient.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridTcpNioCommunicationClient.java
index 768e62461a7..056f4c20a32 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridTcpNioCommunicationClient.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridTcpNioCommunicationClient.java
@@ -25,6 +25,7 @@ import java.util.UUID;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.lang.IgniteInClosure2X;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -100,7 +101,7 @@ public class GridTcpNioCommunicationClient extends 
GridAbstractCommunicationClie
         if (closed())
             throw new IgniteCheckedException("Client was closed: " + this);
 
-        GridNioFuture<?> fut = ses.send(data);
+        IgniteInternalFuture<?> fut = ses.send(data);
 
         if (fut.isDone())
             fut.get();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
index 125aee429d9..ab9f2994699 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
@@ -26,14 +26,14 @@ import javax.net.ssl.SSLException;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.metric.MetricRegistryImpl;
 import org.apache.ignite.internal.processors.metric.impl.HistogramMetricImpl;
 import org.apache.ignite.internal.processors.metric.impl.IntMetricImpl;
+import org.apache.ignite.internal.util.future.GridFinishedFuture;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.nio.GridNioException;
 import org.apache.ignite.internal.util.nio.GridNioFilterAdapter;
-import org.apache.ignite.internal.util.nio.GridNioFinishedFuture;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
-import org.apache.ignite.internal.util.nio.GridNioFutureImpl;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -243,10 +243,10 @@ public class GridNioSslFilter extends 
GridNioFilterAdapter {
             sslMeta.handler(hnd);
 
             if (handshakeDuration != null) {
-                GridNioFutureImpl<?> fut = ses.meta(HANDSHAKE_FUT_META_KEY);
+                GridFutureAdapter<?> fut = ses.meta(HANDSHAKE_FUT_META_KEY);
 
                 if (fut == null) {
-                    fut = new GridNioFutureImpl<>(null);
+                    fut = new GridFutureAdapter<>();
 
                     ses.addMeta(HANDSHAKE_FUT_META_KEY, fut);
                 }
@@ -271,7 +271,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
     /** {@inheritDoc} */
     @Override public void onSessionClosed(GridNioSession ses) throws 
IgniteCheckedException {
         try {
-            GridNioFutureImpl<?> fut = ses.removeMeta(HANDSHAKE_FUT_META_KEY);
+            GridFutureAdapter<?> fut = ses.removeMeta(HANDSHAKE_FUT_META_KEY);
 
             if (fut != null) {
                 if (rejectedSesCnt != null)
@@ -340,7 +340,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> onSessionWrite(
+    @Override public IgniteInternalFuture<?> onSessionWrite(
         GridNioSession ses,
         Object msg,
         boolean fut,
@@ -352,7 +352,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
         ByteBuffer input = checkMessage(ses, msg);
 
         if (!input.hasRemaining())
-            return new GridNioFinishedFuture<Object>(null);
+            return new GridFinishedFuture<Object>(null);
 
         GridNioSslHandler hnd = sslHandler(ses);
 
@@ -360,7 +360,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
 
         try {
             if (hnd.isOutboundDone())
-                return new GridNioFinishedFuture<Object>(new 
IOException("Failed to send data (secure session was " +
+                return new GridFinishedFuture<Object>(new IOException("Failed 
to send data (secure session was " +
                     "already closed): " + ses));
 
             if (hnd.isHandshakeFinished()) {
@@ -426,7 +426,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession ses) 
throws IgniteCheckedException {
+    @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
         GridNioSslHandler hnd = sslHandler(ses);
 
         hnd.lock();
@@ -447,7 +447,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
      * @return Close future.
      * @throws GridNioException If failed to forward requests to filter chain.
      */
-    private GridNioFuture<Boolean> shutdownSession(GridNioSession ses, 
GridNioSslHandler hnd)
+    private IgniteInternalFuture<Boolean> shutdownSession(GridNioSession ses, 
GridNioSslHandler hnd)
         throws IgniteCheckedException {
         try {
             hnd.closeOutbound();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
index 9ece470653d..13cf4ab96be 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
@@ -29,10 +29,9 @@ import javax.net.ssl.SSLSession;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.internal.util.nio.GridNioEmbeddedFuture;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.util.future.GridFutureAdapter;
 import org.apache.ignite.internal.util.nio.GridNioException;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
-import org.apache.ignite.internal.util.nio.GridNioFutureImpl;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteInClosure;
@@ -220,7 +219,7 @@ class GridNioSslHandler extends ReentrantLock {
                         if (!initHandshakeComplete) {
                             initHandshakeComplete = true;
 
-                            GridNioFutureImpl<?> fut = 
ses.removeMeta(HANDSHAKE_FUT_META_KEY);
+                            GridFutureAdapter<?> fut = 
ses.removeMeta(HANDSHAKE_FUT_META_KEY);
 
                             if (fut != null)
                                 fut.onDone();
@@ -422,10 +421,10 @@ class GridNioSslHandler extends ReentrantLock {
      * @param ackC Closure invoked when message ACK is received.
      * @return Write future.
      */
-    GridNioFuture<?> deferredWrite(ByteBuffer buf, 
IgniteInClosure<IgniteException> ackC) {
+    IgniteInternalFuture<?> deferredWrite(ByteBuffer buf, 
IgniteInClosure<IgniteException> ackC) {
         assert isHeldByCurrentThread();
 
-        GridNioEmbeddedFuture<Object> fut = new GridNioEmbeddedFuture<>();
+        GridFutureAdapter<Object> fut = new GridFutureAdapter<>();
 
         ByteBuffer cp = copy(buf);
 
@@ -446,7 +445,19 @@ class GridNioSslHandler extends ReentrantLock {
         while (!deferredWriteQueue.isEmpty()) {
             WriteRequest req = deferredWriteQueue.poll();
 
-            
req.future().onDone((GridNioFuture<Object>)parent.proceedSessionWrite(ses, 
req.buffer(), true, req.ackC));
+            GridFutureAdapter<Object> fut0 = req.future();
+
+            IgniteInternalFuture<Object> delegate = 
(IgniteInternalFuture<Object>)parent.proceedSessionWrite(ses, req.buffer(),
+                true, req.ackC);
+
+            delegate.listen(fut -> {
+                try {
+                    fut0.onDone(fut.get());
+                }
+                catch (IgniteCheckedException e) {
+                    fut0.onDone(e);
+                }
+            });
         }
     }
 
@@ -486,7 +497,7 @@ class GridNioSslHandler extends ReentrantLock {
      * @return Write future.
      * @throws GridNioException If send failed.
      */
-    GridNioFuture<?> writeNetBuffer(IgniteInClosure<IgniteException> ackC) 
throws IgniteCheckedException {
+    IgniteInternalFuture<?> writeNetBuffer(IgniteInClosure<IgniteException> 
ackC) throws IgniteCheckedException {
         assert isHeldByCurrentThread();
 
         ByteBuffer cp = copy(outNetBuf);
@@ -694,7 +705,7 @@ class GridNioSslHandler extends ReentrantLock {
      */
     private static class WriteRequest {
         /** Future that should be completed. */
-        private final GridNioEmbeddedFuture<Object> fut;
+        private final GridFutureAdapter<Object> fut;
 
         /** Buffer needed to be written. */
         private final ByteBuffer buf;
@@ -709,7 +720,7 @@ class GridNioSslHandler extends ReentrantLock {
          * @param buf Buffer to write.
          * @param ackC Closure invoked when message ACK is received.
          */
-        private WriteRequest(GridNioEmbeddedFuture<Object> fut,
+        private WriteRequest(GridFutureAdapter<Object> fut,
             ByteBuffer buf,
             IgniteInClosure<IgniteException> ackC) {
             this.fut = fut;
@@ -720,7 +731,7 @@ class GridNioSslHandler extends ReentrantLock {
         /**
          * @return Future.
          */
-        public GridNioEmbeddedFuture<Object> future() {
+        public GridFutureAdapter<Object> future() {
             return fut;
         }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioEmbeddedFutureSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioEmbeddedFutureSelfTest.java
deleted file mode 100644
index 3c60ea0e28d..00000000000
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioEmbeddedFutureSelfTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.future.nio;
-
-import org.apache.ignite.internal.util.nio.GridNioEmbeddedFuture;
-import org.apache.ignite.internal.util.nio.GridNioFutureImpl;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.junit.Test;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-/**
- * Test for NIO embedded future.
- */
-public class GridNioEmbeddedFutureSelfTest extends GridCommonAbstractTest {
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testNioEmbeddedFuture() throws Exception {
-        // Original future.
-        final GridNioFutureImpl<Integer> origFut = new 
GridNioFutureImpl<>(null);
-
-        // Embedded future to test.
-        final GridNioEmbeddedFuture<Integer> embFut = new 
GridNioEmbeddedFuture<>();
-
-        embFut.onDone(origFut, null);
-
-        assertFalse("Expect original future is not complete.", 
origFut.isDone());
-
-        // Finish original future in separate thread.
-        Thread t = new Thread() {
-            @Override public void run() {
-                origFut.onDone(100);
-            }
-        };
-
-        t.start();
-        t.join();
-
-        assertTrue("Expect original future is complete.", origFut.isDone());
-        assertTrue("Expect embedded future is complete.", embFut.isDone());
-
-        // Wait for embedded future completes.
-        assertEquals(new Integer(100), embFut.get(1, SECONDS));
-    }
-}
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioFutureSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioFutureSelfTest.java
deleted file mode 100644
index b5fc505f1c3..00000000000
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/future/nio/GridNioFutureSelfTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.util.future.nio;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
-import org.apache.ignite.IgniteCheckedException;
-import org.apache.ignite.internal.IgniteFutureCancelledCheckedException;
-import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
-import org.apache.ignite.internal.util.nio.GridNioFutureImpl;
-import org.apache.ignite.internal.util.typedef.CI1;
-import org.apache.ignite.testframework.GridTestUtils;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.junit.Test;
-
-/**
- * Test for NIO future.
- */
-public class GridNioFutureSelfTest extends GridCommonAbstractTest {
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testOnDone() throws Exception {
-        GridNioFutureImpl<String> fut = new GridNioFutureImpl<>(null);
-
-        fut.onDone();
-
-        assertNull(fut.get());
-
-        fut = new GridNioFutureImpl<>(null);
-
-        fut.onDone("test");
-
-        assertEquals("test", fut.get());
-
-        fut = new GridNioFutureImpl<>(null);
-
-        fut.onDone(new IgniteCheckedException("TestMessage"));
-
-        final GridNioFutureImpl<String> callFut1 = fut;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return callFut1.get();
-            }
-        }, IgniteCheckedException.class, "TestMessage");
-
-        fut = new GridNioFutureImpl<>(null);
-
-        fut.onDone("test", new IgniteCheckedException("TestMessage"));
-
-        final GridNioFuture<String> callFut2 = fut;
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                return callFut2.get();
-            }
-        }, IgniteCheckedException.class, "TestMessage");
-
-        fut = new GridNioFutureImpl<>(null);
-
-        fut.onDone("test");
-
-        fut.onCancelled();
-
-        assertEquals("test", fut.get());
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testOnCancelled() throws Exception {
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                GridNioFutureImpl<String> fut = new GridNioFutureImpl<>(null);
-
-                fut.onCancelled();
-
-                return fut.get();
-            }
-        }, IgniteFutureCancelledCheckedException.class, null);
-
-        GridTestUtils.assertThrows(log, new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                GridNioFutureImpl<String> fut = new GridNioFutureImpl<>(null);
-
-                fut.onCancelled();
-
-                fut.onDone();
-
-                return fut.get();
-            }
-        }, IgniteFutureCancelledCheckedException.class, null);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testListenSyncNotify() throws Exception {
-        GridNioFutureImpl<String> fut = new GridNioFutureImpl<>(null);
-
-        int lsnrCnt = 10;
-
-        final CountDownLatch latch = new CountDownLatch(lsnrCnt);
-
-        final Thread runThread = Thread.currentThread();
-
-        final AtomicReference<Exception> err = new AtomicReference<>();
-
-        for (int i = 0; i < lsnrCnt; i++) {
-            fut.listen(new CI1<IgniteInternalFuture<String>>() {
-                @Override public void apply(IgniteInternalFuture<String> t) {
-                    if (Thread.currentThread() != runThread)
-                        err.compareAndSet(null, new Exception("Wrong 
notification thread: " + Thread.currentThread()));
-
-                    latch.countDown();
-                }
-            });
-        }
-
-        fut.onDone();
-
-        assertEquals(0, latch.getCount());
-
-        if (err.get() != null)
-            throw err.get();
-
-        final AtomicBoolean called = new AtomicBoolean();
-
-        err.set(null);
-
-        fut.listen(new CI1<IgniteInternalFuture<String>>() {
-            @Override public void apply(IgniteInternalFuture<String> t) {
-                if (Thread.currentThread() != runThread)
-                    err.compareAndSet(null, new Exception("Wrong notification 
thread: " + Thread.currentThread()));
-
-                called.set(true);
-            }
-        });
-
-        assertTrue(called.get());
-
-        if (err.get() != null)
-            throw err.get();
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testGet() throws Exception {
-        GridNioFutureImpl<Object> unfinished = new GridNioFutureImpl<>(null);
-        GridNioFutureImpl<Object> finished = new GridNioFutureImpl<>(null);
-        GridNioFutureImpl<Object> cancelled = new GridNioFutureImpl<>(null);
-
-        finished.onDone("Finished");
-
-        cancelled.onCancelled();
-
-        try {
-            unfinished.get(50);
-
-            assert false;
-        }
-        catch (IgniteFutureTimeoutCheckedException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        Object o = finished.get();
-
-        assertEquals("Finished", o);
-
-        o = finished.get(1000);
-
-        assertEquals("Finished", o);
-
-        try {
-            cancelled.get();
-
-            assert false;
-        }
-        catch (IgniteFutureCancelledCheckedException e) {
-            info("Caught expected exception: " + e);
-        }
-
-        try {
-            cancelled.get(1000);
-
-            assert false;
-        }
-        catch (IgniteFutureCancelledCheckedException e) {
-            info("Caught expected exception: " + e);
-        }
-
-    }
-}
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSelfTest.java
index 255e263a4d5..46b6e74224b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSelfTest.java
@@ -688,7 +688,7 @@ public class GridNioSelfTest extends GridCommonAbstractTest 
{
         try {
             SocketChannel ch = SocketChannel.open(new 
InetSocketAddress(U.getLocalHost(), srvr2.port()));
 
-            GridNioFuture<GridNioSession> fut = srvr1.createSession(ch, null, 
false, null);
+            IgniteInternalFuture<GridNioSession> fut = srvr1.createSession(ch, 
null, false, null);
 
             ses = fut.get();
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/GridNioFilterChainSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/GridNioFilterChainSelfTest.java
index 42a3bedeaf1..ebf80467fb3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/GridNioFilterChainSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/GridNioFilterChainSelfTest.java
@@ -21,9 +21,9 @@ import java.nio.ByteBuffer;
 import java.util.concurrent.atomic.AtomicReference;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.util.nio.GridNioFilterAdapter;
 import org.apache.ignite.internal.util.nio.GridNioFilterChain;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioServerListener;
 import org.apache.ignite.internal.util.nio.GridNioServerListenerAdapter;
 import org.apache.ignite.internal.util.nio.GridNioSession;
@@ -114,7 +114,7 @@ public class GridNioFilterChainSelfTest extends 
GridCommonAbstractTest {
                 proceedExceptionCaught(ses, ex);
             }
 
-            @Override public GridNioFuture<?> onSessionWrite(
+            @Override public IgniteInternalFuture<?> onSessionWrite(
                 GridNioSession ses,
                 Object msg,
                 boolean fut,
@@ -131,7 +131,7 @@ public class GridNioFilterChainSelfTest extends 
GridCommonAbstractTest {
                 proceedMessageReceived(ses, msg);
             }
 
-            @Override public GridNioFuture<Boolean> 
onSessionClose(GridNioSession ses) {
+            @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) {
                 closeEvt.compareAndSet(null, 
ses.<String>meta(CLOSE_META_NAME));
 
                 return null;
@@ -215,7 +215,7 @@ public class GridNioFilterChainSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<?> onSessionWrite(
+        @Override public IgniteInternalFuture<?> onSessionWrite(
             GridNioSession ses,
             Object msg,
             boolean fut,
@@ -234,7 +234,7 @@ public class GridNioFilterChainSelfTest extends 
GridCommonAbstractTest {
         }
 
         /** {@inheritDoc} */
-        @Override public GridNioFuture<Boolean> onSessionClose(GridNioSession 
ses) throws IgniteCheckedException {
+        @Override public IgniteInternalFuture<Boolean> 
onSessionClose(GridNioSession ses) throws IgniteCheckedException {
             chainMeta(ses, CLOSE_META_NAME);
 
             return proceedSessionClose(ses);
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/MockNioSession.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/MockNioSession.java
index 0994ffc022d..6a04aeda125 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/MockNioSession.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/impl/MockNioSession.java
@@ -21,9 +21,9 @@ import java.net.InetSocketAddress;
 import java.security.cert.Certificate;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.lang.GridMetadataAwareAdapter;
-import org.apache.ignite.internal.util.nio.GridNioFinishedFuture;
-import org.apache.ignite.internal.util.nio.GridNioFuture;
 import org.apache.ignite.internal.util.nio.GridNioRecoveryDescriptor;
 import org.apache.ignite.internal.util.nio.GridNioSession;
 import org.apache.ignite.lang.IgniteInClosure;
@@ -105,13 +105,13 @@ public class MockNioSession extends 
GridMetadataAwareAdapter implements GridNioS
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Boolean> close() {
-        return new GridNioFinishedFuture<>(true);
+    @Override public IgniteInternalFuture<Boolean> close() {
+        return new GridFinishedFuture<>(true);
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<?> send(Object msg) {
-        return new GridNioFinishedFuture<>(true);
+    @Override public IgniteInternalFuture<?> send(Object msg) {
+        return new GridFinishedFuture<>(true);
     }
 
     /** {@inheritDoc} */
@@ -121,12 +121,12 @@ public class MockNioSession extends 
GridMetadataAwareAdapter implements GridNioS
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Object> resumeReads() {
+    @Override public IgniteInternalFuture<Object> resumeReads() {
         return null;
     }
 
     /** {@inheritDoc} */
-    @Override public GridNioFuture<Object> pauseReads() {
+    @Override public IgniteInternalFuture<Object> pauseReads() {
         return null;
     }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
index b43ff63da65..228cf785375 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
@@ -22,8 +22,6 @@ import 
org.apache.ignite.internal.util.future.GridEmbeddedFutureSelfTest;
 import org.apache.ignite.internal.util.future.GridFutureAdapterSelfTest;
 import org.apache.ignite.internal.util.future.IgniteCacheFutureImplTest;
 import org.apache.ignite.internal.util.future.IgniteFutureImplTest;
-import 
org.apache.ignite.internal.util.future.nio.GridNioEmbeddedFutureSelfTest;
-import org.apache.ignite.internal.util.future.nio.GridNioFutureSelfTest;
 import org.apache.ignite.lang.GridByteArrayListSelfTest;
 import org.apache.ignite.lang.GridMetadataAwareAdapterSelfTest;
 import org.apache.ignite.lang.GridSetWrapperSelfTest;
@@ -76,8 +74,6 @@ import org.junit.runners.Suite;
     GridFutureAdapterSelfTest.class,
     GridCompoundFutureSelfTest.class,
     GridEmbeddedFutureSelfTest.class,
-    GridNioFutureSelfTest.class,
-    GridNioEmbeddedFutureSelfTest.class,
 
     IgniteFutureImplTest.class,
     IgniteCacheFutureImplTest.class,

Reply via email to