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 ma...@apache.org on 2007/07/24 19:44:27 UTC

svn commit: r559133 - in /db/derby/code/branches/10.3/java: engine/org/apache/derby/impl/jdbc/EmbedResultSet.java testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java

Author: mamta
Date: Tue Jul 24 10:44:26 2007
New Revision: 559133

URL: http://svn.apache.org/viewvc?view=rev&rev=559133
Log:
Merging Revision: 559125 from main into 10.3 codeline. The commit comments were as follows.

DERBY-2966

We need to have context set up inside a moveToInsertRow code because that code tries to do DTD.getNull and getNull needs to find RuleBasedCollator which is found by relying on the context. Putting the context fixed the problem.



Modified:
    db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java
    db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java

Modified: db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java?view=diff&rev=559133&r1=559132&r2=559133
==============================================================================
--- db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java (original)
+++ db/derby/code/branches/10.3/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java Tue Jul 24 10:44:26 2007
@@ -3924,6 +3924,13 @@
 
 		synchronized (getConnectionSynchronization()) {
 			try {
+				//we need to set the context because the getNull call below 
+				//(if dealing with territory based database) might need to 
+				//look up the current context to get the correct 
+				//RuleBasedCollator. This RuleBasedCollator will be used to
+				//construct a CollatorSQL... type rather than SQL...Char type 
+				//when dealing with character string datatypes.
+				setupContextStack();
 				// initialize state corresponding to insertRow/updateRow impl.
 				initializeUpdateRowModifiers();
  				isOnInsertRow = true;
@@ -3934,6 +3941,8 @@
 				}
 			} catch (Throwable ex) {
 				handleException(ex);
+			} finally {
+				restoreContextStack(); 
 			}
 		}
 	}

Modified: db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java?view=diff&rev=559133&r1=559132&r2=559133
==============================================================================
--- db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java (original)
+++ db/derby/code/branches/10.3/java/testing/org/apache/derbyTesting/functionTests/tests/lang/CollationTest.java Tue Jul 24 10:44:26 2007
@@ -976,6 +976,16 @@
     rs = s.executeQuery("SELECT SUBSTR(c||v, 1, 4), COUNT(*) FROM DERBY_2960" +
     		" GROUP BY SUBSTR(c||v, 1, 4)");
     JDBC.assertFullResultSet(rs,new String[][] {{"dupl","1"}});
+    
+    //DERBY-2966
+    //Moving to insert row in a territory based db should not cause exception
+    ps = conn.prepareStatement("SELECT * FROM CUSTOMER FOR UPDATE",
+    		ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
+    rs = ps.executeQuery();
+    rs.moveToInsertRow();
+    rs.close();
+    ps.close();
+
 }
 
 private void setUpTable(Statement s) throws SQLException {