Changeset: bcb9a99d399d for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=bcb9a99d399d
Modified Files:
src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
Branch: default
Log Message:
Add private checkNotClosed() method to check if the connection is not closed.
Call the method from all methods which require that the connection is not
closed.
Disabled not needed check in setNetworkTimeout(), such that it can be used now.
diffs (166 lines):
diff --git a/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
b/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
+++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetConnection.java
@@ -238,7 +238,8 @@ public class MonetConnection
if (hostname == null || hostname.isEmpty())
throw new IllegalArgumentException("Missing or empty
host name");
if (port <= 0 || port > 65535)
- throw new IllegalArgumentException("Invalid port
number: " + port + ". It should not be " + (port < 0 ? "negative" : (port >
65535 ? "larger than 65535" : "0")));
+ throw new IllegalArgumentException("Invalid port
number: " + port
+ + ". It should not be " + (port < 0 ?
"negative" : (port > 65535 ? "larger than 65535" : "0")));
if (username == null || username.isEmpty())
throw new IllegalArgumentException("Missing or empty
user name");
if (password == null || password.isEmpty())
@@ -584,9 +585,7 @@ public class MonetConnection
*/
@Override
public SQLWarning getWarnings() throws SQLException {
- if (closed)
- throw new SQLException("Cannot call on closed
Connection", "M1M20");
-
+ checkNotClosed();
// if there are no warnings, this will be null, which fits with
the
// specification.
return warnings;
@@ -700,6 +699,7 @@ public class MonetConnection
public CallableStatement prepareCall(final String sql, final int
resultSetType, final int resultSetConcurrency, final int resultSetHoldability)
throws SQLException
{
+ checkNotClosed();
try {
final CallableStatement ret = new
MonetCallableStatement(
this,
@@ -804,6 +804,7 @@ public class MonetConnection
public PreparedStatement prepareStatement(final String sql, final int
resultSetType, final int resultSetConcurrency, final int resultSetHoldability)
throws SQLException
{
+ checkNotClosed();
try {
final PreparedStatement ret = new
MonetPreparedStatement(
this,
@@ -934,6 +935,7 @@ public class MonetConnection
*/
@Override
public void releaseSavepoint(final Savepoint savepoint) throws
SQLException {
+ checkNotClosed();
if (!(savepoint instanceof MonetSavepoint))
throw new SQLException("This driver can only handle
savepoints it created itself", "M0M06");
@@ -955,6 +957,7 @@ public class MonetConnection
*/
@Override
public void rollback() throws SQLException {
+ checkNotClosed();
// note: can't use sendIndependentCommand here because we need
// to process the auto_commit state the server gives
sendTransactionCommand("ROLLBACK");
@@ -972,6 +975,7 @@ public class MonetConnection
*/
@Override
public void rollback(final Savepoint savepoint) throws SQLException {
+ checkNotClosed();
if (!(savepoint instanceof MonetSavepoint))
throw new SQLException("This driver can only handle
savepoints it created itself", "M0M06");
@@ -1008,6 +1012,7 @@ public class MonetConnection
*/
@Override
public void setAutoCommit(final boolean autoCommit) throws SQLException
{
+ checkNotClosed();
if (this.autoCommit != autoCommit) {
sendControlCommand("auto_commit " + (autoCommit ? "1" :
"0"));
this.autoCommit = autoCommit;
@@ -1069,6 +1074,7 @@ public class MonetConnection
*/
@Override
public Savepoint setSavepoint() throws SQLException {
+ checkNotClosed();
// create a new Savepoint object
final MonetSavepoint sp = new MonetSavepoint();
@@ -1089,6 +1095,7 @@ public class MonetConnection
*/
@Override
public Savepoint setSavepoint(final String name) throws SQLException {
+ checkNotClosed();
// create a new Savepoint object
final MonetSavepoint sp;
try {
@@ -1361,6 +1368,7 @@ public class MonetConnection
public String getClientInfo(final String name) throws SQLException {
if (name == null || name.isEmpty())
return null;
+ checkNotClosed();
return conn_props.getProperty(name);
}
@@ -1378,6 +1386,7 @@ public class MonetConnection
*/
@Override
public Properties getClientInfo() throws SQLException {
+ checkNotClosed();
// return a clone of the connection properties object
return new Properties(conn_props);
}
@@ -1494,8 +1503,7 @@ public class MonetConnection
*/
@Override
public void setSchema(final String schema) throws SQLException {
- if (closed)
- throw new SQLException("Cannot call on closed
Connection", "M1M20");
+ checkNotClosed();
if (schema == null || schema.isEmpty())
throw new SQLException("Missing schema name", "M1M05");
@@ -1520,8 +1528,7 @@ public class MonetConnection
*/
@Override
public String getSchema() throws SQLException {
- if (closed)
- throw new SQLException("Cannot call on closed
Connection", "M1M20");
+ checkNotClosed();
String cur_schema = null;
Statement st = null;
@@ -1595,10 +1602,10 @@ public class MonetConnection
*/
@Override
public void setNetworkTimeout(final Executor executor, final int
millis) throws SQLException {
- if (closed)
- throw new SQLException("Cannot call on closed
Connection", "M1M20");
- if (executor == null)
- throw new SQLException("executor is null", "M1M05");
+ checkNotClosed();
+// executor object is not used yet, so no need to test it.
+// if (executor == null)
+// throw new SQLException("executor is null", "M1M05");
if (millis < 0)
throw new SQLException("milliseconds is less than
zero", "M1M05");
@@ -1622,9 +1629,7 @@ public class MonetConnection
*/
@Override
public int getNetworkTimeout() throws SQLException {
- if (closed)
- throw new SQLException("Cannot call on closed
Connection", "M1M20");
-
+ checkNotClosed();
try {
return server.getSoTimeout();
} catch (SocketException e) {
@@ -1656,6 +1661,15 @@ public class MonetConnection
}
/**
+ * Local helper method to test whether the Connection object is closed
+ * When closed it throws an SQLException
+ */
+ private void checkNotClosed() throws SQLException {
+ if (closed)
+ throw new SQLException("Connection is closed", "M1M20");
+ }
+
+ /**
* @return the MonetDB JDBC Connection URL (without user name and
password).
* It is called from: getURL()in MonetDatabaseMetaData
*/
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list