You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/02/20 11:13:58 UTC
ignite git commit: IGNITE-2677: ODBC: IgniteException is now thrown
instead of IOException.
Repository: ignite
Updated Branches:
refs/heads/ignite-1786 3c52e63b1 -> 0229baaaa
IGNITE-2677: ODBC: IgniteException is now thrown instead of IOException.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0229baaa
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0229baaa
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0229baaa
Branch: refs/heads/ignite-1786
Commit: 0229baaaab0b40d3a2a3ad0a340dec60196e1a40
Parents: 3c52e63
Author: isapego <is...@gridgain.com>
Authored: Sat Feb 20 13:13:49 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Sat Feb 20 13:13:49 2016 +0300
----------------------------------------------------------------------
.../processors/odbc/OdbcColumnMeta.java | 8 ++---
.../processors/odbc/OdbcNioListener.java | 31 +++++---------------
.../internal/processors/odbc/OdbcTableMeta.java | 5 +---
3 files changed, 12 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0229baaa/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcColumnMeta.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcColumnMeta.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcColumnMeta.java
index 757b24b..edea1cd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcColumnMeta.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcColumnMeta.java
@@ -17,13 +17,12 @@
package org.apache.ignite.internal.processors.odbc;
+import org.apache.ignite.IgniteException;
import org.apache.ignite.internal.binary.BinaryClassDescriptor;
import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryRawWriterEx;
import org.apache.ignite.internal.processors.query.GridQueryFieldMetadata;
-import java.io.IOException;
-
import static org.apache.ignite.internal.binary.GridBinaryMarshaller.UNREGISTERED_TYPE_ID;
/**
@@ -103,9 +102,8 @@ public class OdbcColumnMeta {
*
* @param writer Binary writer.
* @param ctx Portable context.
- * @throws IOException
*/
- public void writeBinary(BinaryRawWriterEx writer, BinaryContext ctx) throws IOException {
+ public void writeBinary(BinaryRawWriterEx writer, BinaryContext ctx) {
writer.writeString(schemaName);
writer.writeString(tableName);
writer.writeString(columnName);
@@ -116,7 +114,7 @@ public class OdbcColumnMeta {
BinaryClassDescriptor desc = ctx.descriptorForClass(dataType, false);
if (desc == null)
- throw new IOException("Object is not portable: [class=" + dataType + ']');
+ throw new IgniteException("Object is not portable: [class=" + dataType + ']');
if (desc.registered())
typeId = (byte)desc.typeId();
http://git-wip-us.apache.org/repos/asf/ignite/blob/0229baaa/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
index e25ae5b..c8b53e7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioListener.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.odbc;
+import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.binary.BinaryReaderExImpl;
@@ -32,7 +33,6 @@ import org.apache.ignite.internal.util.nio.GridNioSession;
import org.apache.ignite.internal.util.nio.GridNioSessionMetaKey;
import org.jetbrains.annotations.Nullable;
-import java.io.IOException;
import java.util.Collection;
import java.util.concurrent.atomic.AtomicLong;
@@ -98,8 +98,9 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
@Override public void onMessage(GridNioSession ses, byte[] msg) {
assert msg != null;
+ long reqId = REQ_ID_GEN.incrementAndGet();
+
try {
- long reqId = REQ_ID_GEN.incrementAndGet();
long startTime = 0;
OdbcRequest req = decode(msg);
@@ -129,25 +130,9 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
ses.send(outMsg);
}
catch (Exception e) {
- trySendErrorMessage(ses, e.getMessage());
- }
- }
-
- /**
- * Try to send simple response message to ODBC driver.
- * @param ses Session.
- * @param err Error message.
- */
- private void trySendErrorMessage(GridNioSession ses, String err) {
- log.error(err);
-
- try {
- ses.send(encode(new OdbcResponse(OdbcResponse.STATUS_FAILED, err)));
- }
- catch (Exception e) {
- // TODO: ???
+ log.error("Failed to process ODBC request [id=" + reqId + ", err=" + e + ']');
- log.error("Can not send error response message: [err=" + e.getMessage() + ']');
+ ses.send(encode(new OdbcResponse(OdbcResponse.STATUS_FAILED, e.getMessage())));
}
}
@@ -157,7 +142,7 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
* @param msg Message.
* @return Assembled ODBC request.
*/
- private OdbcRequest decode(byte[] msg) throws IOException {
+ private OdbcRequest decode(byte[] msg) {
assert msg != null;
BinaryInputStream stream = new BinaryHeapInputStream(msg);
@@ -224,7 +209,7 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
}
default:
- throw new IOException("Unknown ODBC command: " + cmd);
+ throw new IgniteException("Unknown ODBC command: " + cmd);
}
return res;
@@ -236,7 +221,7 @@ public class OdbcNioListener extends GridNioServerListenerAdapter<byte[]> {
* @param msg Message.
* @return Byte array.
*/
- private byte[] encode(OdbcResponse msg) throws IOException {
+ private byte[] encode(OdbcResponse msg) {
assert msg != null;
// Creating new binary writer
http://git-wip-us.apache.org/repos/asf/ignite/blob/0229baaa/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcTableMeta.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcTableMeta.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcTableMeta.java
index e7f762e..fb7df50 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcTableMeta.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcTableMeta.java
@@ -19,8 +19,6 @@ package org.apache.ignite.internal.processors.odbc;
import org.apache.ignite.internal.binary.BinaryRawWriterEx;
-import java.io.IOException;
-
/**
* ODBC table-related metadata.
*/
@@ -77,9 +75,8 @@ public class OdbcTableMeta {
* Write in a binary format.
*
* @param writer Binary writer.
- * @throws IOException
*/
- public void writeBinary(BinaryRawWriterEx writer) throws IOException {
+ public void writeBinary(BinaryRawWriterEx writer) {
writer.writeString(catalog);
writer.writeString(schema);
writer.writeString(table);