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 my...@apache.org on 2007/03/16 07:58:25 UTC

svn commit: r518875 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests: derbynet/NSSecurityMechanismTest.java derbynet/_Suite.java jdbcapi/AuthenticationTest.java jdbcapi/_Suite.java jdbcapi/checkDataSource.java

Author: myrnavl
Date: Thu Mar 15 23:58:22 2007
New Revision: 518875

URL: http://svn.apache.org/viewvc?view=rev&rev=518875
Log:
DERBY-1982 - now that the build level is jdk14, we don't need a separate sectionanymore for jdk13/jdk14 tests in _Suite.java. Also removed the supportsJDBC20 section and moved the one test under supportsJDBC30.
Also added a very few whitespace changes; all addsuite statements in the main section now have 2 tabs in front of them. 

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java?view=diff&rev=518875&r1=518874&r2=518875
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java Thu Mar 15 23:58:22 2007
@@ -352,7 +352,7 @@
 
         // shut down the server
         server.shutdown();
-        Thread.sleep(1000);
+        Thread.sleep(500);
         } catch (Exception e) {
             if (!(e.getMessage().substring(0,17).equals("DRDA_InvalidValue")))
             {
@@ -383,7 +383,7 @@
             server2.start(null);
             // TODO: sleep ridiculously long, otherwise getting 08001 errors
             //       even when the server is up.
-            Thread.sleep(120000);
+            Thread.sleep(80000);
             
             if (derby_drda_securityMechanism.equals("") ||
                 derby_drda_securityMechanism.equals("INVALID_VALUE"))
@@ -805,7 +805,6 @@
                     getJDBCUrl(urlAttributes), "Test:", 
                     getExpectedValueFromAll(expectedValues, k, j, 4));
                 getDataSourceConnection(USER_ATTRIBUTE[k],PWD_ATTRIBUTE[j],
-                    "TEST_DS("+urlAttributes+")", 
                     getExpectedValueFromAll(expectedValues, k, j, 4));
 
                 for (int i = 0; i < SECMEC_ATTRIBUTE.length; i++) {
@@ -882,7 +881,7 @@
      * @param msg message to print for testcase
      */
     public void getDataSourceConnection(
-        String user, String password,String msg, String expectedValue)
+        String user, String password, String expectedValue)
     {
         Connection conn;
         DataSource ds = getDS(user, password);
@@ -996,9 +995,6 @@
             fail("should not have failed");
         }
         
-        // TODO: using this with ibm15 results in 42X05 - table does not exist
-        //assertTableRowCount("sys.systables", 1);
-        
         if(rs != null)
             rs.close();
         if(stmt != null)
@@ -1096,7 +1092,7 @@
         try
         {
             println("Turning ON Derby BUILTIN authentication");
-            Connection conn = getConnectionWithSecMec(
+            Connection conn = getDataSourceConnectionWithSecMec(
                 "neelima", "lee", new Short(SECMEC_USRSSBPWD));
             if (conn == null)
                 return; // Exception would have been raised
@@ -1151,7 +1147,7 @@
                 "TEST_DS - USRSSBPWD + BUILTIN (T4):", expectedValues[3]);
 
             // Prepare to turn OFF Derby BUILTIN authentication
-            conn = getConnectionWithSecMec("neelima", "lee",
+            conn = getDataSourceConnectionWithSecMec("neelima", "lee",
                 new Short(SECMEC_USRSSBPWD));
             if (conn == null)
                 return; // Exception would have been raised
@@ -1180,9 +1176,8 @@
         }
     }
     
-    public Connection getConnectionWithSecMec(String user,
-        String password,
-        Short secMec)
+    public Connection getDataSourceConnectionWithSecMec(
+        String user, String password, Short secMec)
     {
         Connection conn = null;
         String securityMechanismProperty = "SecurityMechanism";
@@ -1200,13 +1195,13 @@
         catch (SQLException sqle)
         {
             // Exceptions expected in certain cases depending on JCE used for 
-            // running the test.
-            dumpSQLException(sqle.getNextException());
-            assertSQLState("11111", sqle);
+            // running the test, but in this case, we don't expect any
+            // sqlexceptions
+            fail("did not expect an sqlexception.");
         }
         catch (Exception e)
         {
-            fail("did not expect exception");
+            fail("did not expect exception.");
         }
         return conn;
     }

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java?view=diff&rev=518875&r1=518874&r2=518875
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java Thu Mar 15 23:58:22 2007
@@ -53,6 +53,7 @@
         suite.addTest(BadConnectionTest.suite());
         suite.addTest(NetHarnessJavaTest.suite());
         suite.addTest(SecureServerTest.suite());
+        suite.addTest(NSSecurityMechanismTest.suite());
         
         // These tests references a client class directly
         // thus causing class not found exceptions if the

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java?view=diff&rev=518875&r1=518874&r2=518875
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java Thu Mar 15 23:58:22 2007
@@ -562,6 +562,10 @@
         conn1.close();
     }
     
+    // verify that the return value is the expected value, and 
+    // we have the expected number of rows returning from the query
+    // in this test, it will be one of the user names through
+    // use of CURRENT_USER, SESSION_USER etc.
     protected void assertUserValue(
         String[] expected, String user, String password, String sql)
     throws SQLException
@@ -587,6 +591,7 @@
         assertUserValue(expected, user, (user + PASSWORD_SUFFIX), sql);
     }
     
+    // get a connection using ds.getConnection(user, password)
     protected void assertConnectionOK(
          String dbName, String user, String password)
     throws SQLException
@@ -600,7 +605,7 @@
         }
     }
     
-    // getConnection(), using setConnectionAttributes
+    // get a connection, using setUser / setPassword, and ds.getConnection()
     protected void assertConnectionWOUPOK(
         String dbName, String user, String password)
     throws SQLException
@@ -630,7 +635,9 @@
         }
     }
 
-    // connection without user and password
+    // same action as with assertConnectionFail, but using ds.getConnection()
+    // instead of ds.getConnection(user, password). So, setting user and
+    // password using appropriate ds.set method.
     protected void assertConnectionWOUPFail(
         String expectedError, String dbName, String user, String password) 
     throws SQLException 
@@ -678,6 +685,9 @@
         }
     }
 
