You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ad...@apache.org on 2015/09/02 20:42:51 UTC

[3/4] drill git commit: DRILL-3661: Edit JDBC doc. for clarity, more consistency, bug fixes.

DRILL-3661: Edit JDBC doc. for clarity, more consistency, bug fixes.

Also fixed two serialVersionUID literals.


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

Branch: refs/heads/master
Commit: e9035bef86409bbe0ab85ab51194ce8658aa1316
Parents: 3ad9a42
Author: dbarclay <db...@maprtech.com>
Authored: Mon Aug 17 17:26:45 2015 -0700
Committer: dbarclay <db...@maprtech.com>
Committed: Wed Sep 2 10:02:20 2015 -0700

----------------------------------------------------------------------
 .../drill/jdbc/AlreadyClosedSqlException.java   |  2 +
 .../org/apache/drill/jdbc/DrillConnection.java  | 29 ++++++----
 .../drill/jdbc/DrillConnectionConfig.java       | 18 +++++++
 .../drill/jdbc/DrillDatabaseMetaData.java       | 34 ++++++++++--
 .../drill/jdbc/DrillPreparedStatement.java      |  3 +-
 .../org/apache/drill/jdbc/DrillResultSet.java   | 33 ++++++++----
 .../org/apache/drill/jdbc/DrillStatement.java   |  6 ++-
 .../main/java/org/apache/drill/jdbc/Driver.java |  4 +-
 .../jdbc/InvalidCursorStateSqlException.java    |  2 +
 .../apache/drill/jdbc/JdbcApiSqlException.java  |  5 ++
 .../drill/jdbc/SQLConversionException.java      |  2 +-
 .../jdbc/SQLConversionOverflowException.java    |  2 +-
 .../jdbc/impl/AvaticaDrillSqlAccessor.java      |  2 +-
 .../drill/jdbc/impl/DrillConnectionImpl.java    |  1 +
 .../org/apache/drill/jdbc/impl/DrillCursor.java | 20 ++++---
 .../jdbc/impl/DrillDatabaseMetaDataImpl.java    |  2 +
 .../apache/drill/jdbc/impl/DrillFactory.java    |  2 +-
 .../drill/jdbc/impl/DrillResultSetImpl.java     |  1 +
 .../drill/jdbc/impl/DrillStatementImpl.java     |  1 +
 .../org/apache/drill/jdbc/impl/MetaImpl.java    |  2 +-
 .../jdbc/impl/TypeConvertingSqlAccessor.java    |  1 +
 .../org/apache/drill/jdbc/package-info.java     |  3 ++
 .../drill/jdbc/proxy/TracingProxyDriver.java    | 56 +++++++++++---------
 .../apache/drill/jdbc/proxy/package-info.java   |  2 +-
 .../jdbc/ResultSetGetMethodConversionsTest.java |  2 +-
 .../jdbc/SingleConnectionCachingFactory.java    |  2 +-
 .../impl/TypeConvertingSqlAccessorTest.java     |  5 +-
 ...l2489CallsAfterCloseThrowExceptionsTest.java |  1 +
 28 files changed, 171 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/AlreadyClosedSqlException.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/AlreadyClosedSqlException.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/AlreadyClosedSqlException.java
index 8ad8d2d..5c34868 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/AlreadyClosedSqlException.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/AlreadyClosedSqlException.java
@@ -17,6 +17,8 @@
  */
 package org.apache.drill.jdbc;
 
+import java.sql.Statement;
+
 
 /**
  * SQLException for object-already-closed conditions, e.g., calling a method

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnection.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnection.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnection.java
index 608bf05..511447c 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnection.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnection.java
@@ -38,7 +38,7 @@ public interface DrillConnection extends Connection {
    * {@inheritDoc}
    * <p>
    *   <strong>Drill</strong>:
-   *   Drill's implementation accepts {@code DrillConnection.class}.
+   *   Accepts {@code DrillConnection.class}.
    * </p>
    */
   @Override
