List:Commits« Previous MessageNext Message »
From:mmatthews Date:March 3 2008 10:27pm
Subject:Connector/J commit: r6756 - in branches/branch_5_1/src: com/mysql/jdbc com/mysql/jdbc/jdbc2/optional testsuite/regression
View as plain text  
Modified:
   branches/branch_5_1/src/com/mysql/jdbc/Connection.java
   branches/branch_5_1/src/com/mysql/jdbc/ReplicationConnection.java
   branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/ConnectionWrapper.java
   branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/JDBC4ConnectionWrapper.java
   branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/MysqlPooledConnection.java
   branches/branch_5_1/src/testsuite/regression/ConnectionRegressionTest.java
Log:
Complete the fix for BUG#34937 (next time have someone review the testcase, to make sure
you don't do something dumb and not create the right *type* of connection in the first
place).

Modified: branches/branch_5_1/src/com/mysql/jdbc/Connection.java
===================================================================
--- branches/branch_5_1/src/com/mysql/jdbc/Connection.java	2008-02-29 19:31:29 UTC (rev
6755)
+++ branches/branch_5_1/src/com/mysql/jdbc/Connection.java	2008-03-03 21:27:51 UTC (rev
6756)
@@ -185,6 +185,12 @@
 	 * Is this connection currently a participant in an XA transaction?
 	 */
 	public abstract boolean isInGlobalTx();
+	
+	/**
+	 * Set the state of being in a global (XA) transaction.
+	 * @param flag
+	 */
+	public void setInGlobalTx(boolean flag);
 
 	/**
 	 * Is this connection connected to the first host in the list if
@@ -204,6 +210,15 @@
 	public abstract boolean isNoBackslashEscapesSet();
 
 	/**
+	 * Does this connection have the same resource name as the given
+	 * connection (for XA)?
+	 * 
+	 * @param c
+	 * @return
+	 */
+	public abstract boolean isSameResource(Connection c);
+	
+	/**
 	 * Is the server configured to use lower-case table names only?
 	 * 
 	 * @return true if lower_case_table_names is 'on'

Modified: branches/branch_5_1/src/com/mysql/jdbc/ReplicationConnection.java
===================================================================
--- branches/branch_5_1/src/com/mysql/jdbc/ReplicationConnection.java	2008-02-29 19:31:29
UTC (rev 6755)
+++ branches/branch_5_1/src/com/mysql/jdbc/ReplicationConnection.java	2008-03-03 21:27:51
UTC (rev 6756)
@@ -2317,4 +2317,12 @@
 	public synchronized boolean useUnbufferedInput() {
 		return this.currentConnection.useUnbufferedInput();
 	}
+
+	public synchronized boolean isSameResource(Connection c) {
+		return this.currentConnection.isSameResource(c);
+	}
+
+	public void setInGlobalTx(boolean flag) {
+		this.currentConnection.setInGlobalTx(flag);
+	}
 }

Modified: branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/ConnectionWrapper.java
===================================================================
---
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/ConnectionWrapper.java	2008-02-29
19:31:29 UTC (rev 6755)
+++
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/ConnectionWrapper.java	2008-03-03
21:27:51 UTC (rev 6756)
@@ -25,13 +25,12 @@
 package com.mysql.jdbc.jdbc2.optional;
 
 import java.lang.reflect.Constructor;
-import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Savepoint;
 import java.sql.Statement;
 import java.util.TimeZone;
 
-import com.mysql.jdbc.ConnectionImpl;
+import com.mysql.jdbc.Connection;
 import com.mysql.jdbc.Extension;
 import com.mysql.jdbc.MysqlErrorNumbers;
 import com.mysql.jdbc.SQLError;
@@ -60,9 +59,8 @@
  * @see org.gjt.mm.mysql.jdbc2.Connection
  * @see org.gjt.mm.mysql.jdbc2.optional.MysqlPooledConnection
  */
