Author: gnodet
Date: Fri Apr 11 14:14:44 2014
New Revision: 1586660

URL: http://svn.apache.org/r1586660
Log:
[ARIES-1171] Aries transaction-jdbc invokes JDBC drivers getXAConnection(String 
username, String password) but passes null for both arguments

Modified:
    
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/XADataSourceMCFFactory.java

Modified: 
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/XADataSourceMCFFactory.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/XADataSourceMCFFactory.java?rev=1586660&r1=1586659&r2=1586660&view=diff
==============================================================================
--- 
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/XADataSourceMCFFactory.java
 (original)
+++ 
aries/trunk/transaction/transaction-jdbc/src/main/java/org/apache/aries/transaction/jdbc/internal/XADataSourceMCFFactory.java
 Fri Apr 11 14:14:44 2014
@@ -19,14 +19,20 @@
 package org.apache.aries.transaction.jdbc.internal;
 
 import org.tranql.connector.AllExceptionsAreFatalSorter;
+import org.tranql.connector.CredentialExtractor;
 import org.tranql.connector.ExceptionSorter;
 import org.tranql.connector.NoExceptionsAreFatalSorter;
 import org.tranql.connector.jdbc.AbstractXADataSourceMCF;
 import org.tranql.connector.jdbc.ConfigurableSQLStateExceptionSorter;
 import org.tranql.connector.jdbc.KnownSQLStateExceptionSorter;
 
+import javax.resource.ResourceException;
 import javax.resource.spi.ManagedConnectionFactory;
+import javax.resource.spi.ResourceAdapterInternalException;
+import javax.sql.XAConnection;
 import javax.sql.XADataSource;
+
+import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -117,6 +123,21 @@ public class XADataSourceMCFFactory {
         public String getPassword() {
             return password;
         }
+
+        protected XAConnection getPhysicalConnection(CredentialExtractor 
credentialExtractor) throws ResourceException {
+            try {
+                String userName = credentialExtractor.getUserName();
+                String password = credentialExtractor.getPassword();
+                if (userName != null) {
+                    return xaDataSource.getXAConnection(userName, password);
+                } else {
+                    return xaDataSource.getXAConnection();
+                }
+            } catch (SQLException e) {
+                throw new ResourceAdapterInternalException("Unable to obtain 
physical connection to " + xaDataSource, e);
+            }
+        }
+
     }
 
 }


Reply via email to