@@ -48,7 +48,7 @@ public interface DrillConnection extends Connection {
    * {@inheritDoc}
    * <p>
    *   <strong>Drill</strong>:
-   *   Drill's implementation returns true for {@code DrillConnection.class}.
+   *   Returns true for {@code DrillConnection.class}.
    * </p>
    */
   @Override
@@ -70,7 +70,7 @@ public interface DrillConnection extends Connection {
    * {@inheritDoc}
    * <p>
    *   <strong>Drill</strong>:
-   *   Drill's implementation always returns {@code true}.
+   *   Always returns {@code true}.
    * </p>
    */
   @Override
@@ -78,6 +78,7 @@ public interface DrillConnection extends Connection {
 
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException})..
    */
@@ -86,6 +87,7 @@ public interface DrillConnection extends Connection {
 
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException}).
    */
@@ -96,7 +98,8 @@ public interface DrillConnection extends Connection {
   /**
    * {@inheritDoc}
    * <p>
-   *   <strong>Drill</strong>: Does not throw SQLException.
+   *   <strong>Drill</strong>:
+   *   Does not throw SQLException.
    * </p>
    */
   @Override
@@ -107,11 +110,11 @@ public interface DrillConnection extends Connection {
    * {@inheritDoc}
    * <p>
    *   <strong>Drill</strong>:
-   *   Accepts only {@link Connection.TRANSACTION_NONE}.
+   *   Accepts only {@link Connection#TRANSACTION_NONE}.
    * </p>
    *
    * @throws SQLFeatureNotSupportedException if {@code level} is not
-   * {@link Connection.TRANSACTION_NONE}.
+   * {@link Connection#TRANSACTION_NONE}.
    */
   @Override
   void setTransactionIsolation(int level) throws SQLFeatureNotSupportedException,
@@ -121,7 +124,7 @@ public interface DrillConnection extends Connection {
    * {@inheritDoc}
    * <p>
    *   <strong>Drill</strong>:
-   *   Drill's implementation always returns {@link Connection#TRANSACTION_NONE}.
+   *   Always returns {@link Connection#TRANSACTION_NONE}.
    * </p>
    */
   @Override
@@ -129,6 +132,7 @@ public interface DrillConnection extends Connection {
 
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException}).
    */
@@ -136,6 +140,7 @@ public interface DrillConnection extends Connection {
   Savepoint setSavepoint() throws SQLException;
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException}).
    */
@@ -143,6 +148,7 @@ public interface DrillConnection extends Connection {
   Savepoint setSavepoint(String name) throws SQLException;
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException}).
    */
@@ -150,6 +156,7 @@ public interface DrillConnection extends Connection {
   void rollback(Savepoint savepoint) throws SQLException;
 
   /**
+   * <strong>Drill</strong>:
    * Not supported.  Always throws {@link SQLFeatureNotSupportedException} (or
    * {@link AlreadyClosedSqlException}).
    */
@@ -165,6 +172,7 @@ public interface DrillConnection extends Connection {
 
 
   /**
+   * <strong>Drill</strong>:
    * Not supported (for non-zero timeout value).
    * <p>
    *   Normally, just throws {@link SQLFeatureNotSupportedException} unless
@@ -184,6 +192,7 @@ public interface DrillConnection extends Connection {
              SQLFeatureNotSupportedException;
 
   /**
+   * <strong>Drill</strong>:
    * Returns zero.
    * {@inheritDoc}
    * @throws  AlreadyClosedSqlException
@@ -196,9 +205,11 @@ public interface DrillConnection extends Connection {
   //////////////////////////////////////////////////////////////////////
   // Drill extensions.
 
-  /** Returns a view onto this connection's configuration properties. Code
+  /**
+   * Returns a view onto this connection's configuration properties. Code
    * within Optiq should use this view rather than calling
-   * {@link java.util.Properties#getProperty(String)}. */
+   * {@link java.util.Properties#getProperty(String)}.
+   */
   DrillConnectionConfig getConfig();
 
   DrillClient getClient();

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionConfig.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionConfig.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionConfig.java
index 1be4bb1..51d3a0a 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionConfig.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillConnectionConfig.java
@@ -22,6 +22,24 @@ import java.util.TimeZone;
 
 import net.hydromatic.avatica.ConnectionConfigImpl;
 
+
+// TODO(DRILL-xxxx):  Change public DrillConnectionConfig from class to interface.
+// Move implementation (including inheritance from
+// net.hydromatic.avatica.ConnectionConfigImpl) from published-interface package
+// org.apache.drill.jdbc to class in implementation package
+// org.apache.drill.jdbc.impl.
+/**
+ *  ...
+ *  <p>
+ *    NOTE:  DrillConnectionConfig will be changed from a class to an interface.
+ *  </p>
+ *  <p>
+ *    In the meantime, clients must not use the fact that
+ *    {@code DrillConnectionConfig} currently extends
+ *    {@link net.hydromatic.avatica.ConnectionConfigImpl}.  They must call only
+ *    methods declared directly in DrillConnectionConfig (or inherited Object).
+ *  </p>
+ */
 public class DrillConnectionConfig extends ConnectionConfigImpl {
   private final Properties props;
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillDatabaseMetaData.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillDatabaseMetaData.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillDatabaseMetaData.java
index ea503a2..64908d0 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillDatabaseMetaData.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillDatabaseMetaData.java
@@ -33,10 +33,36 @@ public interface DrillDatabaseMetaData extends DatabaseMetaData {
   //  getURL()
   //  getUserName()
   //  isReadOnly()
-  //  nullsAreSortedHigh()
-  //  nullsAreSortedLow()
-  //  nullsAreSortedAtStart()
-  //  nullsAreSortedAtEnd()
+
+  /**
+   * <strong>Drill</strong>:
+   * Reports that NULL values are sorted high.
+   * @return {@code true}
+   */
+  public boolean nullsAreSortedHigh() throws SQLException;
+
+  /**
+   * <strong>Drill</strong>:
+   * Reports that NULL values are not sorted low.
+   * @return {@code false}
+   */
+  public boolean nullsAreSortedLow() throws SQLException;
+
+  /**
+   * <strong>Drill</strong>:
+   * Reports that NULL values are not sorted first.
+   * @return {@code false}
+   */
+  public boolean nullsAreSortedAtStart() throws SQLException;
+
+  /**
+   * <strong>Drill</strong>:
+   * Reports that NULL values are not sorted last.
+   * @return {@code false}
+   */
+  public boolean nullsAreSortedAtEnd() throws SQLException;
+
+  // For matching order of java.sql.DatabaseMetaData:
   //  getDatabaseProductName()
   //  getDatabaseProductVersion()
   //  getDriverName()

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillPreparedStatement.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillPreparedStatement.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillPreparedStatement.java
index 6a8f4c1..b1fc032 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillPreparedStatement.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillPreparedStatement.java
@@ -24,8 +24,9 @@ import java.sql.PreparedStatement;
  * Drill-specific {@link PreparedStatement}.
  *
  * <p>
+ *   <strong>Drill</strong>:
  *   Setting parameters is not supported; parameter-setting methods such as
- *   {@link setString(int, String)} throw
+ *   {@link #setString(int, String)} throw
  *   {@link SQLFeatureNotSupportedException}.
  * </p>
  * @see #unwrap

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
index 858fd61..31fbf10 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillResultSet.java
@@ -39,7 +39,8 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *   Drill's implementation accepts {@code DrillResultSet.class}.
+   *   <strong>Drill</strong>:
+   *   Accepts {@code DrillResultSet.class}.
    * </p>
    */
   @Override
@@ -48,7 +49,8 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *   Drill's implementation returns true for {@code DrillResultSet.class}.
+   *   <strong>Drill</strong>:
+   *   Returns true for {@code DrillResultSet.class}.
    * </p>
    */
   @Override
@@ -69,7 +71,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from all types.
+   *    <strong>Drill: Conversions</strong>: Supports conversion from all types.
    * </p>
    */
   @Override
@@ -82,7 +84,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code SMALLINT} ({@code short}),
@@ -109,7 +111,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -136,7 +138,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -163,7 +165,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -190,7 +192,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -217,7 +219,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -244,7 +246,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from types:
+   *    <strong>Drill: Conversions</strong>: Supports conversion from types:
    * </p>
    * <ul>
    *   <li>{@code TINYINT} ({@code byte}),
@@ -274,6 +276,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getString(int)}.
    * </p>
    */
@@ -287,6 +290,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getByte(int)}.
    * </p>
    */
@@ -296,6 +300,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getShort(int)}.
    * </p>
    */
@@ -305,6 +310,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getInt(int)}.
    * </p>
    */
@@ -314,6 +320,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getLong(int)}.
    * </p>
    */
@@ -323,6 +330,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getFloat(int)}.
    * </p>
    */
@@ -332,6 +340,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getDouble(int)}.
    * </p>
    */
@@ -341,6 +350,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getBigDecimal(int)}.
    * </p>
    */
