Review.

Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d3763304
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d3763304
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d3763304

Branch: refs/heads/ignite-1786
Commit: d3763304c25991c1a54c26b4cec7c6fa8e851f35
Parents: 5bf700d
Author: vozerov-gridgain <[email protected]>
Authored: Wed Feb 17 13:45:12 2016 +0300
Committer: vozerov-gridgain <[email protected]>
Committed: Wed Feb 17 13:45:12 2016 +0300

----------------------------------------------------------------------
 .../processors/odbc/OdbcBufferedParser.java     | 21 +++------------
 .../processors/odbc/OdbcNioListener.java        | 28 +++++++++++---------
 .../processors/odbc/OdbcNioServerBuffer.java    | 19 ++-----------
 .../internal/processors/odbc/OdbcProcessor.java |  3 +--
 4 files changed, 21 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d3763304/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcBufferedParser.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcBufferedParser.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcBufferedParser.java
index 4ce8a8a..0d43aec 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcBufferedParser.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcBufferedParser.java
@@ -41,21 +41,6 @@ public class OdbcBufferedParser implements GridNioParser {
     /** Buffer metadata key. */
     private static final int BUF_META_KEY = 
GridNioSessionMetaKey.nextUniqueKey();
 
-    /** Direct buffer alocation flag. */
-    private final boolean directBuf;
-
-    /** Message size byte order. */
-    private final ByteOrder order;
-
-    /**
-     * @param directBuf Direct buffer.
-     * @param order Message size byte order.
-     */
-    public OdbcBufferedParser(boolean directBuf, ByteOrder order) {
-        this.directBuf = directBuf;
-        this.order = order;
-    }
-
     /** {@inheritDoc} */
     @Override public byte[] decode(GridNioSession ses, ByteBuffer buf) throws 
IOException, IgniteCheckedException {
         OdbcNioServerBuffer nioBuf = ses.meta(BUF_META_KEY);
@@ -63,7 +48,7 @@ public class OdbcBufferedParser implements GridNioParser {
         // Decode for a given session is called per one thread, so there 
should not be any concurrency issues.
         // However, we make some additional checks.
         if (nioBuf == null) {
-            nioBuf = new OdbcNioServerBuffer(order);
+            nioBuf = new OdbcNioServerBuffer();
 
             OdbcNioServerBuffer old = ses.addMeta(BUF_META_KEY, nioBuf);
 
@@ -77,9 +62,9 @@ public class OdbcBufferedParser implements GridNioParser {
     @Override public ByteBuffer encode(GridNioSession ses, Object msg) throws 
IOException, IgniteCheckedException {
         byte[] msg0 = (byte[])msg;
 
-        ByteBuffer res = directBuf ? ByteBuffer.allocateDirect(msg0.length + 
4) : ByteBuffer.allocate(msg0.length + 4);
+        ByteBuffer res = ByteBuffer.allocate(msg0.length + 4);
 
-        res.order(order);
+        res.order(ByteOrder.LITTLE_ENDIAN);
 
         res.putInt(msg0.length);
         res.put(msg0);

http://git-wip-us.apache.org/repos/asf/ignite/blob/d3763304/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 52df3b1..8e133c1 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
@@ -19,8 +19,8 @@ package org.apache.ignite.internal.processors.odbc;
 
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.internal.GridKernalContext;
-import org.apache.ignite.internal.binary.BinaryRawWriterEx;
 import org.apache.ignite.internal.binary.BinaryReaderExImpl;
+import org.apache.ignite.internal.binary.BinaryWriterExImpl;
 import org.apache.ignite.internal.binary.GridBinaryMarshaller;
 import org.apache.ignite.internal.binary.streams.BinaryHeapInputStream;
 import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream;
@@ -63,8 +63,7 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
      * @param busyLock Shutdown busy lock.
      * @param handler Request handler.
      */
-    public OdbcNioListener(final GridKernalContext ctx, final GridSpinBusyLock 
busyLock,
-                           final OdbcRequestHandler handler) {
+    public OdbcNioListener(GridKernalContext ctx, GridSpinBusyLock busyLock, 
OdbcRequestHandler handler) {
         this.busyLock = busyLock;
         this.handler = handler;
 
@@ -107,17 +106,20 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
                 log.debug("ODBC request received [id=" + reqId + ", addr=" + 
ses.remoteAddress() + ", req=" + req + ']');
             }
 
-            OdbcResponse rsp = handle(req);
+            OdbcResponse resp = handle(req);
 
             if (log.isDebugEnabled()) {
                 long dur = (System.nanoTime() - startTime) / 1000;
 
-                log.debug("ODBC request processed [id=" + reqId + ", 
dur(mcs)=" + dur  + ", rsp=" + rsp.status() + ']');
+                log.debug("ODBC request processed [id=" + reqId + ", 
dur(mcs)=" + dur  +
+                    ", resp=" + resp.status() + ']');
             }
-            byte[] outMsg = encode(rsp);
+
+            byte[] outMsg = encode(resp);
 
             ses.send(outMsg);
-        } catch (Exception e) {
+        }
+        catch (Exception e) {
             trySendErrorMessage(ses, e.getMessage());
         }
     }
@@ -134,6 +136,8 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
             ses.send(encode(new OdbcResponse(OdbcResponse.STATUS_FAILED, 
err)));
         }
         catch (Exception e) {
+            // TODO: ???
+
             log.error("Can not send error response message: [err=" + 
e.getMessage() + ']');
         }
     }
@@ -254,7 +258,7 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
         assert msg != null;
 
         // Creating new binary writer
-        BinaryRawWriterEx writer = marsh.writer(new 
BinaryHeapOutputStream(INIT_CAP));
+        BinaryWriterExImpl writer = marsh.writer(new 
BinaryHeapOutputStream(INIT_CAP));
 
         // Writing status
         writer.writeByte((byte) msg.status());
@@ -262,7 +266,7 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
         if (msg.status() != OdbcResponse.STATUS_SUCCESS) {
             writer.writeString(msg.error());
 
-            return Arrays.copyOf(writer.out().array(), 
writer.out().position());
+            return writer.array();
         }
 
         Object res0 = msg.response();
@@ -319,7 +323,6 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
                 log.debug("Resulting query ID: " + res.getQueryId());
 
             writer.writeLong(res.getQueryId());
-
         }
         else if (res0 instanceof OdbcQueryGetColumnsMetaResult) {
             OdbcQueryGetColumnsMetaResult res = 
(OdbcQueryGetColumnsMetaResult) res0;
@@ -332,7 +335,6 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
 
             for (OdbcColumnMeta columnMeta : columnsMeta)
                 columnMeta.writeBinary(writer, marsh.context());
-
         }
         else if (res0 instanceof OdbcQueryGetTablesMetaResult) {
             OdbcQueryGetTablesMetaResult res = (OdbcQueryGetTablesMetaResult) 
res0;
@@ -347,9 +349,9 @@ public class OdbcNioListener extends 
GridNioServerListenerAdapter<byte[]> {
                 tableMeta.writeBinary(writer);
         }
         else
-            throw new IOException("Failed to serialize response packet 
(unknown response type)");
+            assert false : "Should nor reach here.";
 
-        return Arrays.copyOf(writer.out().array(), writer.out().position());
+        return writer.array();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/d3763304/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioServerBuffer.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioServerBuffer.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioServerBuffer.java
index 20cf4c5..d1e6dd9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioServerBuffer.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcNioServerBuffer.java
@@ -21,7 +21,6 @@ import org.apache.ignite.IgniteCheckedException;
 import org.jetbrains.annotations.Nullable;
 
 import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
 
 /**
  * NIO server buffer.
@@ -36,16 +35,6 @@ public class OdbcNioServerBuffer {
     /** Current message size. */
     private int msgSize;
 
-    /** Message size byte order. */
-    private final ByteOrder order;
-
-    /**
-     * @param order Byte order.
-     */
-    public OdbcNioServerBuffer(ByteOrder order) {
-        this.order = order;
-    }
-
     /**
      * Reset buffer state.
      */
@@ -80,12 +69,8 @@ public class OdbcNioServerBuffer {
      */
     @Nullable public byte[] read(ByteBuffer buf) throws IgniteCheckedException 
{
         if (cnt < 0) {
-            for (; cnt < 0 && buf.hasRemaining(); cnt++) {
-                if (order == ByteOrder.BIG_ENDIAN)
-                    msgSize = (msgSize << 8) | buf.get() & 0xFF;
-                else
-                    msgSize |= (buf.get() & 0xFF) << (8*(4 + cnt));
-            }
+            for (; cnt < 0 && buf.hasRemaining(); cnt++)
+                msgSize |= (buf.get() & 0xFF) << (8*(4 + cnt));
 
             if (cnt < 0)
                 return null;

http://git-wip-us.apache.org/repos/asf/ignite/blob/d3763304/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcProcessor.java
index 831ef02..9d22e4a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/OdbcProcessor.java
@@ -23,7 +23,6 @@ import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
 import org.apache.ignite.internal.processors.GridProcessorAdapter;
 import org.apache.ignite.internal.util.GridSpinBusyLock;
-import org.apache.ignite.internal.util.nio.GridBufferedParser;
 import org.apache.ignite.internal.util.nio.GridNioCodecFilter;
 import org.apache.ignite.internal.util.nio.GridNioServer;
 import org.apache.ignite.internal.util.typedef.internal.U;
@@ -84,7 +83,7 @@ public class OdbcProcessor extends GridProcessorAdapter {
                     .socketSendBufferSize(odbcCfg.getSendBufferSize())
                     .socketReceiveBufferSize(odbcCfg.getReceiveBufferSize())
                     .sendQueueLimit(odbcCfg.getSendQueueLimit())
-                    .filters(new GridNioCodecFilter(new 
OdbcBufferedParser(false, ByteOrder.LITTLE_ENDIAN), log, false))
+                    .filters(new GridNioCodecFilter(new OdbcBufferedParser(), 
log, false))
                     .directMode(false)
                     .idleTimeout(odbcCfg.getIdleTimeout())
                     .build();

Reply via email to