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 kr...@apache.org on 2010/06/04 11:49:30 UTC

svn commit: r951346 - in /db/derby/code/trunk/java: client/org/apache/derby/client/ClientXAConnection.java testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java

Author: kristwaa
Date: Fri Jun  4 09:49:30 2010
New Revision: 951346

URL: http://svn.apache.org/viewvc?rev=951346&view=rev
Log:
DERBY-2532: Client does not return SQLException on XAConnection.getXAResource() on a closed connection, Embedded does 
Made ClientXAConnection.getXAResources throw an exception if the underlying
connection has been closed.

Patch contributed by Sabari S Kumar (swordfish1987 at iwanttobeme dot in).

Patch file: derby-2532-1a-getxares_on_closed_conn.diff


Modified:
    db/derby/code/trunk/java/client/org/apache/derby/client/ClientXAConnection.java
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/ClientXAConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/ClientXAConnection.java?rev=951346&r1=951345&r2=951346&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/ClientXAConnection.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/ClientXAConnection.java Fri Jun  4 09:49:30 2010
@@ -25,10 +25,12 @@ import java.sql.SQLException;
 import javax.sql.XAConnection;
 import javax.transaction.xa.XAResource;
 
+import org.apache.derby.client.am.ClientMessageId;
 import org.apache.derby.client.am.SqlException;
 import org.apache.derby.client.net.NetLogWriter;
 import org.apache.derby.client.net.NetXAConnection;
 import org.apache.derby.jdbc.ClientXADataSource;
+import org.apache.derby.shared.common.reference.SQLState;
 
 public class ClientXAConnection extends ClientPooledConnection implements XAConnection {
     private static int rmIdSeed_ = 95688932; // semi-random starting value for rmId
@@ -85,7 +87,12 @@ public class ClientXAConnection extends 
         if (logWriter_ != null) {
             logWriter_.traceExit(this, "getXAResource", xares_);
         }
-
+        // DERBY-2532
+        if (super.physicalConnection_ == null) {
+            throw new SqlException(logWriter_,
+                    new ClientMessageId(SQLState.NO_CURRENT_CONNECTION)
+                ).getSQLException();
+        }
         return xares_;
     }
 

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java?rev=951346&r1=951345&r2=951346&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/J2EEDataSourceTest.java Fri Jun  4 09:49:30 2010
@@ -1860,12 +1860,9 @@ public class J2EEDataSourceTest extends 
 
         // test methods against a closed XAConnection and its resource
         try {
+            // (DERBY-2532)
             xac2.getXAResource();
-            // DERBY-2532
-            // Network Server does not think this is worth an exception.
-            if (usingEmbedded())
-                fail("expected SQLException on " +
-                    "closed XAConnection.getXAResource");
+            fail("expected SQLException on closed XAConnection.getXAResource");
         } catch (SQLException sqle) {
             assertSQLState("08003", sqle);
         }