@@ -364,7 +374,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
-   *    <strong>Conversions</strong>: Supports conversion from all types.
+   *    <strong>Drill: Conversions</strong>: Supports conversion from all types.
    * </p>
    */
   @Override
@@ -373,6 +383,7 @@ public interface DrillResultSet extends ResultSet  {
   /**
    * {@inheritDoc}
    * <p>
+   *   <strong>Drill</strong>:
    *   For conversions, see {@link DrillResultSet#getObject(int)}.
    * </p>
    */

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillStatement.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillStatement.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillStatement.java
index 903b18b..f2aea40 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillStatement.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/DrillStatement.java
@@ -27,8 +27,9 @@ import java.sql.Statement;
 public interface DrillStatement extends Statement {
 
   /**
-   * Returns zero.
-   * {@inheritDoc}
+   * <strong>Drill</strong>:
+   * Returns zero, indicating that no timeout is set.
+   *
    * @throws  AlreadyClosedSqlException
    *            if connection is closed
    */
@@ -36,6 +37,7 @@ public interface DrillStatement extends Statement {
   int getQueryTimeout() throws AlreadyClosedSqlException;
 
   /**
+   * <strong>Drill</strong>:
    * Not supported (for non-zero timeout value).
    * <p>
    *   Normally, just throws {@link SQLFeatureNotSupportedException} unless

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/Driver.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/Driver.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/Driver.java
index 1d2a521..1ef84c4 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/Driver.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/Driver.java
@@ -31,7 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger;
 
 
 /**
- * Apache Drill JDBC driver main class.
+ * Main class of Apache Drill JDBC driver.
  */
 public class Driver implements java.sql.Driver {
   private static final Logger logger = getLogger( Driver.class );
@@ -60,7 +60,7 @@ public class Driver implements java.sql.Driver {
    * Ensures that class is loaded.
    * <p>
    *   (Avoids extra instance of calling {@code new Driver();}; avoids verbosity
-   *   of {@code Class.forName("org.apache.drill.jdbc.Driver");}
+   *   of {@code Class.forName("org.apache.drill.jdbc.Driver");}.)
    * </p>
    */
   public static boolean load() {

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/InvalidCursorStateSqlException.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/InvalidCursorStateSqlException.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/InvalidCursorStateSqlException.java
index b7540be..d6929d2 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/InvalidCursorStateSqlException.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/InvalidCursorStateSqlException.java
@@ -17,6 +17,8 @@
  */
 package org.apache.drill.jdbc;
 
+import java.sql.ResultSet;
+
 
 /**
  * SQLException for invalid-cursor-state conditions, e.g., calling a column

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/JdbcApiSqlException.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/JdbcApiSqlException.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/JdbcApiSqlException.java
index 5e6f475..f844fdc 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/JdbcApiSqlException.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/JdbcApiSqlException.java
@@ -17,8 +17,13 @@
  */
 package org.apache.drill.jdbc;
 
+import java.sql.ResultSet;
+import java.sql.SQLDataException;
 import java.sql.SQLException;
 import java.sql.SQLNonTransientException;
+import java.sql.SQLSyntaxErrorException;
+import java.sql.SQLTransientException;
+
 
 /**
  * SQLException for JDBC API calling-sequence/state problems.

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionException.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionException.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionException.java
index 55ff901..1001999 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionException.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionException.java
@@ -20,7 +20,7 @@ package org.apache.drill.jdbc;
 import org.apache.drill.exec.vector.accessor.InvalidAccessException;
 
 public class SQLConversionException extends InvalidAccessException {
-  private static final long serialVersionUID = 2015_04-07L;
+  private static final long serialVersionUID = 2015_04_07L;
 
   SQLConversionException( String message ) {
     super( message );

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionOverflowException.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionOverflowException.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionOverflowException.java
index a7d99fd..1d0cfa8 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionOverflowException.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/SQLConversionOverflowException.java
@@ -19,7 +19,7 @@ package org.apache.drill.jdbc;
 
 
 public class SQLConversionOverflowException extends SQLConversionException {
-  private static final long serialVersionUID = 2015_04-07L;
+  private static final long serialVersionUID = 2015_04_07L;
 
   public SQLConversionOverflowException( String message ) {
     super( message );

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/AvaticaDrillSqlAccessor.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/AvaticaDrillSqlAccessor.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/AvaticaDrillSqlAccessor.java
index 7e53a07..bf608fc 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/AvaticaDrillSqlAccessor.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/AvaticaDrillSqlAccessor.java
@@ -79,7 +79,7 @@ class AvaticaDrillSqlAccessor implements Accessor {
   }
 
   /**
-   * @see SQLAccesstor#getObjectClass()
+   * @see SQLAccessor#getObjectClass()
    */
   public Class<?> getObjectClass() {
     return underlyingAccessor.getObjectClass();

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillConnectionImpl.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillConnectionImpl.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillConnectionImpl.java
index 243e627..25fcf26 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillConnectionImpl.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillConnectionImpl.java
@@ -18,6 +18,7 @@
 package org.apache.drill.jdbc.impl;
 
 import java.io.IOException;
+import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java
index 07d7066..8083b15 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillCursor.java
@@ -18,6 +18,8 @@
 package org.apache.drill.jdbc.impl;
 
 import java.sql.SQLException;
+import java.sql.ResultSet;
+
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
@@ -25,6 +27,7 @@ import java.util.List;
 import net.hydromatic.avatica.ArrayImpl.Factory;
 import net.hydromatic.avatica.ColumnMetaData;
 import net.hydromatic.avatica.Cursor;
+import net.hydromatic.avatica.AvaticaResultSet;
 
 import org.apache.drill.common.exceptions.DrillRuntimeException;
 import org.apache.drill.common.exceptions.UserException;
@@ -66,17 +69,18 @@ class DrillCursor implements Cursor {
   private boolean afterFirstBatch = false;
 
   /**
-   * Whether the next call to this.next() should just return {@code true} rather
-   * than calling nextRowInternally() to try to advance to the next
-   * record.
+   * Whether the next call to {@code this.}{@link #next()} should just return
+   * {@code true} rather than calling {@link #nextRowInternally()} to try to
+   * advance to the next record.
    * <p>
-   *   Currently, can be true only for first call to next().
+   *   Currently, can be true only for first call to {@link #next()}.
    * </p>
    * <p>
-   *   (Relates to loadInitialSchema()'s calling nextRowInternally()
+   *   (Relates to {@link #loadInitialSchema()}'s calling nextRowInternally()
    *   one "extra" time
-   *   (extra relative to number of ResultSet.next() calls) at the beginning to
-   *   get first batch and schema before Statement.execute...(...) even returns.
+   *   (extra relative to number of {@link ResultSet#next()} calls) at the
+   *   beginning to get first batch and schema before Statement.execute...(...)
+   *   even returns.
    * </p>
    */
   private boolean returnTrueForNextCallToNext = false;
@@ -265,7 +269,7 @@ class DrillCursor implements Cursor {
    * Advances to first batch to load schema data into result set metadata.
    * <p>
    *   To be called once from {@link DrillResultSetImpl#execute()} before
-   *   {@link next()} is called from {@link AvaticaResultSet#next()}.
+   *   {@link #next()} is called from {@link AvaticaResultSet#next()}.
    * <p>
    */
   void loadInitialSchema() throws SQLException {

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillDatabaseMetaDataImpl.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillDatabaseMetaDataImpl.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillDatabaseMetaDataImpl.java
index 2dcbbb9..6a1d625 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillDatabaseMetaDataImpl.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillDatabaseMetaDataImpl.java
@@ -17,6 +17,8 @@
  */
 package org.apache.drill.jdbc.impl;
 
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillFactory.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillFactory.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillFactory.java
index 033fbe7..b3223b1 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillFactory.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillFactory.java
@@ -58,7 +58,7 @@ abstract class DrillFactory implements AvaticaFactory {
    * Creates a Drill connection for Avatica (in terms of Avatica types).
    * <p>
    *   This implementation delegates to
-   *   {@link newDrillConnection(DriverImpl, DrillFactory, String, Properties)}.
+   *   {@link #newDrillConnection(DriverImpl, DrillFactory, String, Properties)}.
    * </p>
    */
   @Override

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java
index 1b37dc1..95fee00 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java
@@ -26,6 +26,7 @@ import java.sql.Clob;
 import java.sql.Date;
 import java.sql.NClob;
 import java.sql.Ref;
+import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.RowId;
 import java.sql.SQLException;

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillStatementImpl.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillStatementImpl.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillStatementImpl.java
index 6cba58e..077ebd7 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillStatementImpl.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillStatementImpl.java
@@ -20,6 +20,7 @@ package org.apache.drill.jdbc.impl;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
+import java.sql.Statement;
 
 import org.apache.drill.common.exceptions.DrillRuntimeException;
 import org.apache.drill.jdbc.AlreadyClosedSqlException;

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/MetaImpl.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/MetaImpl.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/MetaImpl.java
index 8ff7a6c..f1e3e2c 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/MetaImpl.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/MetaImpl.java
@@ -155,7 +155,7 @@ class MetaImpl implements Meta {
   }
 
   /**
-   * Implements {@link DatabaseMetaData#getColumns()}.
+   * Implements {@link DatabaseMetaData#getColumns}.
    */
   @Override
   public ResultSet getColumns(String catalog, Pat schemaPattern,

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessor.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessor.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessor.java
index 2e17e33..437e864 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessor.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessor.java
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.math.BigDecimal;
 import java.sql.Date;
+import java.sql.ResultSet;
 import java.sql.Time;
 import java.sql.Timestamp;
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/package-info.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/package-info.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/package-info.java
index f465718..2a4eb62 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/package-info.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/package-info.java
@@ -18,5 +18,8 @@
 
 /**
  * JDBC driver for Drill.
+ * <p>
+ *   Drill's JDBC driver class is {@link org.apache.drill.jdbc.Driver}.
+ * </p>
  */
 package org.apache.drill.jdbc;

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/TracingProxyDriver.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/TracingProxyDriver.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/TracingProxyDriver.java
index d575d4f..af81a19 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/TracingProxyDriver.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/TracingProxyDriver.java
@@ -39,38 +39,44 @@ import static org.slf4j.LoggerFactory.getLogger;
  *   To set up a tracing version of a JDBC connection:
  * </p>
  * <ul>
- *   <li>Construct the proxying URL corresponding to the original URL.  (See
- *       below).</li>
- *   <li>Replace the occurrence, in the JDBC-client code or tool, of the
- *       original URL with the corresponding proxying URL.</li>
- *   <li>Make sure that class {@link TracingProxyDriver} will be loaded (e.g.,
- *       configure the client to use as the driver class).</li>
- * </ul>
- * <p>
- *   The proxying URL corresponding to an original URL is
- *   "<code>jdbc:proxy:<i>original.Driver</i>:<i>original_URL</i></code>",
- *   where:
- * </p>
- * <ul>
  *   <li>
- *     <code><i>original.Driver</i></code> is the fully qualified name of the
- *     driver class to proxy and trace (used to load the class to get it
- *     registered with JDBC's {@link DriverManager}, when or in case it's not
- *     already loaded); it can blank if the driver class will already be loaded,
- *     and
+ *     Construct the proxying URL corresponding to the original URL.
+ *     <p>
+ *       The proxying URL corresponding to an original URL is
+ *       "<code>jdbc:proxy:<i>original.Driver</i>:<i>original_URL</i></code>",
+ *       where:
+ *     </p>
+ *     <ul>
+ *       <li>
+ *         <code><i>original.Driver</i></code> is the fully qualified name of
+ *         the driver class to proxy and trace (used to load the class to get it
+ *         registered with JDBC's {@link DriverManager}, when or in case it's
+ *         not already loaded) and can be blank if the driver class will already
+ *         be loaded, and
+ *       </li>
+ *       <li>
+ *         <code><i>original_URL</i></code> is the original URL for the JDBC
+ *         data source to now be traced.
+ *       </li>
+ *     </ul>
+ *     <p>
+ *       For example, for an original URL of "{@code jdbc:drill:zk=local}", the
+ *       tracing URL is
+ *       "{@code jdbc:proxy:org.apache.drill.jdbc.Driver:jdbc:drill:zk=local}".
+ *     </p>
  *   </li>
  *   <li>
- *     <code><i>original_URL</i></code> is the original URL for the JDBC data
- *     source to now be traced.
+ *     In the JDBC-client code or tool, replace the occurrence of the original
+ *     URL with the corresponding proxying URL.
+ *   </li>
+ *   <li>
+ *     Make sure that class {@link TracingProxyDriver} will be loaded (e.g.,
+ *     configure the client to use it as the driver class).
  *   </li>
  * </ul>
- * <p>
- *   For example, for "{@code jdbc:drill:zk=local}", the tracing URL is
- *   "{@code jdbc:proxy:org.apache.drill.jdbc.Driver:jdbc:drill:zk=local}".
- * </p>
  * <p><strong>Output:</strong></p>
  * <p>
- *   Currently, the tracing output line are simply written to {@link System.out}
+ *   Currently, the tracing output line are simply written to {@link System#out}
  *   ({@code stdout} or "standard output").
  * </p>
  */

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/package-info.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/package-info.java b/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/package-info.java
index 911b298..33b915b 100644
--- a/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/package-info.java
+++ b/exec/jdbc/src/main/java/org/apache/drill/jdbc/proxy/package-info.java
@@ -18,6 +18,6 @@
 /**
  * Tracing proxy JDBC driver.  Traces calls to another JDBC driver.
  *
- * @see TracingProxyDriver
+ * @see org.apache.drill.jdbc.proxy.TracingProxyDriver
  */
 package org.apache.drill.jdbc.proxy;

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
index 0451c35..9165c35 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/ResultSetGetMethodConversionsTest.java
@@ -55,7 +55,7 @@ import java.sql.Statement;
  * <p>
  *   This test class is intended for higher-level type-vs.-type coverage tests.
  *   Detailed-case tests (e.g., boundary conditions) are intended to be in
- *   {@link org.apache.drill.jdbc.impl.TypeConvertingAccessor}).
+ *   {@link org.apache.drill.jdbc.impl.TypeConvertingSqlAccessor}).
  * </p>
  */
 public class ResultSetGetMethodConversionsTest extends JdbcTestBase {

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/test/java/org/apache/drill/jdbc/SingleConnectionCachingFactory.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/SingleConnectionCachingFactory.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/SingleConnectionCachingFactory.java
index 94ea303..6466137 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/SingleConnectionCachingFactory.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/SingleConnectionCachingFactory.java
@@ -40,7 +40,7 @@ public class SingleConnectionCachingFactory implements CachingConnectionFactory
    * {@inheritDoc}
    * <p>
    *   For this implementation, calls to {@code createConnection} without any
-   *   intervening calls to {@link closeConnection} return the same Connection
+   *   intervening calls to {@link #closeConnections} return the same Connection
    *   instance.
    * </p>
    */

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/test/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessorTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessorTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessorTest.java
index 3a4b83e..52ad021 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessorTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/impl/TypeConvertingSqlAccessorTest.java
@@ -26,6 +26,7 @@ import org.apache.drill.exec.vector.accessor.AbstractSqlAccessor;
 import org.apache.drill.exec.vector.accessor.InvalidAccessException;
 import org.apache.drill.exec.vector.accessor.SqlAccessor;
 import org.apache.drill.jdbc.SQLConversionOverflowException;
+import org.apache.drill.jdbc.TypeConvertingSqlAccessor;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -38,8 +39,8 @@ import static org.junit.Assert.assertThat;
 import static org.hamcrest.CoreMatchers.*;
 
 /**
- * Class-level unit test for  {@link TypeConvertingSqlAccessor}.
- * (Also see {@link org.apache.drill.jdbcResultSetGetMethodConversionsTest}.
+ * Class-level unit test for {@link TypeConvertingSqlAccessor}.
+ * (Also see {@link org.apache.drill.jdbc.ResultSetGetMethodConversionsTest}.
  */
 public class TypeConvertingSqlAccessorTest {
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e9035bef/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
----------------------------------------------------------------------
diff --git a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
index 01008b2..1f25eff 100644
--- a/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
+++ b/exec/jdbc/src/test/java/org/apache/drill/jdbc/test/Drill2489CallsAfterCloseThrowExceptionsTest.java
@@ -41,6 +41,7 @@ import java.sql.SQLException;
 import java.sql.SQLXML;
 import java.sql.Savepoint;
 import java.sql.Statement;
+import java.sql.Struct;
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.util.Map;