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 km...@apache.org on 2013/04/09 04:58:31 UTC

svn commit: r1465866 - in /db/derby/code/branches/10.8.3.1_testcompat: ./ java/testing/org/apache/derbyTesting/functionTests/master/ java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ java/testing/org/apache/derbyTesting/functionTests/t...

Author: kmarsden
Date: Tue Apr  9 02:58:30 2013
New Revision: 1465866

URL: http://svn.apache.org/r1465866
Log:
DERBY-2601 SQLException error codes are not returned to client.

Merge tests for revision 1346833 


Modified:
    db/derby/code/branches/10.8.3.1_testcompat/   (props changed)
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/BadConnectionTest.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ReplicationRun.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownMaster.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownSlave.java
    db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java

Propchange: db/derby/code/branches/10.8.3.1_testcompat/
------------------------------------------------------------------------------
  Merged /db/derby/code/trunk:r1346833

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/master/testclientij.out Tue Apr  9 02:58:30 2013
@@ -44,18 +44,18 @@ ij(CONNECTION2)> connect 'wombat' USER '
 ij(CONNECTION3)> connect  'testij2;create=true;user=usr;password=pwd';
 ij(CONNECTION4)> connect 'testij2;upgrade=true;user=usr;password=pwd';
 ij(CONNECTION5)> connect 'testij2;shutdown=true;user=usr;password=pwd';
-ERROR 08006: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
+ERROR 08006: DERBY SQL error: ERRORCODE: 45000, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
 ij(CONNECTION5)> connect './testij2;create=true;user=usr;password=pwd';
 ij(CONNECTION6)> connect './testij2;create=true;user=usr;password=pwd';
 ij(CONNECTION7)> connect  'testij2;create=true;user=usr;password=pwd';
 ij(CONNECTION8)> connect 'testij2;upgrade=true;user=usr;password=pwd';
 ij(CONNECTION9)> connect 'testij2;shutdown=true;user=usr;password=pwd';
-ERROR 08006: DERBY SQL error: SQLCODE: -1, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
+ERROR 08006: DERBY SQL error: ERRORCODE: 45000, SQLSTATE: 08006, SQLERRMC: Database 'testij2' shutdown.
 ij(CONNECTION9)> -- retrieveMessageText Testing
 connect 'testij2;create=true;user=usr;password=pwd;retrieveMessageText=false';
 ij(CONNECTION10)> -- Should not get message text
 select * from APP.notthere;
-ERROR 42X05: DERBY SQL error: SQLCODE: -1, SQLSTATE: 42X05, SQLERRMC: APP.NOTTHERE42X05
+ERROR 42X05: DERBY SQL error: ERRORCODE: 30000, SQLSTATE: 42X05, SQLERRMC: APP.NOTTHERE42X05
 ij(CONNECTION10)> connect 'testij2;create=true;user=usr;password=pwd;retrieveMessageText=true';
 ij(CONNECTION11)> -- Should see message text
 select * from APP.notthere;

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/BadConnectionTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/BadConnectionTest.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/BadConnectionTest.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/BadConnectionTest.java Tue Apr  9 02:58:30 2013
@@ -57,7 +57,7 @@ public class BadConnectionTest extends B
             fail("Connection with no user or password succeeded");
 		} catch (SQLException e) {
 			assertSQLState("08004", e);
-			assertEquals(40000, e.getErrorCode());
+            assertErrorCode(40000, e);
 		}
 	}
 	
@@ -78,7 +78,7 @@ public class BadConnectionTest extends B
 		} catch (SQLException e)
 		{
 			assertSQLState("08004", e);
-			assertEquals(40000, e.getErrorCode());
+            assertErrorCode(40000, e);
 		}
 	}
 	
@@ -99,7 +99,7 @@ public class BadConnectionTest extends B
 		} catch (SQLException e)
 		{
 			assertSQLState("XJ05B", e);
-			assertEquals(-1, e.getErrorCode());
+            assertErrorCode(40000, e);
 		}
 	}
 

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java Tue Apr  9 02:58:30 2013
@@ -3425,7 +3425,7 @@ public class J2EEDataSourceTest extends 
         // HOLDABLE Statement in global xact " 
         assertEquals(ResultSet.CLOSE_CURSORS_AT_COMMIT, 
             s.getResultSetHoldability());
