You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2010/10/05 12:51:23 UTC
svn commit: r1004609 -
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java
Author: kahatlen
Date: Tue Oct 5 10:51:23 2010
New Revision: 1004609
URL: http://svn.apache.org/viewvc?rev=1004609&view=rev
Log:
Don't compress tables in CleanDatabaseTestSetup.
SYSCS_INPLACE_COMPRESS_TABLE is not supported yet.
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java?rev=1004609&r1=1004608&r2=1004609&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LargeDataLocksTest.java Tue Oct 5 10:51:23 2010
@@ -27,6 +27,7 @@ import java.io.UnsupportedEncodingExcept
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
@@ -69,7 +70,7 @@ public class LargeDataLocksTest extends
}
assertEquals(38000, numChars);
rs.close();
- assertEquals(0, countLocks());
+ assertLockCount(0);
commit();
}
@@ -87,7 +88,7 @@ public class LargeDataLocksTest extends
byte[] value = rs.getBytes(1);
assertEquals(38000, value.length);
rs.close();
- assertEquals(0, countLocks());
+ assertLockCount(0);
commit();
}
@@ -113,7 +114,7 @@ public class LargeDataLocksTest extends
}
assertEquals(38000, numBytes);
rs.close();
- assertEquals(0, countLocks());
+ assertLockCount(0);
commit();
}
@@ -133,30 +134,45 @@ public class LargeDataLocksTest extends
String value = rs.getString(1);
assertEquals(38000, value.length());
rs.close();
- assertEquals(0, countLocks());
+ assertLockCount(0);
commit();
}
/**
- * Create a new connection and count the number of locks held.
- *
- * @return number of locks held
- *
- * @throws SQLException
+ * Assert that the lock table contains a certain number of locks. Fail and
+ * dump the contents of the lock table if the lock table does not contain
+ * the expected number of locks.
+ *
+ * @param expected the expected number of locks
*/
- public int countLocks() throws SQLException {
+ private void assertLockCount(int expected) throws SQLException {
+ // Count the locks in a new connection so that we don't accidentally
+ // make the default connection auto-commit and release locks.
Connection conn = openDefaultConnection();
- String sql;
Statement stmt = conn.createStatement();
+ ResultSet rs = stmt.executeQuery("select * from syscs_diag.lock_table");
+ ResultSetMetaData meta = rs.getMetaData();
+
+ // Build an error message with the contents of the lock table as
+ // we walk through it.
+ StringBuffer msg = new StringBuffer(
+ "Unexpected lock count. Contents of lock table:\n");
+ int count;
+ for (count = 0; rs.next(); count++) {
+ msg.append(count + 1).append(": ");
+ for (int col = 1; col <= meta.getColumnCount(); col++) {
+ String name = meta.getColumnName(col);
+ Object val = rs.getObject(col);
+ msg.append(name).append('=').append(val).append(' ');
+ }
+ msg.append('\n');
+ }
- sql = "Select count(*) from new org.apache.derby.diag.LockTable() as LT";
- ResultSet lockrs = stmt.executeQuery(sql);
- lockrs.next();
- int count = lockrs.getInt(1);
- lockrs.close();
+ rs.close();
stmt.close();
conn.close();
- return count;
+
+ assertEquals(msg.toString(), expected, count);
}
public static Test baseSuite(String name) {