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
{