This is an automated email from the ASF dual-hosted git repository. ipavlukhin 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 567f65a IGNITE-12369 Fix compatibility between JdbcThinClient and Server - Fixes #7050. 567f65a is described below commit 567f65abc1c14ec4dc3ecfdc909d139a91b808eb Author: korlov42 <kor...@gridgain.com> AuthorDate: Mon Nov 18 12:18:42 2019 +0300 IGNITE-12369 Fix compatibility between JdbcThinClient and Server - Fixes #7050. Signed-off-by: ipavlukhin <vololo...@gmail.com> --- .../ignite/internal/processors/odbc/ClientListenerProcessor.java | 2 +- .../internal/processors/odbc/ClientListenerRequestHandler.java | 8 ++++++++ .../ignite/internal/processors/odbc/jdbc/JdbcRequestHandler.java | 2 +- .../ignite/internal/processors/odbc/odbc/OdbcRequestHandler.java | 5 +++++ .../internal/processors/platform/client/ClientRequestHandler.java | 4 ++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java index 1902755..f017528 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java @@ -280,7 +280,7 @@ public class ClientListenerProcessor extends GridProcessorAdapter { @Override public void onMessageReceived(GridNioSession ses, Object msg) throws IgniteCheckedException { ClientListenerConnectionContext connCtx = ses.meta(ClientListenerNioListener.CONN_CTX_META_KEY); - if (connCtx != null && connCtx.parser() != null) { + if (connCtx != null && connCtx.parser() != null && connCtx.handler().isCancellationSupported()) { byte[] inMsg; int cmdType; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequestHandler.java index dc89f78..e6a1b8b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerRequestHandler.java @@ -47,6 +47,14 @@ public interface ClientListenerRequestHandler { */ void writeHandshake(BinaryWriterExImpl writer); + + /** + * Checks whether query cancellation is supported within given version of protocol. + * + * @return {@code true} if supported, {@code false} otherwise. + */ + boolean isCancellationSupported(); + /** * Detect whether given command is a cancellation command. * diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcRequestHandler.java index 04909d0..1050283 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/jdbc/JdbcRequestHandler.java @@ -1354,7 +1354,7 @@ public class JdbcRequestHandler implements ClientListenerRequestHandler { * * @return True if supported, false otherwise. */ - private boolean isCancellationSupported() { + @Override public boolean isCancellationSupported() { return (protocolVer.compareTo(VER_2_8_0) >= 0); } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcRequestHandler.java index d285ba2..44ad832 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/odbc/OdbcRequestHandler.java @@ -311,6 +311,11 @@ public class OdbcRequestHandler implements ClientListenerRequestHandler { } /** {@inheritDoc} */ + @Override public boolean isCancellationSupported() { + return false; + } + + /** {@inheritDoc} */ @Override public void registerRequest(long reqId, int cmdType) { // No-op. } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientRequestHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientRequestHandler.java index 11714ef..7fd4222 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientRequestHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/client/ClientRequestHandler.java @@ -131,6 +131,10 @@ public class ClientRequestHandler implements ClientListenerRequestHandler { return false; } + /** {@inheritDoc} */ + @Override public boolean isCancellationSupported() { + return false; + } /** {@inheritDoc} */ @Override public void registerRequest(long reqId, int cmdType) {