-public class ConnectionWrapper extends WrapperBase implements Connection,
-		com.mysql.jdbc.Connection {
-	protected com.mysql.jdbc.ConnectionImpl mc = null;
+public class ConnectionWrapper extends WrapperBase implements Connection {
+	protected Connection mc = null;
 
 	private MysqlPooledConnection mpc = null;
 
@@ -81,7 +79,7 @@
 						"com.mysql.jdbc.jdbc2.optional.JDBC4ConnectionWrapper")
 						.getConstructor(
 								new Class[] { MysqlPooledConnection.class,
-										ConnectionImpl.class, Boolean.TYPE });
+										Connection.class, Boolean.TYPE });
 			} catch (SecurityException e) {
 				throw new RuntimeException(e);
 			} catch (NoSuchMethodException e) {
@@ -96,7 +94,7 @@
 
 	protected static ConnectionWrapper getInstance(
 			MysqlPooledConnection mysqlPooledConnection,
-			ConnectionImpl mysqlConnection, boolean forXa) throws SQLException {
+			Connection mysqlConnection, boolean forXa) throws SQLException {
 		if (!Util.isJdbc4()) {
 			return new ConnectionWrapper(mysqlPooledConnection,
 					mysqlConnection, forXa);
@@ -120,7 +118,7 @@
 	 *             if an error occurs.
 	 */
 	public ConnectionWrapper(MysqlPooledConnection mysqlPooledConnection,
-			ConnectionImpl mysqlConnection, boolean forXa) throws SQLException {
+			Connection mysqlConnection, boolean forXa) throws SQLException {
 		this.mpc = mysqlPooledConnection;
 		this.mc = mysqlConnection;
 		this.closed = false;
@@ -876,7 +874,7 @@
 		return this.mc.isInGlobalTx();
 	}
 
-	protected void setInGlobalTx(boolean flag) {
+	public void setInGlobalTx(boolean flag) {
 		this.mc.setInGlobalTx(flag);
 	}
 

Modified:
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/JDBC4ConnectionWrapper.java
===================================================================
---
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/JDBC4ConnectionWrapper.java	2008-02-29
19:31:29 UTC (rev 6755)
+++
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/JDBC4ConnectionWrapper.java	2008-03-03
21:27:51 UTC (rev 6756)
@@ -64,7 +64,7 @@
 	 *             if an error occurs.
 	 */
 	public JDBC4ConnectionWrapper(MysqlPooledConnection mysqlPooledConnection,
-			ConnectionImpl mysqlConnection, boolean forXa)
+			com.mysql.jdbc.Connection mysqlConnection, boolean forXa)
 			throws SQLException {
 		super(mysqlPooledConnection, mysqlConnection, forXa);
 	}

Modified: branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/MysqlPooledConnection.java
===================================================================
---
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/MysqlPooledConnection.java	2008-02-29
19:31:29 UTC (rev 6755)
+++
branches/branch_5_1/src/com/mysql/jdbc/jdbc2/optional/MysqlPooledConnection.java	2008-03-03
21:27:51 UTC (rev 6756)
@@ -177,7 +177,7 @@
 			}
 
 			this.logicalHandle = ConnectionWrapper.getInstance(this, 
-					(ConnectionImpl)this.physicalConn, 
+					this.physicalConn, 
 					forXa);
 		} catch (SQLException sqlException) {
 			callConnectionEventListeners(CONNECTION_ERROR_EVENT, sqlException);

Modified: branches/branch_5_1/src/testsuite/regression/ConnectionRegressionTest.java
===================================================================
--- branches/branch_5_1/src/testsuite/regression/ConnectionRegressionTest.java	2008-02-29
19:31:29 UTC (rev 6755)
+++ branches/branch_5_1/src/testsuite/regression/ConnectionRegressionTest.java	2008-03-03
21:27:51 UTC (rev 6756)
@@ -2377,7 +2377,20 @@
 			urlBuf.append("&");
 		}
 		
-		ds.setURL(urlBuf.toString());
-		ds.getPooledConnection().close();
+		String url = urlBuf.toString();
+		url = "jdbc:mysql:replication:" + url.substring(url.indexOf("jdbc:mysql:") +
"jdbc:mysql:".length());
+		ds.setURL(url);
+		Connection replConn = ds.getPooledConnection().getConnection();
+		
+		boolean readOnly = false;
+		
+		for (int i = 0; i < 10; i++) {
+			this.rs = replConn.createStatement().executeQuery("SELECT 1");
+			assertTrue(this.rs.next());
+			this.rs = replConn.prepareStatement("SELECT 1").executeQuery();
+			assertTrue(this.rs.next());
+			readOnly = !readOnly;
+			replConn.setReadOnly(readOnly);
+		}	
 	}
 }
\ No newline at end of file

Thread
Connector/J commit: r6756 - in branches/branch_5_1/src: com/mysql/jdbc com/mysql/jdbc/jdbc2/optional testsuite/regressionmmatthews3 Mar 2008