import testsuite.BaseTestCase; import java.sql.ResultSet; import java.sql.DatabaseMetaData; import java.sql.Statement; public class bug61126 extends BaseTestCase { public bug61126(String name) { super(name); } public static void main(String[] args) { junit.textui.TestRunner.run(bug61126.class); } public void testBug61126() throws Exception { try { Statement stmt = this.conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); stmt.execute("DROP TABLE IF EXISTS bug"); stmt.execute("CREATE TABLE bug (id int NOT NULL default 0,value VARCHAR(25), PRIMARY KEY(id))"); stmt.execute("INSERT INTO bug(id,value) VALUES(1,'current-value')"); ResultSet rs = stmt.executeQuery("SELECT id, value from bug where id = '2'"); rs.moveToInsertRow(); assertTrue("Before update getString should return null", rs.getString(2)==null); rs.updateString("value", "new-value"); //rs.insertRow(); assertTrue("After update should return 'new-value'", rs.getString(2).equals("new-value")); /* ResultSet */rs = stmt.executeQuery("SELECT id, value from bug where id = '1'"); rs.next(); assertTrue("Before update getString should return 'current-value'", rs.getString(2).equals("current-value")); rs.updateString("value", "new-value"); rs.updateRow(); /* The following assert failes. Oracle returns the "new-value" */ assertTrue("After update should return 'new-value'", rs.getString(2).equals("new-value")); rs.close(); //rs1.close(); } finally { // closeMemberJDBCResources(); } } } /* javac -classpath /home/sveta/java/mysql-connector-java-5.1.20/mysql-connector-java-5.1.20-bin.jar:/home/sveta/java/mysql-connector-java-5.1.20/src:/home/sveta/java/junit-4.10.jar bug61126.java java -classpath /home/sveta/java/mysql-connector-java-5.1.20/mysql-connector-java-5.1.20-bin.jar:/home/sveta/java/mysql-connector-java-5.1.20/src:/home/sveta/java/junit-4.10.jar:$CLASSPATH:. -Dcom.mysql.jdbc.testsuite.url="jdbc:mysql://127.0.0.1:33055/test?user=root&password=" bug61126 */