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 rh...@apache.org on 2014/08/06 20:41:30 UTC

svn commit: r1616299 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/execute/InsertResultSet.java testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java

Author: rhillegas
Date: Wed Aug  6 18:41:29 2014
New Revision: 1616299

URL: http://svn.apache.org/r1616299
Log:
DERBY-6692: Fix self-deadlock regression in soft-upgraded database; commit derby-6692-01-ab-withTests.diff.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java?rev=1616299&r1=1616298&r2=1616299&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java Wed Aug  6 18:41:29 2014
@@ -885,7 +885,7 @@ class InsertResultSet extends DMLWriteRe
                  throw se;
              }
  
-             if (se.getMessageId().equals(SQLState.LOCK_TIMEOUT))
+             if ( se.getMessageId().equals(SQLState.LOCK_TIMEOUT) || se.isSelfDeadlock() )
              {
                  // if we couldn't do this with a nested xaction, retry with
                  // parent-- we need to wait this time!

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java?rev=1616299&r1=1616298&r2=1616299&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/Changes10_11.java Wed Aug  6 18:41:29 2014
@@ -385,6 +385,36 @@ public class Changes10_11 extends Upgrad
         }
     }
 
+    /** Test that identity columns handle self-deadlock in soft-upgrade mode */
+    public void test_derby6692() throws Exception
+    {
+        Connection  conn = getConnection();
+        
+        switch (getPhase())
+        {
+            case PH_CREATE:
+            case PH_SOFT_UPGRADE:
+            case PH_POST_SOFT_UPGRADE:
+            case PH_HARD_UPGRADE:
+
+                boolean originalAutoCommit = conn.getAutoCommit();
+                try
+                {
+                    conn.setAutoCommit( false );
+
+                    conn.prepareStatement( "create table t_6692(i int generated always as identity)" ).execute();
+                    conn.prepareStatement( "insert into t_6692 values (default)" ).execute();
+
+                    conn.rollback();
+                }
+                finally
+                {
+                    conn.setAutoCommit( originalAutoCommit );
+                }
+                break;
+        }
+    }
+
     /** Test the Lucene plugin */
     public void testLuceneSupport() throws Exception
     {