You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ca...@codespot.com on 2011/11/18 03:52:36 UTC

[cassandra-jdbc] 2 new revisions pushed by wfs...@gmail.com on 2011-11-18 02:51 GMT

2 new revisions:

Revision: 96d7c2da0dec
Author:   Rick Shaw <wf...@gmail.com>
Date:     Mon Nov  7 15:59:43 2011
Log:      Update POM to use version 1.0.2 of apache-cassandra-thrift, and...
http://code.google.com/a/apache-extras.org/p/cassandra-jdbc/source/detail?r=96d7c2da0dec

Revision: 306bd1b4ee88
Author:   Rick Shaw <wf...@gmail.com>
Date:     Thu Nov 17 12:13:48 2011
Log:      Issue #6. Re-repair CASSANDRA-3244
http://code.google.com/a/apache-extras.org/p/cassandra-jdbc/source/detail?r=306bd1b4ee88

==============================================================================
Revision: 96d7c2da0dec
Author:   Rick Shaw <wf...@gmail.com>
Date:     Mon Nov  7 15:59:43 2011
Log:      Update POM to use version 1.0.2 of apache-cassandra-thrift, and
apache-cassandra-clientutil JARs as dependencies.
http://code.google.com/a/apache-extras.org/p/cassandra-jdbc/source/detail?r=96d7c2da0dec

Modified:
  /pom.xml

=======================================
--- /pom.xml	Thu Oct 13 13:15:22 2011
+++ /pom.xml	Mon Nov  7 15:59:43 2011
@@ -98,7 +98,7 @@
      <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>cassandra-thrift</artifactId>
-      <version>1.0.0</version>
+      <version>1.0.2</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
@@ -113,7 +113,7 @@
      <dependency>
        <groupId>org.apache.cassandra</groupId>
        <artifactId>cassandra-clientutil</artifactId>
-      <version>1.0.0-rc2-SNAPSHOT</version>
+      <version>1.0.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>

==============================================================================
Revision: 306bd1b4ee88
Author:   Rick Shaw <wf...@gmail.com>
Date:     Thu Nov 17 12:13:48 2011
Log:      Issue #6. Re-repair CASSANDRA-3244
http://code.google.com/a/apache-extras.org/p/cassandra-jdbc/source/detail?r=306bd1b4ee88

Modified:
  /src/main/java/org/apache/cassandra/cql/jdbc/CassandraConnection.java
  /src/main/java/org/apache/cassandra/cql/jdbc/CassandraStatement.java

=======================================
--- /src/main/java/org/apache/cassandra/cql/jdbc/CassandraConnection.java	 
Thu Oct 13 00:45:22 2011
+++ /src/main/java/org/apache/cassandra/cql/jdbc/CassandraConnection.java	 
Thu Nov 17 12:13:48 2011
@@ -20,51 +20,17 @@
   */
  package org.apache.cassandra.cql.jdbc;

-import static org.apache.cassandra.cql.jdbc.Utils.ALWAYS_AUTOCOMMIT;
-import static org.apache.cassandra.cql.jdbc.Utils.BAD_TIMEOUT;
-import static org.apache.cassandra.cql.jdbc.Utils.NO_INTERFACE;
-import static org.apache.cassandra.cql.jdbc.Utils.NO_TRANSACTIONS;
-import static org.apache.cassandra.cql.jdbc.Utils.PROTOCOL;
-import static org.apache.cassandra.cql.jdbc.Utils.SCHEMA_MISMATCH;
-import static org.apache.cassandra.cql.jdbc.Utils.TAG_SERVER_NAME;
-import static org.apache.cassandra.cql.jdbc.Utils.TAG_DATABASE_NAME;
-import static org.apache.cassandra.cql.jdbc.Utils.TAG_PASSWORD;
-import static org.apache.cassandra.cql.jdbc.Utils.TAG_PORT_NUMBER;
-import static org.apache.cassandra.cql.jdbc.Utils.TAG_USER;
-import static org.apache.cassandra.cql.jdbc.Utils.WAS_CLOSED_CON;
-import static org.apache.cassandra.cql.jdbc.Utils.createSubName;
-import static org.apache.cassandra.cql.jdbc.Utils.determineCurrentKeyspace;
-
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.PreparedStatement;
-import java.sql.SQLClientInfoException;
-import java.sql.SQLException;
-import java.sql.SQLFeatureNotSupportedException;
-import java.sql.SQLInvalidAuthorizationSpecException;
-import java.sql.SQLNonTransientConnectionException;
-import java.sql.SQLRecoverableException;
-import java.sql.SQLSyntaxErrorException;
-import java.sql.SQLTimeoutException;
-import java.sql.SQLTransientConnectionException;
-import java.sql.SQLWarning;
-import java.sql.Statement;
-import java.util.ArrayList;
+import java.sql.*;
  import java.util.HashMap;
-import java.util.List;
  import java.util.Map;
  import java.util.Properties;
