This patch fixes derbynet/testSecMec.java  test failure on 131 vms.

Problem - with 131 vms, if server and client are in the same jvm, on a second get connection with create=true attribute in the url, there is a hang.

Basically,
-- the first getConnection works ok
-- but on the second getConnection, a SQLWarning needs to be generated to say that the database already exists and in this scenario, it seems like at the point where it is creating a SQLWarning , there is a deadlock. The call to SQLWarning constructor does not return. On doing a java core dump , the thread in question seems to be in a wait state (conditional wait). Guess is it has to do with the driver manager lock


I will file a jira entry to track this issue but for the test in question, changes were made to not use create=true except for the first connection.

-- ran this test for both DerbyClient and JCC driver on both corresponding versions 131,141 ,142 on both IBM and Sun jdks. Also tested it on sun jdk 1.5.0.
-- ran derbynetmats on jdk142 ok.
-- ran derbynetclientmats on ibm131 ok.


svn stat
M java\testing\org\apache\derbyTesting\functionTests\tests\derbynet\testSecMec.java
M java\testing\org\apache\derbyTesting\functionTests\master\DerbyNet\testSecMec.out
M java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\testSecMec.out


If it looks ok, can a committer please commit these test changes.

Thanks,
Sunitha.
Index: 
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java
===================================================================
--- 
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java
   (revision 170422)
+++ 
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/testSecMec.java
   (working copy)
@@ -145,18 +145,18 @@
                // different security mechanisms.
                // Network server supports SECMEC_USRIDPWD, 
SECMEC_USRIDONL,SECMEC_EUSRIDPWD
                System.out.println("Checking security mechanism authentication 
with DriverManager");
-               
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true",null),"T1:");
-               
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=max"),"T2:");
-               
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;password=lee"),"T3:");
                
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;password=lee;securityMechanism="+SECMEC_USRIDPWD),"T4:");
+               
getConnectionUsingDriverManager(getJDBCUrl("wombat",null),"T1:");
+               
getConnectionUsingDriverManager(getJDBCUrl("wombat","user=max"),"T2:");
+               
getConnectionUsingDriverManager(getJDBCUrl("wombat","user=neelima;password=lee"),"T3:");
                 // Disable because ibm142 doesnt support DiffieHelman prime of 
32 bytes
                 // Also Sun JCE doesnt support it.
-               
//getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;password=lee;securityMechanism="+SECMEC_EUSRIDPWD),"T5:");
-               
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;securityMechanism="+SECMEC_USRIDONL),"T6:");
+               
//getConnectionUsingDriverManager(getJDBCUrl("wombat","user=neelima;password=lee;securityMechanism="+SECMEC_EUSRIDPWD),"T5:");
+               
getConnectionUsingDriverManager(getJDBCUrl("wombat","user=neelima;securityMechanism="+SECMEC_USRIDONL),"T6:");
                 
                 // disable as ibm142 and sun jce doesnt support DH prime of 32 
bytes
-               
//getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;password=lee;securityMechanism="+SECMEC_USRENCPWD),"T7:");
-               
getConnectionUsingDriverManager(getJDBCUrl("wombat;create=true","user=neelima;password=lee;securityMechanism="+SECMEC_USRIDONL),"T8:");
+               
//getConnectionUsingDriverManager(getJDBCUrl("wombat","user=neelima;password=lee;securityMechanism="+SECMEC_USRENCPWD),"T7:");
+               
getConnectionUsingDriverManager(getJDBCUrl("wombat","user=neelima;password=lee;securityMechanism="+SECMEC_USRIDONL),"T8:");
 
                getConnectionUsingDataSource();
 
Index: 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/testSecMec.out
===================================================================
--- 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/testSecMec.out
   (revision 170422)
+++ 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/testSecMec.out
   (working copy)
@@ -1,9 +1,9 @@
 Checking security mechanism authentication with DriverManager
-T1: jdbc:derby:net://localhost:20000/wombat;create=true - EXCEPTION null 
userid not supported
-T2: jdbc:derby:net://localhost:20000/wombat;create=true:user=max; - EXCEPTION 
null password not supported
-T3: 
jdbc:derby:net://localhost:20000/wombat;create=true:user=neelima;password=lee;
 T4: 
jdbc:derby:net://localhost:20000/wombat;create=true:user=neelima;password=lee;securityMechanism=3;
-T6: 
jdbc:derby:net://localhost:20000/wombat;create=true:user=neelima;securityMechanism=4;
-T8: 
jdbc:derby:net://localhost:20000/wombat;create=true:user=neelima;password=lee;securityMechanism=4;
+T1: jdbc:derby:net://localhost:20000/wombat - EXCEPTION null userid not 
supported
+T2: jdbc:derby:net://localhost:20000/wombat:user=max; - EXCEPTION null 
password not supported
+T3: jdbc:derby:net://localhost:20000/wombat:user=neelima;password=lee;
+T6: jdbc:derby:net://localhost:20000/wombat:user=neelima;securityMechanism=4;
+T8: 
jdbc:derby:net://localhost:20000/wombat:user=neelima;password=lee;securityMechanism=4;
 SECMEC_USRIDPWD: OK
 Completed testSecMec
Index: 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testSecMec.out
===================================================================
--- 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testSecMec.out
     (revision 170422)
+++ 
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/testSecMec.out
     (working copy)
@@ -1,9 +1,9 @@
 Checking security mechanism authentication with DriverManager
-T1: jdbc:derby://localhost:20000/wombat;create=true
-T2: jdbc:derby://localhost:20000/wombat;create=true;user=max
-T3: jdbc:derby://localhost:20000/wombat;create=true;user=neelima;password=lee
 T4: 
jdbc:derby://localhost:20000/wombat;create=true;user=neelima;password=lee;securityMechanism=3
-T6: 
jdbc:derby://localhost:20000/wombat;create=true;user=neelima;securityMechanism=4
-T8: 
jdbc:derby://localhost:20000/wombat;create=true;user=neelima;password=lee;securityMechanism=4
+T1: jdbc:derby://localhost:20000/wombat
+T2: jdbc:derby://localhost:20000/wombat;user=max
+T3: jdbc:derby://localhost:20000/wombat;user=neelima;password=lee
+T6: jdbc:derby://localhost:20000/wombat;user=neelima;securityMechanism=4
+T8: 
jdbc:derby://localhost:20000/wombat;user=neelima;password=lee;securityMechanism=4
 SECMEC_USRIDPWD: OK
 Completed testSecMec

Reply via email to