dirkv 2004/02/29 12:18:25
Modified: dbcp/src/java/org/apache/commons/dbcp BasicDataSource.java
PoolableConnectionFactory.java
Log:
Bugzilla Bug 27320: DBCP 1.1 incompatible with Informix (driver doesn't support
setReadOnly(...))
- Allow 3 values for the defaultReadOnly parameter: true, false and notset.
When the parameter isn't set then the Connection.setReadOnly method will not be
called on activate.
Revision Changes Path
1.35 +7 -5
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSource.java
Index: BasicDataSource.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSource.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- BasicDataSource.java 28 Feb 2004 11:48:04 -0000 1.34
+++ BasicDataSource.java 29 Feb 2004 20:18:25 -0000 1.35
@@ -62,17 +62,19 @@
/**
* The default read-only state of connections created by this pool.
*/
- protected boolean defaultReadOnly = false;
+ protected Boolean defaultReadOnly = null;
public synchronized boolean getDefaultReadOnly() {
- return this.defaultReadOnly;
+ if (this.defaultReadOnly != null) {
+ return this.defaultReadOnly.booleanValue();
+ }
+ return false;
}
public synchronized void setDefaultReadOnly(boolean defaultReadOnly) {
- this.defaultReadOnly = defaultReadOnly;
+ this.defaultReadOnly = Boolean.valueOf(defaultReadOnly);
this.restartNeeded = true;
}
-
/**
* The default TransactionIsolation state of connections created by this pool.
1.20 +45 -8
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/PoolableConnectionFactory.java
Index: PoolableConnectionFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/PoolableConnectionFactory.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- PoolableConnectionFactory.java 28 Feb 2004 12:18:17 -0000 1.19
+++ PoolableConnectionFactory.java 29 Feb 2004 20:18:25 -0000 1.20
@@ -48,7 +48,7 @@
_pool.setFactory(this);
_stmtPoolFactory = stmtPoolFactory;
_validationQuery = validationQuery;
- _defaultReadOnly = defaultReadOnly;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
_defaultAutoCommit = defaultAutoCommit;
}
@@ -68,7 +68,7 @@
_pool.setFactory(this);
_stmtPoolFactory = stmtPoolFactory;
_validationQuery = validationQuery;
- _defaultReadOnly = defaultReadOnly;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
_defaultAutoCommit = defaultAutoCommit;
_defaultTransactionIsolation = defaultTransactionIsolation;
}
@@ -99,7 +99,7 @@
_pool.setFactory(this);
_stmtPoolFactory = stmtPoolFactory;
_validationQuery = validationQuery;
- _defaultReadOnly = defaultReadOnly;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
_defaultAutoCommit = defaultAutoCommit;
}
@@ -131,7 +131,7 @@
_pool.setFactory(this);
_stmtPoolFactory = stmtPoolFactory;
_validationQuery = validationQuery;
- _defaultReadOnly = defaultReadOnly;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
_defaultAutoCommit = defaultAutoCommit;
_defaultTransactionIsolation = defaultTransactionIsolation;
}
@@ -166,6 +166,41 @@
_pool.setFactory(this);
_stmtPoolFactory = stmtPoolFactory;
_validationQuery = validationQuery;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
+ _defaultAutoCommit = defaultAutoCommit;
+ _defaultTransactionIsolation = defaultTransactionIsolation;
+ _defaultCatalog = defaultCatalog;
+ }
+
+ /**
+ * Create a new <tt>PoolableConnectionFactory</tt>.
+ * @param connFactory the [EMAIL PROTECTED] ConnectionFactory} from which to
obtain base [EMAIL PROTECTED] Connection}s
+ * @param pool the [EMAIL PROTECTED] ObjectPool} in which to pool those [EMAIL
PROTECTED] Connection}s
+ * @param stmtPoolFactory the [EMAIL PROTECTED] KeyedObjectPoolFactory} to use
to create [EMAIL PROTECTED] KeyedObjectPool}s for pooling [EMAIL PROTECTED]
java.sql.PreparedStatement}s, or <tt>null</tt> to disable [EMAIL PROTECTED]
java.sql.PreparedStatement} pooling
+ * @param validationQuery a query to use to [EMAIL PROTECTED] #validateObject
validate} [EMAIL PROTECTED] Connection}s. Should return at least one row. May be
<tt>null</tt>
+ * @param defaultReadOnly the default "read only" setting for borrowed [EMAIL
PROTECTED] Connection}s
+ * @param defaultAutoCommit the default "auto commit" setting for returned
[EMAIL PROTECTED] Connection}s
+ * @param defaultTransactionIsolation the default "Transaction Isolation"
setting for returned [EMAIL PROTECTED] Connection}s
+ * @param defaultCatalog the default "catalog" setting for returned [EMAIL
PROTECTED] Connection}s
+ * @param config the AbandonedConfig if tracing SQL objects
+ */
+ public PoolableConnectionFactory(
+ ConnectionFactory connFactory,
+ ObjectPool pool,
+ KeyedObjectPoolFactory stmtPoolFactory,
+ String validationQuery,
+ Boolean defaultReadOnly,
+ boolean defaultAutoCommit,
+ int defaultTransactionIsolation,
+ String defaultCatalog,
+ AbandonedConfig config) {
+
+ _connFactory = connFactory;
+ _pool = pool;
+ _config = config;
+ _pool.setFactory(this);
+ _stmtPoolFactory = stmtPoolFactory;
+ _validationQuery = validationQuery;
_defaultReadOnly = defaultReadOnly;
_defaultAutoCommit = defaultAutoCommit;
_defaultTransactionIsolation = defaultTransactionIsolation;
@@ -224,7 +259,7 @@
* @param defaultReadOnly the default "read only" setting for borrowed [EMAIL
PROTECTED] Connection}s
*/
public void setDefaultReadOnly(boolean defaultReadOnly) {
- _defaultReadOnly = defaultReadOnly;
+ _defaultReadOnly = Boolean.valueOf(defaultReadOnly);
}
/**
@@ -334,7 +369,9 @@
if (_defaultTransactionIsolation != UNKNOWN_TRANSACTIONISOLATION) {
conn.setTransactionIsolation(_defaultTransactionIsolation);
}
- conn.setReadOnly(_defaultReadOnly);
+ if (_defaultReadOnly != null) {
+ conn.setReadOnly(_defaultReadOnly.booleanValue());
+ }
if (_defaultCatalog != null) {
conn.setCatalog(_defaultCatalog);
}
@@ -345,7 +382,7 @@
protected String _validationQuery = null;
protected ObjectPool _pool = null;
protected KeyedObjectPoolFactory _stmtPoolFactory = null;
- protected boolean _defaultReadOnly = false;
+ protected Boolean _defaultReadOnly = null;
protected boolean _defaultAutoCommit = true;
protected int _defaultTransactionIsolation = UNKNOWN_TRANSACTIONISOLATION;
protected String _defaultCatalog;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]