-
-import org.apache.cassandra.thrift.AuthenticationException;
-import org.apache.cassandra.thrift.AuthenticationRequest;
-import org.apache.cassandra.thrift.AuthorizationException;
-import org.apache.cassandra.thrift.Cassandra;
-import org.apache.cassandra.thrift.Compression;
-import org.apache.cassandra.thrift.CqlResult;
-import org.apache.cassandra.thrift.InvalidRequestException;
-import org.apache.cassandra.thrift.SchemaDisagreementException;
-import org.apache.cassandra.thrift.TimedOutException;
-import org.apache.cassandra.thrift.UnavailableException;
+import java.util.Set;
+import java.util.concurrent.ConcurrentSkipListSet;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.cassandra.thrift.*;
  import org.apache.thrift.TException;
  import org.apache.thrift.protocol.TBinaryProtocol;
  import org.apache.thrift.protocol.TProtocol;
@@ -72,8 +38,7 @@
  import org.apache.thrift.transport.TSocket;
  import org.apache.thrift.transport.TTransport;

-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import static org.apache.cassandra.cql.jdbc.Utils.*;

  /**
   * Implementation class for {@link Connection}.
@@ -99,9 +64,9 @@
      private Properties clientInfo = new Properties();

      /**
-     * List of all Statements that have been created by this connection
+     * Set of all Statements that have been created by this connection
       */
-    private List<Statement> statements;
+    private Set<Statement> statements = new  
ConcurrentSkipListSet<Statement>();

      private Cassandra.Client client;
      private TTransport transport;
@@ -119,7 +84,6 @@
       */
      public CassandraConnection(Properties props) throws SQLException
      {
-        statements = new ArrayList<Statement>();
          clientInfo = new Properties();
          url = PROTOCOL + createSubName(props);
          try
@@ -202,10 +166,13 @@
       */
      public synchronized void close() throws SQLException
      {
+        // close all statements associated with this connection upon close
+        for (Statement statement : statements)
+            statement.close();
+        statements.clear();
+
          if (isConnected())
          {
-            // spec says to close all statements associated with this  
connection upon close
-            for (Statement statement : statements) statement.close();
              // then disconnect from the transport
              disconnect();
          }
@@ -220,22 +187,25 @@
      public Statement createStatement() throws SQLException
      {
          checkNotClosed();
-        statements.add(new CassandraStatement(this));
-        return statements.get(statements.size() - 1);
+        Statement statement = new CassandraStatement(this);
+        statements.add(statement);
+        return statement;
      }

      public Statement createStatement(int resultSetType, int  
resultSetConcurrency) throws SQLException
      {
          checkNotClosed();
-        statements.add(new CassandraStatement(this, null, resultSetType,  
resultSetConcurrency));
-        return statements.get(statements.size() - 1);
+        Statement statement = new CassandraStatement(this, null,  
resultSetType, resultSetConcurrency);
+        statements.add(statement);
+        return statement;
      }

      public Statement createStatement(int resultSetType, int  
resultSetConcurrency, int resultSetHoldability) throws SQLException
      {
          checkNotClosed();
-        statements.add(new CassandraStatement(this, null, resultSetType,  
resultSetConcurrency, resultSetHoldability));
-        return statements.get(statements.size() - 1);
+        Statement statement = new CassandraStatement(this, null,  
resultSetType, resultSetConcurrency, resultSetHoldability);
+        statements.add(statement);
+        return statement;
      }

      public boolean getAutoCommit() throws SQLException
@@ -327,8 +297,9 @@
      public PreparedStatement prepareStatement(String sql) throws  
SQLException
      {
          checkNotClosed();
-        statements.add(new CassandraPreparedStatement(this, sql));
-        return (PreparedStatement) statements.get(statements.size() - 1);
+        PreparedStatement statement = new CassandraPreparedStatement(this,  
sql);
+        statements.add(statement);
+        return statement;
      }

      public PreparedStatement prepareStatement(String arg0, int arg1, int  
arg2) throws SQLException
@@ -441,6 +412,14 @@
          return execute(queryStr, defaultCompression);
      }

+    /**
+     * Remove a Statement from the Open Statements List
+     */
+    protected boolean removeStatement(Statement statement)
+    {
+        return statements.remove(statement);
+    }
+
      /**
       * Shutdown the remote connection
       */
=======================================
--- /src/main/java/org/apache/cassandra/cql/jdbc/CassandraStatement.java	 
Thu Oct 13 00:45:22 2011
+++ /src/main/java/org/apache/cassandra/cql/jdbc/CassandraStatement.java	 
Thu Nov 17 12:13:48 2011
@@ -34,7 +34,6 @@
  import java.sql.SQLTransientConnectionException;
  import java.sql.SQLWarning;
  import java.sql.Statement;
-import java.util.regex.Pattern;

  import org.apache.cassandra.thrift.CqlResult;
  import org.apache.cassandra.thrift.InvalidRequestException;
@@ -143,9 +142,12 @@

      public void close() throws SQLException
      {
+        connection.removeStatement(this);
          connection = null;
          cql = null;
      }
+
+

      private void doExecute(String sql) throws SQLException
      {