[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