-        assertEquals(10000, conn.getWarnings().getErrorCode());
+        assertErrorCode(10000, conn.getWarnings());
         shxa.close();
 
         shxa = conn.prepareStatement("select id from hold_30",
@@ -3434,7 +3434,7 @@ public class J2EEDataSourceTest extends 
         // HOLDABLE PreparedStatement in global xact 
         assertEquals(ResultSet.CLOSE_CURSORS_AT_COMMIT,
             s.getResultSetHoldability());
-        assertEquals(10000, conn.getWarnings().getErrorCode());
+        assertErrorCode(10000, conn.getWarnings());
         shxa.close();
 
         shxa = conn.prepareCall("CALL SYSCS_UTIL.SYSCS_CHECKPOINT_DATABASE()",
@@ -3443,7 +3443,7 @@ public class J2EEDataSourceTest extends 
         // HOLDABLE CallableStatement in global xact:
         assertEquals(ResultSet.CLOSE_CURSORS_AT_COMMIT,
             s.getResultSetHoldability());
-        assertEquals(10000, conn.getWarnings().getErrorCode());
+        assertErrorCode(10000, conn.getWarnings());
         shxa.close();
 
         // check we can use a holdable statement set up in local mode.

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/lang/ErrorCodeTest.java Tue Apr  9 02:58:30 2013
@@ -48,7 +48,7 @@ public final class ErrorCodeTest extends
     {
         TestSuite suite = new TestSuite("errorcode Test");
         
-        suite.addTest(TestConfiguration.embeddedSuite(ErrorCodeTest.class));
+        suite.addTest(TestConfiguration.defaultSuite(ErrorCodeTest.class));
         
         return new LocaleTestSetup(suite, Locale.ENGLISH);
     }

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ReplicationRun.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ReplicationRun.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ReplicationRun.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ReplicationRun.java Tue Apr  9 02:58:30 2013
@@ -350,7 +350,7 @@ public class ReplicationRun extends Base
                 lastmsg = errCode + " " + sState + " " + lastmsg 
                         + ". Expected: "+ expectedState;
                 util.DEBUG("Got SQLException: " + lastmsg);
-                if ( (errCode == -1)
+                if ( (errCode == 40000)
                 && (sState.equalsIgnoreCase(expectedState) ) )
                 {
                     if (count++ >= 600) {
@@ -1005,7 +1005,7 @@ public class ReplicationRun extends Base
                     String expectedState = "XRE04";
                     util.DEBUG("startMaster Got SQLException: " 
                             + errCode + " " + sState + " " + msg + ". Expected " + expectedState);
-                    if ( (errCode == -1)
+                    if ( (errCode == 40000)
                     && (sState.equalsIgnoreCase(expectedState) ) )
                     {
                         if (count++ > 1200) {

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownMaster.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownMaster.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownMaster.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownMaster.java Tue Apr  9 02:58:30 2013
@@ -144,8 +144,9 @@ public class ShutdownMaster extends Base
                         String msg = se.getMessage();
                         String state = se.getSQLState();
                         String expectedState = (dbOnly)? "08006": "XJ015";
+                        int expectedCode = dbOnly ? 45000 : 50000;
                         System.out.println("shutdown Got SQLException: " + errCode + " " + state + " " + msg);
-                        if ( (errCode == -1)
+                        if ( (errCode == expectedCode)
                         && (state.equalsIgnoreCase(expectedState) ) )
                         {
                             System.out.println("As expected.");

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownSlave.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownSlave.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownSlave.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/functionTests/tests/replicationTests/ShutdownSlave.java Tue Apr  9 02:58:30 2013
@@ -168,8 +168,9 @@ public class ShutdownSlave extends BaseJ
                         String msg = se.getMessage();
                         String state = se.getSQLState();
                         String expectedState = (dbOnly)? "08004": "XJ015";
+                        int expectedCode = dbOnly ? 45000 : 50000;
                         System.out.println("shutdown Got SQLException: " + errCode + " " + state + " " + msg);
-                        if ( (errCode == -1)
+                        if ( (errCode == expectedCode)
                         && (state.equalsIgnoreCase(expectedState) ) )
                         {
                             System.out.println("As expected.");

Modified: db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java?rev=1465866&r1=1465865&r2=1465866&view=diff
==============================================================================
--- db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java (original)
+++ db/derby/code/branches/10.8.3.1_testcompat/java/testing/org/apache/derbyTesting/junit/BaseJDBCTestCase.java Tue Apr  9 02:58:30 2013
@@ -864,7 +864,23 @@ public abstract class BaseJDBCTestCase
     public static void assertSQLState(String expected, SQLException exception) {
         assertSQLState("Unexpected SQL state.", expected, exception);
     }
-    
+
+    /**
+     * Assert that the error code is as expected.
+     *
+     * @param expected the expected error code
+     * @param exception the exception to check
+     * @throws AssertionFailedError if the error code is wrong
+     */
+    public static void assertErrorCode(int expected, SQLException exception) {
+        assertNotNull("Exception should not be null", exception);
+        int actual = exception.getErrorCode();
+        if (actual != expected) {
+            fail("Expected error code " + expected + ", got " + actual,
+                 exception);
+        }
+    }
+
     /**
      * Assert that the SQL statement does not compile and throws
      * a SQLException with the expected state.
@@ -1113,7 +1129,7 @@ public abstract class BaseJDBCTestCase
                 "' but no error was thrown.");
         } catch (SQLException se) {
             assertSQLState(sqlState, se);
-            assertEquals(errorCode,se.getErrorCode());
+            assertErrorCode(errorCode, se);
         }
         
     }