[jboss-cvs] JBossAS SVN: r102826 - trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/remote.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 23 17:04:31 EDT 2010
Author: jbertram at redhat.com
Date: 2010-03-23 17:04:30 -0400 (Tue, 23 Mar 2010)
New Revision: 102826
Modified:
trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/remote/WrapperDataSourceService.java
Log:
JBAS-7811
Modified: trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/remote/WrapperDataSourceService.java
===================================================================
--- trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/remote/WrapperDataSourceService.java 2010-03-23 21:02:48 UTC (rev 102825)
+++ trunk/connector/src/main/java/org/jboss/resource/adapter/jdbc/remote/WrapperDataSourceService.java 2010-03-23 21:04:30 UTC (rev 102826)
@@ -42,6 +42,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.UUID;
import javax.management.ObjectName;
import javax.naming.BinaryRefAddr;
@@ -67,7 +68,7 @@
import org.jboss.util.Classes;
-/**
+/**
* An mbean service that pvovides the detached invoker ops for the
* javax.sql.DataSource and related java.sql.* interfaces.
*
@@ -114,7 +115,7 @@
if( jmxInvokerName != null )
destroyProxy();
}
-
+
protected void bindConnectionFactory() throws Exception
{
InitialContext ctx = new InitialContext();
@@ -202,42 +203,42 @@
}
else if( methodClass.isAssignableFrom(Connection.class) )
{
- Integer id = (Integer) invocation.getId();
+ Object id = invocation.getId();
Connection conn = (Connection) connectionMap.get(id);
if( conn == null )
{
- if(method.getName().equals("isClosed"))
+ if (method.getName().equals("isClosed"))
return true;
throw new IllegalAccessException("Failed to find connection: "+id);
}
- value = doConnectionMethod(conn, method, args);
+ value = doConnectionMethod(id, conn, method, args);
}
else if( methodClass.isAssignableFrom(Statement.class) ||
methodClass.isAssignableFrom(PreparedStatement.class) ||
methodClass.isAssignableFrom(CallableStatement.class))
{
- Integer id = (Integer) invocation.getId();
+ Object id = invocation.getId();
Statement stmt = (Statement) statementMap.get(id);
if( stmt == null )
{
throw new SQLException("Failed to find Statement: " + id);
}
- value = doStatementMethod(stmt, method, args);
+ value = doStatementMethod(id, stmt, method, args);
}
else if( methodClass.isAssignableFrom(ResultSet.class) )
{
- Integer id = (Integer) invocation.getId();
+ Object id = invocation.getId();
ResultSet results = (ResultSet) resultSetMap.get(id);
if( results == null )
{
throw new IllegalAccessException("Failed to find ResultSet: "+id);
}
- value = doResultSetMethod(results, method, args);
+ value = doResultSetMethod(id, results, method, args);
}
else if (methodClass.isAssignableFrom(DatabaseMetaData.class))
{
- Integer id = (Integer) invocation.getId();
+ Object id = invocation.getId();
DatabaseMetaData dbMetaData = (DatabaseMetaData) databaseMetaDataMap.get(id);
if(dbMetaData == null)
{
@@ -261,7 +262,7 @@
return value;
}
-
+
/**
* Create the proxy
*
@@ -296,7 +297,7 @@
log.debug("Created proxy for invoker=" + jmxInvokerName
+ ", targetName=" + targetName + ", nameHash=" + nameHash);
}
-
+
/**
* Destroy the proxy
*/
@@ -306,7 +307,7 @@
Integer nameHash = new Integer(name.hashCode());
Registry.unbind(nameHash);
}
-
+
/**
* Calculate the method hashes
*/
@@ -356,7 +357,7 @@
return value;
}
- private Object doConnectionMethod(Connection conn, Method method, Object[] args)
+ private Object doConnectionMethod(Object id, Connection conn, Method method, Object[] args)
throws InvocationTargetException, IllegalAccessException, SQLException
{
if( trace )
@@ -367,7 +368,6 @@
// Remove the connection and handle Connection.isClosed() in invoke()
if( method.getName().equals("close") )
{
- Integer id = new Integer(conn.hashCode());
connectionMap.remove(id);
log.debug("Closed Connection="+id);
}
@@ -388,7 +388,7 @@
return value;
}
- private Object doStatementMethod(Statement stmt, Method method, Object[] args)
+ private Object doStatementMethod(Object id, Statement stmt, Method method, Object[] args)
throws InvocationTargetException, IllegalAccessException, SQLException
{
if( trace )
@@ -398,7 +398,6 @@
if( method.getName().equals("close") )
{
- Integer id = new Integer(stmt.hashCode());
statementMap.remove(id);
log.debug("Closed Statement="+id);
}
@@ -425,17 +424,16 @@
return value;
}
- private Object doResultSetMethod(ResultSet results, Method method, Object[] args)
+ private Object doResultSetMethod(Object id, ResultSet results, Method method, Object[] args)
throws InvocationTargetException, IllegalAccessException, SQLException, IOException
{
if( trace )
{
- log.trace("doStatementMethod, results="+results+", method="+method);
+ log.trace("doResultSetMethod, results="+results+", method="+method);
}
if( method.getName().equals("close") )
{
- Integer id = new Integer(results.hashCode());
resultSetMap.remove(id);
log.debug("Closed ResultSet="+id);
}
@@ -495,7 +493,7 @@
private Object createConnectionProxy(Object conn)
{
- Object cacheID = new Integer(conn.hashCode());
+ Object cacheID = UUID.randomUUID();
ObjectName targetName = getServiceName();
String proxyBindingName = null;
String jndiName = null;
@@ -516,7 +514,7 @@
private Object createStatementProxy(Object stmt)
{
- Object cacheID = new Integer(stmt.hashCode());
+ Object cacheID = UUID.randomUUID();
ObjectName targetName = getServiceName();
String proxyBindingName = null;
String jndiName = null;
@@ -539,7 +537,7 @@
private Object createResultSetProxy(Object results)
{
- Object cacheID = new Integer(results.hashCode());
+ Object cacheID = UUID.randomUUID();
ObjectName targetName = getServiceName();
String proxyBindingName = null;
String jndiName = null;
@@ -560,9 +558,9 @@
return resultsProxy;
}
- private Object createLobProxy(Object results)
+ private Object createLobProxy(Object results)
{
- Object cacheID = new Integer(results.hashCode());
+ Object cacheID = UUID.randomUUID();
ObjectName targetName = getServiceName();
String proxyBindingName = null;
String jndiName = null;
@@ -583,7 +581,7 @@
private Object createDatabaseMetaData(Object dbMetaData)
{
- Object cacheID = new Integer(dbMetaData.hashCode());
+ Object cacheID = UUID.randomUUID();
ObjectName targetName = getServiceName();
String proxyBindingName = null;
String jndiName = null;
More information about the jboss-cvs-commits
mailing list