+    // same action as with assertShutdownOK, but using ds.getConnection()
+    // instead of ds.getConnection(user, password). So, setting user and
+    // password using appropriate ds.set method.
     protected void assertShutdownWOUPOK(
         String dbName, String user, String password)
     throws SQLException {
@@ -748,7 +758,7 @@
     throws SQLException
     {
         // with DerbyNetClient there is no Datasource setShutdownDatabase 
-        // method so can't use the setBeanProperty
+        // method so can't use the same setBeanProperty as with embedded
         if (usingEmbedded()) 
         {
             DataSource ds = JDBCDataSource.getDataSource(dbName);
@@ -819,6 +829,7 @@
         if (usingEmbedded())
         {
             DataSource ds = JDBCDataSource.getDataSource();
+            JDBCDataSource.clearStringBeanProperty(ds, "databaseName");
             JDBCDataSource.setBeanProperty(ds, "shutdownDatabase", "shutdown");
             JDBCDataSource.setBeanProperty(ds, "user", user);
             JDBCDataSource.setBeanProperty(ds, "password", password);
@@ -833,6 +844,7 @@
         {
             ClientDataSource ds = 
                 (ClientDataSource)JDBCDataSource.getDataSource();
+            JDBCDataSource.clearStringBeanProperty(ds, "databaseName");
             ds.setConnectionAttributes(
                 "shutdown=true;user=" + user + ";password=" + password);
             try {

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java?view=diff&rev=518875&r1=518874&r2=518875
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java Thu Mar 15 23:58:22 2007
@@ -49,14 +49,14 @@
 
 		suite.addTest(ConcurrencyTest.suite());
 		suite.addTest(HoldabilityTest.suite());
-        suite.addTest(LobLengthTest.suite()); 
+		suite.addTest(LobLengthTest.suite()); 
 		suite.addTest(ProcedureTest.suite());
 		suite.addTest(SURQueryMixTest.suite());
 		suite.addTest(SURTest.suite());
 		suite.addTest(UpdatableResultSetTest.suite());
 		suite.addTest(UpdateXXXTest.suite());
 		suite.addTest(URCoveringIndexTest.suite());
-        suite.addTest(ResultSetCloseTest.suite());
+		suite.addTest(ResultSetCloseTest.suite());
 		suite.addTest(BlobClob4BlobTest.suite());
 		suite.addTest(CharacterStreamsTest.suite());
 		suite.addTest(BatchUpdateTest.suite());
@@ -64,42 +64,32 @@
 		suite.addTest(DboPowersTest.suite());
 		suite.addTest(BlobStoredProcedureTest.suite());
 		suite.addTest(ClobStoredProcedureTest.suite());
-                suite.addTest(CallableTest.suite());
-                suite.addTest(ResultSetMiscTest.suite());
-                suite.addTest(PrepStmtMetaDataTest.suite());
+		suite.addTest(CallableTest.suite());
+		suite.addTest(ResultSetMiscTest.suite());
+		suite.addTest(PrepStmtMetaDataTest.suite());
+		suite.addTest(ScrollResultSetTest.suite());
+		suite.addTest(LobStreamsTest.suite());
+		suite.addTest(ResultSetJDBC30Test.suite());
+		suite.addTest(DatabaseMetaDataTest.suite());
+		suite.addTest(ClosedObjectTest.suite());
         
         // Old harness .java tests that run using the HarnessJavaTest
         // adapter and continue to use a single master file.
         suite.addTest(JDBCHarnessJavaTest.suite());
         
-        if (JDBC.vmSupportsJDBC2())
+        if (JDBC.vmSupportsJDBC3())
         {
             // Tests that do not run under JSR169
             // DERBY-2403 blocks ParameterMappingTest from running
             // under JSR169
             suite.addTest(ParameterMappingTest.suite());
-        
-        }
-        if (JDBC.vmSupportsJDBC3())
-        {
+
             // Class requires javax.sql.PooledConnection
             // even to load, even though the suite method
             // is correctly implemented.
             suite.addTest(DataSourcePropertiesTest.suite());
         }
 		
-		// Tests that are compiled using 1.4 target need to
-		// be added this way, otherwise creating the suite
-		// will throw an invalid class version error
-		if (JDBC.vmSupportsJDBC3() || JDBC.vmSupportsJSR169())
-		{
-			suite.addTest(ScrollResultSetTest.suite());
-			suite.addTest(LobStreamsTest.suite());
-			suite.addTest(ResultSetJDBC30Test.suite());
-            suite.addTest(DatabaseMetaDataTest.suite());
-            suite.addTest(ClosedObjectTest.suite());
-		}
-        
         return suite;
 	}
 }

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java?view=diff&rev=518875&r1=518874&r2=518875
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java Thu Mar 15 23:58:22 2007
@@ -867,9 +867,9 @@
                     ds.setDatabaseName("wombat");
                     ds.setConnectionAttributes("bad");
                     try {
-                        // TODO: this gives XJ028 - url is badly formed, whereas
-                        // all other datasources give XJ212 - invalid syntax for connatr.
-                        // is this ok?
+                        // Note: this gives XJ028 - url is badly formed, 
+                        // whereas connectionPool and XA datasources give 
+                        // XJ212 - invalid syntax for connatr.
                         conn = ds.getConnection();
                         conn.close();
                         System.out.println("FAIL - should have seen an error");
@@ -1629,7 +1629,7 @@
         
 	/**
 	 * Check that traceFile connection attribute functions correctly.
-         * tracefile was tested in checkDriver, but not for DataSources.
+     * tracefile was tested in checkDriver, but not for DataSources.
 	 * tracefile= was used in datasourcepermissions_net, but that's 
 	 * incorrect syntax. Note that we're not checking the contents of
 	 * the tracefile.
@@ -1638,259 +1638,261 @@
 	 */
 	private static void testClientTraceFileDSConnectionAttribute() throws SQLException {
 
-	    String DERBY_SYSTEM_HOME = System.getProperty("derby.system.home");
+        String DERBY_SYSTEM_HOME = System.getProperty("derby.system.home");
 	    String traceDirectory = DERBY_SYSTEM_HOME + File.separator;
 	    String traceFile;
             String coretraceFile;
             
 	    // DataSource
 	    ClientDataSource ds = new ClientDataSource();
-            ds.setDatabaseName("wombat");
+        ds.setDatabaseName("wombat");
             
-            System.out.println("DataSource - connectionAttribute=traceFile=filename");
-            coretraceFile = "trace1.out";
-            traceFile = traceDirectory + coretraceFile;
-            ds.setConnectionAttributes("traceFile="+traceFile);
-            dsConnectionRequests(ds);
-            assertTraceFileExists(traceFile, coretraceFile);
-            ds.setConnectionAttributes(null);
-
-            System.out.println("DataSource - setTraceFile property");
-            coretraceFile = "trace2.out";
-            traceFile = traceDirectory + coretraceFile;
-            ds.setTraceFile(traceFile);
+        System.out.println("DataSource - connectionAttribute=traceFile=filename");
+        coretraceFile = "trace1.out";
+        traceFile = traceDirectory + coretraceFile;
+        ds.setConnectionAttributes("traceFile="+traceFile);
+        dsConnectionRequests(ds);
+        assertTraceFileExists(traceFile, coretraceFile);
+        ds.setConnectionAttributes(null);
+
+        System.out.println("DataSource - setTraceFile property");
+        coretraceFile = "trace2.out";
+        traceFile = traceDirectory + coretraceFile;
+        ds.setTraceFile(traceFile);
+        dsConnectionRequests(ds);
+        assertTraceFileExists(traceFile, coretraceFile);
+        ds.setTraceFile(null);
+        ds.setDatabaseName(null);
+
+        // now with ConnectionPoolDataSource
+        ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
+        cpds.setDatabaseName("wombat");
+
+        System.out.println("ConnectionPoolDataSource - connectionAttribute=traceFile=filename");
+        coretraceFile = "trace3.out";
+        traceFile = traceDirectory + coretraceFile;
+        cpds.setConnectionAttributes("traceFile="+traceFile);
+        dsConnectionRequests((ConnectionPoolDataSource)cpds);
+        // TODO: log bug - trace3.out does not get created
+        assertTraceFileExists(traceFile, coretraceFile);
+        cpds.setConnectionAttributes(null);
+
+        System.out.println("ConnectionPoolDataSource - setTraceFile property");
+        coretraceFile = "trace4.out";
+        traceFile = traceDirectory + coretraceFile;
+        cpds.setTraceFile(traceFile);
+        dsConnectionRequests((ConnectionPoolDataSource)cpds);
+        assertTraceFileExists(traceFile, coretraceFile);
+        cpds.setTraceFile(null);
+        cpds.setDatabaseName(null);
+
+        // now with XADataSource
+        ClientXADataSource xads = new ClientXADataSource();
+        xads.setDatabaseName("wombat");
+
+        System.out.println("XADataSource - connectionAttribute=traceFile=filename");
+        coretraceFile = "trace5.out";
+        traceFile = traceDirectory + coretraceFile;
+        xads.setConnectionAttributes("traceFile="+traceFile);
+        dsConnectionRequests((XADataSource) xads);
+        // TODO: log bug, like trace3.out, trace5.out does not get created
+        assertTraceFileExists(traceFile, coretraceFile);
+        xads.setConnectionAttributes(null);
+
+        System.out.println("XADataSource - setTraceFile property");
+        coretraceFile = "trace6.out";
+        traceFile = traceDirectory + coretraceFile;
+        xads.setTraceFile(traceFile);
+        dsConnectionRequests((XADataSource)xads);
+        assertTraceFileExists(traceFile, coretraceFile);
+        xads.setTraceFile(null);
+        xads.setDatabaseName(null);
+	}
+        
+	/**
+	 * Check that trace file exists in <framework> directory
+	 * 
+	 * @param filename Name of trace file
+	 */
+	private static void assertTraceFileExists(
+	        String filename, String corefileName) 
+	{
+	    File traceFile = new File(filename);
+	    //System.out.println("user.dir=" + System.getProperty("user.dir"));
+	    //System.out.println("fullpath = " + traceFile.getAbsolutePath());
+	    boolean exists = traceFile.exists();
+	    if (! exists)
+	        // new Exception("FAILED trace file: " + filename + " does not exist").printStackTrace(System.out);
+	        new Exception("FAILED trace file: " + corefileName + " does not exist").printStackTrace(System.out); 
+	    else
+	        System.out.println(" trace file exists");
+
+	}
+
+	/**
+	 * Check that messageText connection attribute functions correctly.
+	 * retrievemessagetext was tested in checkdriver, and derbynet/testij,
+	 * but not tested for datasources, and in datasourcepermissions_net,
+	 * but as it has nothing to do with permissions/authentication,
+	 * this test seems a better place for it. 
+	 *  
+	 * @throws SQLException
+	 */
+	private static void testClientMessageTextDSConnectionAttribute() throws SQLException {
+
+	    String retrieveMessageTextProperty = "retrieveMessageText";
+	    Connection conn;
+
+	    // DataSource
+	    System.out.println("DataSource - retrieveMessageTextProperty");
+	    ClientDataSource ds = new ClientDataSource();
+	    ds.setDatabaseName("wombat");
+	    ds.setConnectionAttributes(retrieveMessageTextProperty + "=false");
+	    dsConnectionRequests(ds);
+	    conn = ds.getConnection();
+	    checkMessageText(conn,"false");
+	    conn.close();
+	    // now try with retrieveMessageText = true
+	    ds.setConnectionAttributes(retrieveMessageTextProperty + "=true");
 	    dsConnectionRequests(ds);
-	    assertTraceFileExists(traceFile, coretraceFile);
-            ds.setTraceFile(null);
-	    ds.setDatabaseName(null);
+	    conn = ds.getConnection();
+	    checkMessageText(conn,"true");
+	    ds.setConnectionAttributes(null);
+	    conn.close();
 
 	    // now with ConnectionPoolDataSource
+	    System.out.println("ConnectionPoolDataSource - retrieveMessageTextProperty");
 	    ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
-            cpds.setDatabaseName("wombat");
-
-            System.out.println("ConnectionPoolDataSource - connectionAttribute=traceFile=filename");
-            coretraceFile = "trace3.out";
-            traceFile = traceDirectory + coretraceFile;
-	    cpds.setConnectionAttributes("traceFile="+traceFile);
+	    cpds.setDatabaseName("wombat");
+	    cpds.setConnectionAttributes(
+	            retrieveMessageTextProperty + "=false");
 	    dsConnectionRequests((ConnectionPoolDataSource)cpds);
-            // TODO: log bug - trace3.out does not get created
-	    assertTraceFileExists(traceFile, coretraceFile);
-            cpds.setConnectionAttributes(null);
-
-            System.out.println("ConnectionPoolDataSource - setTraceFile property");
-            coretraceFile = "trace4.out";
-            traceFile = traceDirectory + coretraceFile;
-	    cpds.setTraceFile(traceFile);
+	    conn = cpds.getConnection();
+	    checkMessageText(conn,"false");
+	    conn.close();
+	    cpds.setConnectionAttributes(
+	            retrieveMessageTextProperty + "=true");
 	    dsConnectionRequests((ConnectionPoolDataSource)cpds);
-	    assertTraceFileExists(traceFile, coretraceFile);
-            cpds.setTraceFile(null);
-	    cpds.setDatabaseName(null);
+	    conn = cpds.getConnection();
+	    checkMessageText(conn,"true");
+	    cpds.setConnectionAttributes(null);
+	    conn.close();
 
 	    // now with XADataSource
 	    ClientXADataSource xads = new ClientXADataSource();
-            xads.setDatabaseName("wombat");
-            
-	    System.out.println("XADataSource - connectionAttribute=traceFile=filename");
-            coretraceFile = "trace5.out";
-            traceFile = traceDirectory + coretraceFile;
-	    xads.setConnectionAttributes("traceFile="+traceFile);
+	    System.out.println("XADataSource - retrieveMessageTextProperty");
+	    xads.setDatabaseName("wombat");
+	    xads.setConnectionAttributes(
+	            retrieveMessageTextProperty + "=false");
+	    dsConnectionRequests((XADataSource) xads);
+	    conn = xads.getConnection();
+	    checkMessageText(conn,"false");
+	    conn.close();
+	    xads.setConnectionAttributes(
+	            retrieveMessageTextProperty + "=true");
 	    dsConnectionRequests((XADataSource) xads);
-            // TODO: log bug, like trace3.out, trace5.out does not get created
-            assertTraceFileExists(traceFile, coretraceFile);
+	    conn = xads.getConnection();
+	    checkMessageText(conn,"true");
+	    conn.close();
 	    xads.setConnectionAttributes(null);
-
-            System.out.println("XADataSource - setTraceFile property");
-            coretraceFile = "trace6.out";
-            traceFile = traceDirectory + coretraceFile;
-	    xads.setTraceFile(traceFile);
-	    dsConnectionRequests((XADataSource)xads);
-	    assertTraceFileExists(traceFile, coretraceFile);
-            xads.setTraceFile(null);
-	    xads.setDatabaseName(null);
 	}
-        
-        /**
-         * Check that trace file exists in <framework> directory
-         * 
-         * @param filename Name of trace file
-         */
-        private static void assertTraceFileExists(
-                String filename, String corefileName) 
-        {
-                File traceFile = new File(filename);
-                //System.out.println("user.dir=" + System.getProperty("user.dir"));
-                //System.out.println("fullpath = " + traceFile.getAbsolutePath());
-                boolean exists = traceFile.exists();
-                if (! exists)
-                        // new Exception("FAILED trace file: " + filename + " does not exist").printStackTrace(System.out);
-                    new Exception("FAILED trace file: " + corefileName + " does not exist").printStackTrace(System.out); 
-                else
-                        System.out.println(" trace file exists");
-                        
-        }
-        
-        /**
-         * Check that messageText connection attribute functions correctly.
-         * retrievemessagetext was tested in checkdriver, and derbynet/testij,
-         * but not tested for datasources, and in datasourcepermissions_net,
-         * but as it has nothing to do with permissions/authentication,
-         * this test seems a better place for it. 
-         *  
-         * @throws SQLException
-         */
-        private static void testClientMessageTextDSConnectionAttribute() throws SQLException {
-
-            String retrieveMessageTextProperty = "retrieveMessageText";
-            Connection conn;
-
-            // DataSource
-            System.out.println("DataSource - retrieveMessageTextProperty");
-            ClientDataSource ds = new ClientDataSource();
-            ds.setDatabaseName("wombat");
-            ds.setConnectionAttributes(retrieveMessageTextProperty + "=false");
-            dsConnectionRequests(ds);
-            conn = ds.getConnection();
-            checkMessageText(conn,"false");
-            conn.close();
-            // now try with retrieveMessageText = true
-            ds.setConnectionAttributes(retrieveMessageTextProperty + "=true");
-            dsConnectionRequests(ds);
-            conn = ds.getConnection();
-            checkMessageText(conn,"true");
-            ds.setConnectionAttributes(null);
-            conn.close();
-                
-            // now with ConnectionPoolDataSource
-            System.out.println("ConnectionPoolDataSource - retrieveMessageTextProperty");
-            ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
-            cpds.setDatabaseName("wombat");
-            cpds.setConnectionAttributes(
-                    retrieveMessageTextProperty + "=false");
-            dsConnectionRequests((ConnectionPoolDataSource)cpds);
-            conn = cpds.getConnection();
-            checkMessageText(conn,"false");
-            conn.close();
-            cpds.setConnectionAttributes(
-                    retrieveMessageTextProperty + "=true");
-            dsConnectionRequests((ConnectionPoolDataSource)cpds);
-            conn = cpds.getConnection();
-            checkMessageText(conn,"true");
-            cpds.setConnectionAttributes(null);
-            conn.close();
-
-            // now with XADataSource
-            ClientXADataSource xads = new ClientXADataSource();
-            System.out.println("XADataSource - retrieveMessageTextProperty");
-            xads.setDatabaseName("wombat");
-            xads.setConnectionAttributes(
-                    retrieveMessageTextProperty + "=false");
-            dsConnectionRequests((XADataSource) xads);
-            conn = xads.getConnection();
-            checkMessageText(conn,"false");
-            conn.close();
-            xads.setConnectionAttributes(
-                    retrieveMessageTextProperty + "=true");
-            dsConnectionRequests((XADataSource) xads);
-            conn = xads.getConnection();
-            checkMessageText(conn,"true");
-            conn.close();
-            xads.setConnectionAttributes(null);
-        }
 
-        public static void checkMessageText(Connection conn, String
-                retrieveMessageTextValue) throws SQLException
-                {
-            System.out.println("** checkMessageText() with retrieveMessageText= " +
-                    retrieveMessageTextValue);
+	public static void checkMessageText(
+        Connection conn, String retrieveMessageTextValue) 
+    throws SQLException
+    {
+	    System.out.println("** checkMessageText() with retrieveMessageText= " +
+	            retrieveMessageTextValue);
 
-            try {
-                conn.createStatement().executeQuery("SELECT * FROM APP.NOTTHERE");
-            }
-            catch (SQLException e)
+	    try {
+	        conn.createStatement().executeQuery("SELECT * FROM APP.NOTTHERE");
+	    }
+	    catch (SQLException e)
+	    {
+	        String expectedSQLState = "42X05";
+	        String sqlState = e.getSQLState();
+	        if (sqlState == null || ! sqlState.equals(expectedSQLState))
+	        {
+	            System.out.println("Incorrect SQLState.  Got: " + sqlState +
+	                    " should be: " + expectedSQLState);
+	            throw e;
+	        }
+	        if (retrieveMessageTextValue.equals("true") )
+	        {
+	            if (e.getMessage().indexOf("does not exist") != -1)
+	                System.out.println("PASS: Message Text retrieved properly");
+	            else
+	            {
+	                System.out.println("FAIL: Message text was not retrieved");
+	                throw e;
+	            }
+	        }
+	        else
             {
-                String expectedSQLState = "42X05";
-                String sqlState = e.getSQLState();
-                if (sqlState == null || ! sqlState.equals(expectedSQLState))
-                {
-                    System.out.println("Incorrect SQLState.  Got: " + sqlState +
-                            " should be: " + expectedSQLState);
-                    throw e;
-                }
-                if (retrieveMessageTextValue.equals("true") )
-                {
-                    if (e.getMessage().indexOf("does not exist") != -1)
-                        System.out.println("PASS: Message Text retrieved properly");
-                    else
-                    {
-                        System.out.println("FAIL: Message text was not retrieved");
-                        throw e;
-                    }
-                }
-                else
-//                  retrieveMessageTextValue is false
-                    if (e.getMessage().indexOf("does not exist") == -1)
-                    {
-                        System.out.println("PASS: Message text not retrieved");
-                    }
-                    else
-                    {
-                        System.out.println("FAIL: Message Text should not have been retrieved");
-                        throw e;
-                    }
-
-            }
+                // retrieveMessageTextValue is false
+	            if (e.getMessage().indexOf("does not exist") == -1)
+	            {
+	                System.out.println("PASS: Message text not retrieved");
+	            }
+	            else
+	            {
+	                System.out.println("FAIL: Message Text should not have been retrieved");
+	                throw e;
+	            }	           
+	        }
         }
+    }
 
-        /**
-         * Check that messageText connection attribute functions correctly.
-         * retrievemessagetext was tested in checkdriver, and derbynet/testij,
-         * but not tested for datasources, and in datasourcepermissions_net,
-         *  but as it has nothing to do with permissions/authentication,
-         *  this test seems a better place for it. 
-         *  
-         * @throws SQLException
-         */
-        private static void testClientDescriptionDSConnectionAttribute() throws SQLException, Exception {
-
-            // DataSource
-            String setDescription = "Everything you ever wanted to know about this datasource";
-            String getDescription;
-            Connection conn;
-            
-            System.out.println("DataSource - setDescription");
-            ClientDataSource ds = new ClientDataSource();
-            ds.setDatabaseName("wombat");
-            ds.setDescription(setDescription);
-            conn = ds.getConnection();
-            getDescription = ds.getDescription();
-            if (!setDescription.equals(getDescription))
-                throw new Exception("getDescription() " + getDescription 
-                        + " does not match setDescription() ");
-            ds.setDescription(null);
-            conn.close();
+	/**
+	 * Check that messageText connection attribute functions correctly.
+	 * retrievemessagetext was tested in checkdriver, and derbynet/testij,
+	 * but not tested for datasources, and in datasourcepermissions_net,
+	 *  but as it has nothing to do with permissions/authentication,
+	 *  this test seems a better place for it. 
+	 *  
+	 * @throws SQLException
+	 */
+	private static void testClientDescriptionDSConnectionAttribute() throws SQLException, Exception {
 
-            System.out.println("ConnectionPoolDataSource - setDescription");
-            ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
-            cpds.setDatabaseName("wombat");
-            cpds.setDescription(setDescription);
-            conn = cpds.getConnection();
-            getDescription = cpds.getDescription();
-            if (!setDescription.equals(getDescription))
-                throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
-            conn.close();
-            cpds.setDescription(null);
+	    // DataSource
+	    String setDescription = "Everything you ever wanted to know about this datasource";
+	    String getDescription;
+	    Connection conn;
 
-            ClientXADataSource xads = new ClientXADataSource();
-            System.out.println("XADataSource - setDescription");
-            xads.setDatabaseName("wombat");
-            xads.setDescription(setDescription);
-            conn = xads.getConnection();
-            getDescription = xads.getDescription();
-            if (!setDescription.equals(getDescription))
-                throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
-            conn.close();
-            xads.setDescription(null);
-        }
+	    System.out.println("DataSource - setDescription");
+	    ClientDataSource ds = new ClientDataSource();
+	    ds.setDatabaseName("wombat");
+	    ds.setDescription(setDescription);
+	    conn = ds.getConnection();
+	    getDescription = ds.getDescription();
+	    if (!setDescription.equals(getDescription))
+	        throw new Exception("getDescription() " + getDescription 
+	                + " does not match setDescription() ");
+	    ds.setDescription(null);
+	    conn.close();
+
+	    System.out.println("ConnectionPoolDataSource - setDescription");
+	    ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
+	    cpds.setDatabaseName("wombat");
+	    cpds.setDescription(setDescription);
+	    conn = cpds.getConnection();
+	    getDescription = cpds.getDescription();
+	    if (!setDescription.equals(getDescription))
+	        throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
+	    conn.close();
+	    cpds.setDescription(null);
+
+	    ClientXADataSource xads = new ClientXADataSource();
+	    System.out.println("XADataSource - setDescription");
+	    xads.setDatabaseName("wombat");
+	    xads.setDescription(setDescription);
+	    conn = xads.getConnection();
+	    getDescription = xads.getDescription();
+	    if (!setDescription.equals(getDescription))
+	        throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
+	    conn.close();
+	    xads.setDescription(null);
+	}
 
 	private static void dsConnectionRequests(DataSource ds) {
 		



Re: svn commit: r518875 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests: derbynet/NSSecurityMechanismTest.java derbynet/_Suite.java jdbcapi/AuthenticationTest.java jdbcapi/_Suite.java jdbcapi/checkDataSource.java

Posted by Myrna van Lunteren <m....@gmail.com>.
On 3/15/07, myrnavl@apache.org <my...@apache.org> wrote:
> Author: myrnavl
> Date: Thu Mar 15 23:58:22 2007
> New Revision: 518875
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=518875
> Log:
> DERBY-1982 - now that the build level is jdk14, we don't need a separate sectionanymore for jdk13/jdk14 tests in _Suite.java. Also removed the supportsJDBC20 section and moved the one test under supportsJDBC30.
> Also added a very few whitespace changes; all addsuite statements in the main section now have 2 tabs in front of them.
>
> Modified:
>    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java
>    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java
>    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
>    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
>    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
>
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java

oops!  I meant to only commit jdbcapi/_Suite.java...

The rest of the changes are (really!) minor changes belonging to DERBY-1496.
Is there a way to split the commit up after the fact? (I don't think a
revert is needed, I tested jdbcapi and derbynet _Suites.) If not, I'll
figure out how to update the comment and just make it refer to both
bugs.

Myrna

Re: svn commit: r518875 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests: derbynet/NSSecurityMechanismTest.java derbynet/_Suite.java jdbcapi/AuthenticationTest.java jdbcapi/_Suite.java jdbcapi/checkDataSource.java

Posted by Myrna van Lunteren <m....@gmail.com>.
On 3/16/07, Kristian Waagan <Kr...@sun.com> wrote:
> Hi,
>
> When I run suites.All I get lots of errors (40) and my "premature guess"
> is that this commit is the reason. All the errors look like this:
> Time: 1,131.236
> There were 40 errors:
> 1) LangScripts:clientjava.lang.Exception: DRDA_InvalidValue.U:Invalid
> value, , for derby.drda.securityMechanism.

The one thing I think would cause that is the addition of
NSSecurityMechanismTest to derbynet/_Suite.java. I'll back out that
change.
With apologies

Myrna

Re: svn commit: r518875 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests: derbynet/NSSecurityMechanismTest.java derbynet/_Suite.java jdbcapi/AuthenticationTest.java jdbcapi/_Suite.java jdbcapi/checkDataSource.java

Posted by Kristian Waagan <Kr...@Sun.COM>.
Hi,

When I run suites.All I get lots of errors (40) and my "premature guess" 
is that this commit is the reason. All the errors look like this:
Time: 1,131.236
There were 40 errors:
1) LangScripts:clientjava.lang.Exception: DRDA_InvalidValue.U:Invalid 
value, , for derby.drda.securityMechanism.
	at 
org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(NetworkServerControlImpl.java:2937)
	at 
org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(NetworkServerControlImpl.java:1625)
	at 
org.apache.derby.impl.drda.NetworkServerControlImpl.setSecurityMechanism(NetworkServerControlImpl.java:3235)
	at 
org.apache.derby.impl.drda.NetworkServerControlImpl.getPropertyInfo(NetworkServerControlImpl.java:2747)
	at 
org.apache.derby.impl.drda.NetworkServerControlImpl.<init>(NetworkServerControlImpl.java:376)
	at 
org.apache.derby.drda.NetworkServerControl.<init>(NetworkServerControl.java:204)
	at 
org.apache.derbyTesting.junit.NetworkServerTestSetup.getNetworkServerControl(NetworkServerTestSetup.java:269)
	at 
org.apache.derbyTesting.junit.NetworkServerTestSetup.setUp(NetworkServerTestSetup.java:107)
	at junit.extensions.TestSetup$1.protect(TestSetup.java:20)
	at junit.extensions.TestSetup.run(TestSetup.java:25)
	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
	at junit.extensions.TestSetup.run(TestSetup.java:25)


Unless this is taken care of during the day by someone else, I'll back 
out the commit or see if I can quickly find the cause.



-- 
Kristian

myrnavl@apache.org wrote:
> Author: myrnavl
> Date: Thu Mar 15 23:58:22 2007
> New Revision: 518875
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=518875
> Log:
> DERBY-1982 - now that the build level is jdk14, we don't need a separate sectionanymore for jdk13/jdk14 tests in _Suite.java. Also removed the supportsJDBC20 section and moved the one test under supportsJDBC30.
> Also added a very few whitespace changes; all addsuite statements in the main section now have 2 tabs in front of them. 
> 
> Modified:
>     db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java
>     db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java
>     db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
>     db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
>     db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
> 
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java?view=diff&rev=518875&r1=518874&r2=518875
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NSSecurityMechanismTest.java Thu Mar 15 23:58:22 2007
> @@ -352,7 +352,7 @@
>  
>          // shut down the server
>          server.shutdown();
> -        Thread.sleep(1000);
> +        Thread.sleep(500);
>          } catch (Exception e) {
>              if (!(e.getMessage().substring(0,17).equals("DRDA_InvalidValue")))
>              {
> @@ -383,7 +383,7 @@
>              server2.start(null);
>              // TODO: sleep ridiculously long, otherwise getting 08001 errors
>              //       even when the server is up.
> -            Thread.sleep(120000);
> +            Thread.sleep(80000);
>              
>              if (derby_drda_securityMechanism.equals("") ||
>                  derby_drda_securityMechanism.equals("INVALID_VALUE"))
> @@ -805,7 +805,6 @@
>                      getJDBCUrl(urlAttributes), "Test:", 
>                      getExpectedValueFromAll(expectedValues, k, j, 4));
>                  getDataSourceConnection(USER_ATTRIBUTE[k],PWD_ATTRIBUTE[j],
> -                    "TEST_DS("+urlAttributes+")", 
>                      getExpectedValueFromAll(expectedValues, k, j, 4));
>  
>                  for (int i = 0; i < SECMEC_ATTRIBUTE.length; i++) {
> @@ -882,7 +881,7 @@
>       * @param msg message to print for testcase
>       */
>      public void getDataSourceConnection(
> -        String user, String password,String msg, String expectedValue)
> +        String user, String password, String expectedValue)
>      {
>          Connection conn;
>          DataSource ds = getDS(user, password);
> @@ -996,9 +995,6 @@
>              fail("should not have failed");
>          }
>          
> -        // TODO: using this with ibm15 results in 42X05 - table does not exist
> -        //assertTableRowCount("sys.systables", 1);
> -        
>          if(rs != null)
>              rs.close();
>          if(stmt != null)
> @@ -1096,7 +1092,7 @@
>          try
>          {
>              println("Turning ON Derby BUILTIN authentication");
> -            Connection conn = getConnectionWithSecMec(
> +            Connection conn = getDataSourceConnectionWithSecMec(
>                  "neelima", "lee", new Short(SECMEC_USRSSBPWD));
>              if (conn == null)
>                  return; // Exception would have been raised
> @@ -1151,7 +1147,7 @@
>                  "TEST_DS - USRSSBPWD + BUILTIN (T4):", expectedValues[3]);
>  
>              // Prepare to turn OFF Derby BUILTIN authentication
> -            conn = getConnectionWithSecMec("neelima", "lee",
> +            conn = getDataSourceConnectionWithSecMec("neelima", "lee",
>                  new Short(SECMEC_USRSSBPWD));
>              if (conn == null)
>                  return; // Exception would have been raised
> @@ -1180,9 +1176,8 @@
>          }
>      }
>      
> -    public Connection getConnectionWithSecMec(String user,
> -        String password,
> -        Short secMec)
> +    public Connection getDataSourceConnectionWithSecMec(
> +        String user, String password, Short secMec)
>      {
>          Connection conn = null;
>          String securityMechanismProperty = "SecurityMechanism";
> @@ -1200,13 +1195,13 @@
>          catch (SQLException sqle)
>          {
>              // Exceptions expected in certain cases depending on JCE used for 
> -            // running the test.
> -            dumpSQLException(sqle.getNextException());
> -            assertSQLState("11111", sqle);
> +            // running the test, but in this case, we don't expect any
> +            // sqlexceptions
> +            fail("did not expect an sqlexception.");
>          }
>          catch (Exception e)
>          {
> -            fail("did not expect exception");
> +            fail("did not expect exception.");
>          }
>          return conn;
>      }
> 
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java?view=diff&rev=518875&r1=518874&r2=518875
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/_Suite.java Thu Mar 15 23:58:22 2007
> @@ -53,6 +53,7 @@
>          suite.addTest(BadConnectionTest.suite());
>          suite.addTest(NetHarnessJavaTest.suite());
>          suite.addTest(SecureServerTest.suite());
> +        suite.addTest(NSSecurityMechanismTest.suite());
>          
>          // These tests references a client class directly
>          // thus causing class not found exceptions if the
> 
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java?view=diff&rev=518875&r1=518874&r2=518875
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AuthenticationTest.java Thu Mar 15 23:58:22 2007
> @@ -562,6 +562,10 @@
>          conn1.close();
>      }
>      
> +    // verify that the return value is the expected value, and 
> +    // we have the expected number of rows returning from the query
> +    // in this test, it will be one of the user names through
> +    // use of CURRENT_USER, SESSION_USER etc.
>      protected void assertUserValue(
>          String[] expected, String user, String password, String sql)
>      throws SQLException
> @@ -587,6 +591,7 @@
>          assertUserValue(expected, user, (user + PASSWORD_SUFFIX), sql);
>      }
>      
> +    // get a connection using ds.getConnection(user, password)
>      protected void assertConnectionOK(
>           String dbName, String user, String password)
>      throws SQLException
> @@ -600,7 +605,7 @@
>          }
>      }
>      
> -    // getConnection(), using setConnectionAttributes
> +    // get a connection, using setUser / setPassword, and ds.getConnection()
>      protected void assertConnectionWOUPOK(
>          String dbName, String user, String password)
>      throws SQLException
> @@ -630,7 +635,9 @@
>          }
>      }
>  
> -    // connection without user and password
> +    // same action as with assertConnectionFail, but using ds.getConnection()
> +    // instead of ds.getConnection(user, password). So, setting user and
> +    // password using appropriate ds.set method.
>      protected void assertConnectionWOUPFail(
>          String expectedError, String dbName, String user, String password) 
>      throws SQLException 
> @@ -678,6 +685,9 @@
>          }
>      }
>  
> +    // same action as with assertShutdownOK, but using ds.getConnection()
> +    // instead of ds.getConnection(user, password). So, setting user and
> +    // password using appropriate ds.set method.
>      protected void assertShutdownWOUPOK(
>          String dbName, String user, String password)
>      throws SQLException {
> @@ -748,7 +758,7 @@
>      throws SQLException
>      {
>          // with DerbyNetClient there is no Datasource setShutdownDatabase 
> -        // method so can't use the setBeanProperty
> +        // method so can't use the same setBeanProperty as with embedded
>          if (usingEmbedded()) 
>          {
>              DataSource ds = JDBCDataSource.getDataSource(dbName);
> @@ -819,6 +829,7 @@
>          if (usingEmbedded())
>          {
>              DataSource ds = JDBCDataSource.getDataSource();
> +            JDBCDataSource.clearStringBeanProperty(ds, "databaseName");
>              JDBCDataSource.setBeanProperty(ds, "shutdownDatabase", "shutdown");
>              JDBCDataSource.setBeanProperty(ds, "user", user);
>              JDBCDataSource.setBeanProperty(ds, "password", password);
> @@ -833,6 +844,7 @@
>          {
>              ClientDataSource ds = 
>                  (ClientDataSource)JDBCDataSource.getDataSource();
> +            JDBCDataSource.clearStringBeanProperty(ds, "databaseName");
>              ds.setConnectionAttributes(
>                  "shutdown=true;user=" + user + ";password=" + password);
>              try {
> 
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java?view=diff&rev=518875&r1=518874&r2=518875
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java Thu Mar 15 23:58:22 2007
> @@ -49,14 +49,14 @@
>  
>  		suite.addTest(ConcurrencyTest.suite());
>  		suite.addTest(HoldabilityTest.suite());
> -        suite.addTest(LobLengthTest.suite()); 
> +		suite.addTest(LobLengthTest.suite()); 
>  		suite.addTest(ProcedureTest.suite());
>  		suite.addTest(SURQueryMixTest.suite());
>  		suite.addTest(SURTest.suite());
>  		suite.addTest(UpdatableResultSetTest.suite());
>  		suite.addTest(UpdateXXXTest.suite());
>  		suite.addTest(URCoveringIndexTest.suite());
> -        suite.addTest(ResultSetCloseTest.suite());
> +		suite.addTest(ResultSetCloseTest.suite());
>  		suite.addTest(BlobClob4BlobTest.suite());
>  		suite.addTest(CharacterStreamsTest.suite());
>  		suite.addTest(BatchUpdateTest.suite());
> @@ -64,42 +64,32 @@
>  		suite.addTest(DboPowersTest.suite());
>  		suite.addTest(BlobStoredProcedureTest.suite());
>  		suite.addTest(ClobStoredProcedureTest.suite());
> -                suite.addTest(CallableTest.suite());
> -                suite.addTest(ResultSetMiscTest.suite());
> -                suite.addTest(PrepStmtMetaDataTest.suite());
> +		suite.addTest(CallableTest.suite());
> +		suite.addTest(ResultSetMiscTest.suite());
> +		suite.addTest(PrepStmtMetaDataTest.suite());
> +		suite.addTest(ScrollResultSetTest.suite());
> +		suite.addTest(LobStreamsTest.suite());
> +		suite.addTest(ResultSetJDBC30Test.suite());
> +		suite.addTest(DatabaseMetaDataTest.suite());
> +		suite.addTest(ClosedObjectTest.suite());
>          
>          // Old harness .java tests that run using the HarnessJavaTest
>          // adapter and continue to use a single master file.
>          suite.addTest(JDBCHarnessJavaTest.suite());
>          
> -        if (JDBC.vmSupportsJDBC2())
> +        if (JDBC.vmSupportsJDBC3())
>          {
>              // Tests that do not run under JSR169
>              // DERBY-2403 blocks ParameterMappingTest from running
>              // under JSR169
>              suite.addTest(ParameterMappingTest.suite());
> -        
> -        }
> -        if (JDBC.vmSupportsJDBC3())
> -        {
> +
>              // Class requires javax.sql.PooledConnection
>              // even to load, even though the suite method
>              // is correctly implemented.
>              suite.addTest(DataSourcePropertiesTest.suite());
>          }
>  		
> -		// Tests that are compiled using 1.4 target need to
> -		// be added this way, otherwise creating the suite
> -		// will throw an invalid class version error
> -		if (JDBC.vmSupportsJDBC3() || JDBC.vmSupportsJSR169())
> -		{
> -			suite.addTest(ScrollResultSetTest.suite());
> -			suite.addTest(LobStreamsTest.suite());
> -			suite.addTest(ResultSetJDBC30Test.suite());
> -            suite.addTest(DatabaseMetaDataTest.suite());
> -            suite.addTest(ClosedObjectTest.suite());
> -		}
> -        
>          return suite;
>  	}
>  }
> 
> Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java
> URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java?view=diff&rev=518875&r1=518874&r2=518875
> ==============================================================================
> --- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java (original)
> +++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/checkDataSource.java Thu Mar 15 23:58:22 2007
> @@ -867,9 +867,9 @@
>                      ds.setDatabaseName("wombat");
>                      ds.setConnectionAttributes("bad");
>                      try {
> -                        // TODO: this gives XJ028 - url is badly formed, whereas
> -                        // all other datasources give XJ212 - invalid syntax for connatr.
> -                        // is this ok?
> +                        // Note: this gives XJ028 - url is badly formed, 
> +                        // whereas connectionPool and XA datasources give 
> +                        // XJ212 - invalid syntax for connatr.
>                          conn = ds.getConnection();
>                          conn.close();
>                          System.out.println("FAIL - should have seen an error");
> @@ -1629,7 +1629,7 @@
>          
>  	/**
>  	 * Check that traceFile connection attribute functions correctly.
> -         * tracefile was tested in checkDriver, but not for DataSources.
> +     * tracefile was tested in checkDriver, but not for DataSources.
>  	 * tracefile= was used in datasourcepermissions_net, but that's 
>  	 * incorrect syntax. Note that we're not checking the contents of
>  	 * the tracefile.
> @@ -1638,259 +1638,261 @@
>  	 */
>  	private static void testClientTraceFileDSConnectionAttribute() throws SQLException {
>  
> -	    String DERBY_SYSTEM_HOME = System.getProperty("derby.system.home");
> +        String DERBY_SYSTEM_HOME = System.getProperty("derby.system.home");
>  	    String traceDirectory = DERBY_SYSTEM_HOME + File.separator;
>  	    String traceFile;
>              String coretraceFile;
>              
>  	    // DataSource
>  	    ClientDataSource ds = new ClientDataSource();
> -            ds.setDatabaseName("wombat");
> +        ds.setDatabaseName("wombat");
>              
> -            System.out.println("DataSource - connectionAttribute=traceFile=filename");
> -            coretraceFile = "trace1.out";
> -            traceFile = traceDirectory + coretraceFile;
> -            ds.setConnectionAttributes("traceFile="+traceFile);
> -            dsConnectionRequests(ds);
> -            assertTraceFileExists(traceFile, coretraceFile);
> -            ds.setConnectionAttributes(null);
> -
> -            System.out.println("DataSource - setTraceFile property");
> -            coretraceFile = "trace2.out";
> -            traceFile = traceDirectory + coretraceFile;
> -            ds.setTraceFile(traceFile);
> +        System.out.println("DataSource - connectionAttribute=traceFile=filename");
> +        coretraceFile = "trace1.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        ds.setConnectionAttributes("traceFile="+traceFile);
> +        dsConnectionRequests(ds);
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        ds.setConnectionAttributes(null);
> +
> +        System.out.println("DataSource - setTraceFile property");
> +        coretraceFile = "trace2.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        ds.setTraceFile(traceFile);
> +        dsConnectionRequests(ds);
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        ds.setTraceFile(null);
> +        ds.setDatabaseName(null);
> +
> +        // now with ConnectionPoolDataSource
> +        ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
> +        cpds.setDatabaseName("wombat");
> +
> +        System.out.println("ConnectionPoolDataSource - connectionAttribute=traceFile=filename");
> +        coretraceFile = "trace3.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        cpds.setConnectionAttributes("traceFile="+traceFile);
> +        dsConnectionRequests((ConnectionPoolDataSource)cpds);
> +        // TODO: log bug - trace3.out does not get created
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        cpds.setConnectionAttributes(null);
> +
> +        System.out.println("ConnectionPoolDataSource - setTraceFile property");
> +        coretraceFile = "trace4.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        cpds.setTraceFile(traceFile);
> +        dsConnectionRequests((ConnectionPoolDataSource)cpds);
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        cpds.setTraceFile(null);
> +        cpds.setDatabaseName(null);
> +
> +        // now with XADataSource
> +        ClientXADataSource xads = new ClientXADataSource();
> +        xads.setDatabaseName("wombat");
> +
> +        System.out.println("XADataSource - connectionAttribute=traceFile=filename");
> +        coretraceFile = "trace5.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        xads.setConnectionAttributes("traceFile="+traceFile);
> +        dsConnectionRequests((XADataSource) xads);
> +        // TODO: log bug, like trace3.out, trace5.out does not get created
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        xads.setConnectionAttributes(null);
> +
> +        System.out.println("XADataSource - setTraceFile property");
> +        coretraceFile = "trace6.out";
> +        traceFile = traceDirectory + coretraceFile;
> +        xads.setTraceFile(traceFile);
> +        dsConnectionRequests((XADataSource)xads);
> +        assertTraceFileExists(traceFile, coretraceFile);
> +        xads.setTraceFile(null);
> +        xads.setDatabaseName(null);
> +	}
> +        
> +	/**
> +	 * Check that trace file exists in <framework> directory
> +	 * 
> +	 * @param filename Name of trace file
> +	 */
> +	private static void assertTraceFileExists(
> +	        String filename, String corefileName) 
> +	{
> +	    File traceFile = new File(filename);
> +	    //System.out.println("user.dir=" + System.getProperty("user.dir"));
> +	    //System.out.println("fullpath = " + traceFile.getAbsolutePath());
> +	    boolean exists = traceFile.exists();
> +	    if (! exists)
> +	        // new Exception("FAILED trace file: " + filename + " does not exist").printStackTrace(System.out);
> +	        new Exception("FAILED trace file: " + corefileName + " does not exist").printStackTrace(System.out); 
> +	    else
> +	        System.out.println(" trace file exists");
> +
> +	}
> +
> +	/**
> +	 * Check that messageText connection attribute functions correctly.
> +	 * retrievemessagetext was tested in checkdriver, and derbynet/testij,
> +	 * but not tested for datasources, and in datasourcepermissions_net,
> +	 * but as it has nothing to do with permissions/authentication,
> +	 * this test seems a better place for it. 
> +	 *  
> +	 * @throws SQLException
> +	 */
> +	private static void testClientMessageTextDSConnectionAttribute() throws SQLException {
> +
> +	    String retrieveMessageTextProperty = "retrieveMessageText";
> +	    Connection conn;
> +
> +	    // DataSource
> +	    System.out.println("DataSource - retrieveMessageTextProperty");
> +	    ClientDataSource ds = new ClientDataSource();
> +	    ds.setDatabaseName("wombat");
> +	    ds.setConnectionAttributes(retrieveMessageTextProperty + "=false");
> +	    dsConnectionRequests(ds);
> +	    conn = ds.getConnection();
> +	    checkMessageText(conn,"false");
> +	    conn.close();
> +	    // now try with retrieveMessageText = true
> +	    ds.setConnectionAttributes(retrieveMessageTextProperty + "=true");
>  	    dsConnectionRequests(ds);
> -	    assertTraceFileExists(traceFile, coretraceFile);
> -            ds.setTraceFile(null);
> -	    ds.setDatabaseName(null);
> +	    conn = ds.getConnection();
> +	    checkMessageText(conn,"true");
> +	    ds.setConnectionAttributes(null);
> +	    conn.close();
>  
>  	    // now with ConnectionPoolDataSource
> +	    System.out.println("ConnectionPoolDataSource - retrieveMessageTextProperty");
>  	    ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
> -            cpds.setDatabaseName("wombat");
> -
> -            System.out.println("ConnectionPoolDataSource - connectionAttribute=traceFile=filename");
> -            coretraceFile = "trace3.out";
> -            traceFile = traceDirectory + coretraceFile;
> -	    cpds.setConnectionAttributes("traceFile="+traceFile);
> +	    cpds.setDatabaseName("wombat");
> +	    cpds.setConnectionAttributes(
> +	            retrieveMessageTextProperty + "=false");
>  	    dsConnectionRequests((ConnectionPoolDataSource)cpds);
> -            // TODO: log bug - trace3.out does not get created
> -	    assertTraceFileExists(traceFile, coretraceFile);
> -            cpds.setConnectionAttributes(null);
> -
> -            System.out.println("ConnectionPoolDataSource - setTraceFile property");
> -            coretraceFile = "trace4.out";
> -            traceFile = traceDirectory + coretraceFile;
> -	    cpds.setTraceFile(traceFile);
> +	    conn = cpds.getConnection();
> +	    checkMessageText(conn,"false");
> +	    conn.close();
> +	    cpds.setConnectionAttributes(
> +	            retrieveMessageTextProperty + "=true");
>  	    dsConnectionRequests((ConnectionPoolDataSource)cpds);
> -	    assertTraceFileExists(traceFile, coretraceFile);
> -            cpds.setTraceFile(null);
> -	    cpds.setDatabaseName(null);
> +	    conn = cpds.getConnection();
> +	    checkMessageText(conn,"true");
> +	    cpds.setConnectionAttributes(null);
> +	    conn.close();
>  
>  	    // now with XADataSource
>  	    ClientXADataSource xads = new ClientXADataSource();
> -            xads.setDatabaseName("wombat");
> -            
> -	    System.out.println("XADataSource - connectionAttribute=traceFile=filename");
> -            coretraceFile = "trace5.out";
> -            traceFile = traceDirectory + coretraceFile;
> -	    xads.setConnectionAttributes("traceFile="+traceFile);
> +	    System.out.println("XADataSource - retrieveMessageTextProperty");
> +	    xads.setDatabaseName("wombat");
> +	    xads.setConnectionAttributes(
> +	            retrieveMessageTextProperty + "=false");
> +	    dsConnectionRequests((XADataSource) xads);
> +	    conn = xads.getConnection();
> +	    checkMessageText(conn,"false");
> +	    conn.close();
> +	    xads.setConnectionAttributes(
> +	            retrieveMessageTextProperty + "=true");
>  	    dsConnectionRequests((XADataSource) xads);
> -            // TODO: log bug, like trace3.out, trace5.out does not get created
> -            assertTraceFileExists(traceFile, coretraceFile);
> +	    conn = xads.getConnection();
> +	    checkMessageText(conn,"true");
> +	    conn.close();
>  	    xads.setConnectionAttributes(null);
> -
> -            System.out.println("XADataSource - setTraceFile property");
> -            coretraceFile = "trace6.out";
> -            traceFile = traceDirectory + coretraceFile;
> -	    xads.setTraceFile(traceFile);
> -	    dsConnectionRequests((XADataSource)xads);
> -	    assertTraceFileExists(traceFile, coretraceFile);
> -            xads.setTraceFile(null);
> -	    xads.setDatabaseName(null);
>  	}
> -        
> -        /**
> -         * Check that trace file exists in <framework> directory
> -         * 
> -         * @param filename Name of trace file
> -         */
> -        private static void assertTraceFileExists(
> -                String filename, String corefileName) 
> -        {
> -                File traceFile = new File(filename);
> -                //System.out.println("user.dir=" + System.getProperty("user.dir"));
> -                //System.out.println("fullpath = " + traceFile.getAbsolutePath());
> -                boolean exists = traceFile.exists();
> -                if (! exists)
> -                        // new Exception("FAILED trace file: " + filename + " does not exist").printStackTrace(System.out);
> -                    new Exception("FAILED trace file: " + corefileName + " does not exist").printStackTrace(System.out); 
> -                else
> -                        System.out.println(" trace file exists");
> -                        
> -        }
> -        
> -        /**
> -         * Check that messageText connection attribute functions correctly.
> -         * retrievemessagetext was tested in checkdriver, and derbynet/testij,
> -         * but not tested for datasources, and in datasourcepermissions_net,
> -         * but as it has nothing to do with permissions/authentication,
> -         * this test seems a better place for it. 
> -         *  
> -         * @throws SQLException
> -         */
> -        private static void testClientMessageTextDSConnectionAttribute() throws SQLException {
> -
> -            String retrieveMessageTextProperty = "retrieveMessageText";
> -            Connection conn;
> -
> -            // DataSource
> -            System.out.println("DataSource - retrieveMessageTextProperty");
> -            ClientDataSource ds = new ClientDataSource();
> -            ds.setDatabaseName("wombat");
> -            ds.setConnectionAttributes(retrieveMessageTextProperty + "=false");
> -            dsConnectionRequests(ds);
> -            conn = ds.getConnection();
> -            checkMessageText(conn,"false");
> -            conn.close();
> -            // now try with retrieveMessageText = true
> -            ds.setConnectionAttributes(retrieveMessageTextProperty + "=true");
> -            dsConnectionRequests(ds);
> -            conn = ds.getConnection();
> -            checkMessageText(conn,"true");
> -            ds.setConnectionAttributes(null);
> -            conn.close();
> -                
> -            // now with ConnectionPoolDataSource
> -            System.out.println("ConnectionPoolDataSource - retrieveMessageTextProperty");
> -            ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
> -            cpds.setDatabaseName("wombat");
> -            cpds.setConnectionAttributes(
> -                    retrieveMessageTextProperty + "=false");
> -            dsConnectionRequests((ConnectionPoolDataSource)cpds);
> -            conn = cpds.getConnection();
> -            checkMessageText(conn,"false");
> -            conn.close();
> -            cpds.setConnectionAttributes(
> -                    retrieveMessageTextProperty + "=true");
> -            dsConnectionRequests((ConnectionPoolDataSource)cpds);
> -            conn = cpds.getConnection();
> -            checkMessageText(conn,"true");
> -            cpds.setConnectionAttributes(null);
> -            conn.close();
> -
> -            // now with XADataSource
> -            ClientXADataSource xads = new ClientXADataSource();
> -            System.out.println("XADataSource - retrieveMessageTextProperty");
> -            xads.setDatabaseName("wombat");
> -            xads.setConnectionAttributes(
> -                    retrieveMessageTextProperty + "=false");
> -            dsConnectionRequests((XADataSource) xads);
> -            conn = xads.getConnection();
> -            checkMessageText(conn,"false");
> -            conn.close();
> -            xads.setConnectionAttributes(
> -                    retrieveMessageTextProperty + "=true");
> -            dsConnectionRequests((XADataSource) xads);
> -            conn = xads.getConnection();
> -            checkMessageText(conn,"true");
> -            conn.close();
> -            xads.setConnectionAttributes(null);
> -        }
>  
> -        public static void checkMessageText(Connection conn, String
> -                retrieveMessageTextValue) throws SQLException
> -                {
> -            System.out.println("** checkMessageText() with retrieveMessageText= " +
> -                    retrieveMessageTextValue);
> +	public static void checkMessageText(
> +        Connection conn, String retrieveMessageTextValue) 
> +    throws SQLException
> +    {
> +	    System.out.println("** checkMessageText() with retrieveMessageText= " +
> +	            retrieveMessageTextValue);
>  
> -            try {
> -                conn.createStatement().executeQuery("SELECT * FROM APP.NOTTHERE");
> -            }
> -            catch (SQLException e)
> +	    try {
> +	        conn.createStatement().executeQuery("SELECT * FROM APP.NOTTHERE");
> +	    }
> +	    catch (SQLException e)
> +	    {
> +	        String expectedSQLState = "42X05";
> +	        String sqlState = e.getSQLState();
> +	        if (sqlState == null || ! sqlState.equals(expectedSQLState))
> +	        {
> +	            System.out.println("Incorrect SQLState.  Got: " + sqlState +
> +	                    " should be: " + expectedSQLState);
> +	            throw e;
> +	        }
> +	        if (retrieveMessageTextValue.equals("true") )
> +	        {
> +	            if (e.getMessage().indexOf("does not exist") != -1)
> +	                System.out.println("PASS: Message Text retrieved properly");
> +	            else
> +	            {
> +	                System.out.println("FAIL: Message text was not retrieved");
> +	                throw e;
> +	            }
> +	        }
> +	        else
>              {
> -                String expectedSQLState = "42X05";
> -                String sqlState = e.getSQLState();
> -                if (sqlState == null || ! sqlState.equals(expectedSQLState))
> -                {
> -                    System.out.println("Incorrect SQLState.  Got: " + sqlState +
> -                            " should be: " + expectedSQLState);
> -                    throw e;
> -                }
> -                if (retrieveMessageTextValue.equals("true") )
> -                {
> -                    if (e.getMessage().indexOf("does not exist") != -1)
> -                        System.out.println("PASS: Message Text retrieved properly");
> -                    else
> -                    {
> -                        System.out.println("FAIL: Message text was not retrieved");
> -                        throw e;
> -                    }
> -                }
> -                else
> -//                  retrieveMessageTextValue is false
> -                    if (e.getMessage().indexOf("does not exist") == -1)
> -                    {
> -                        System.out.println("PASS: Message text not retrieved");
> -                    }
> -                    else
> -                    {
> -                        System.out.println("FAIL: Message Text should not have been retrieved");
> -                        throw e;
> -                    }
> -
> -            }
> +                // retrieveMessageTextValue is false
> +	            if (e.getMessage().indexOf("does not exist") == -1)
> +	            {
> +	                System.out.println("PASS: Message text not retrieved");
> +	            }
> +	            else
> +	            {
> +	                System.out.println("FAIL: Message Text should not have been retrieved");
> +	                throw e;
> +	            }	           
> +	        }
>          }
> +    }
>  
> -        /**
> -         * Check that messageText connection attribute functions correctly.
> -         * retrievemessagetext was tested in checkdriver, and derbynet/testij,
> -         * but not tested for datasources, and in datasourcepermissions_net,
> -         *  but as it has nothing to do with permissions/authentication,
> -         *  this test seems a better place for it. 
> -         *  
> -         * @throws SQLException
> -         */
> -        private static void testClientDescriptionDSConnectionAttribute() throws SQLException, Exception {
> -
> -            // DataSource
> -            String setDescription = "Everything you ever wanted to know about this datasource";
> -            String getDescription;
> -            Connection conn;
> -            
> -            System.out.println("DataSource - setDescription");
> -            ClientDataSource ds = new ClientDataSource();
> -            ds.setDatabaseName("wombat");
> -            ds.setDescription(setDescription);
> -            conn = ds.getConnection();
> -            getDescription = ds.getDescription();
> -            if (!setDescription.equals(getDescription))
> -                throw new Exception("getDescription() " + getDescription 
> -                        + " does not match setDescription() ");
> -            ds.setDescription(null);
> -            conn.close();
> +	/**
> +	 * Check that messageText connection attribute functions correctly.
> +	 * retrievemessagetext was tested in checkdriver, and derbynet/testij,
> +	 * but not tested for datasources, and in datasourcepermissions_net,
> +	 *  but as it has nothing to do with permissions/authentication,
> +	 *  this test seems a better place for it. 
> +	 *  
> +	 * @throws SQLException
> +	 */
> +	private static void testClientDescriptionDSConnectionAttribute() throws SQLException, Exception {
>  
> -            System.out.println("ConnectionPoolDataSource - setDescription");
> -            ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
> -            cpds.setDatabaseName("wombat");
> -            cpds.setDescription(setDescription);
> -            conn = cpds.getConnection();
> -            getDescription = cpds.getDescription();
> -            if (!setDescription.equals(getDescription))
> -                throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
> -            conn.close();
> -            cpds.setDescription(null);
> +	    // DataSource
> +	    String setDescription = "Everything you ever wanted to know about this datasource";
> +	    String getDescription;
> +	    Connection conn;
>  
> -            ClientXADataSource xads = new ClientXADataSource();
> -            System.out.println("XADataSource - setDescription");
> -            xads.setDatabaseName("wombat");
> -            xads.setDescription(setDescription);
> -            conn = xads.getConnection();
> -            getDescription = xads.getDescription();
> -            if (!setDescription.equals(getDescription))
> -                throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
> -            conn.close();
> -            xads.setDescription(null);
> -        }
> +	    System.out.println("DataSource - setDescription");
> +	    ClientDataSource ds = new ClientDataSource();
> +	    ds.setDatabaseName("wombat");
> +	    ds.setDescription(setDescription);
> +	    conn = ds.getConnection();
> +	    getDescription = ds.getDescription();
> +	    if (!setDescription.equals(getDescription))
> +	        throw new Exception("getDescription() " + getDescription 
> +	                + " does not match setDescription() ");
> +	    ds.setDescription(null);
> +	    conn.close();
> +
> +	    System.out.println("ConnectionPoolDataSource - setDescription");
> +	    ClientConnectionPoolDataSource cpds = new ClientConnectionPoolDataSource();
> +	    cpds.setDatabaseName("wombat");
> +	    cpds.setDescription(setDescription);
> +	    conn = cpds.getConnection();
> +	    getDescription = cpds.getDescription();
> +	    if (!setDescription.equals(getDescription))
> +	        throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
> +	    conn.close();
> +	    cpds.setDescription(null);
> +
> +	    ClientXADataSource xads = new ClientXADataSource();
> +	    System.out.println("XADataSource - setDescription");
> +	    xads.setDatabaseName("wombat");
> +	    xads.setDescription(setDescription);
> +	    conn = xads.getConnection();
> +	    getDescription = xads.getDescription();
> +	    if (!setDescription.equals(getDescription))
> +	        throw new Exception("getDescription() " + getDescription + " does not match setDescription() ");
> +	    conn.close();
> +	    xads.setDescription(null);
> +	}
>  
>  	private static void dsConnectionRequests(DataSource ds) {
>  		
> 
>