[jboss-cvs] JBossAS SVN: r92642 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 20 17:13:22 EDT 2009


Author: bstansberry at jboss.com
Date: 2009-08-20 17:13:22 -0400 (Thu, 20 Aug 2009)
New Revision: 92642

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
Log:
[EJBTHREE-1898] Don't call GUID.toString() twice in get()
[EJBTHREE-1899] Use correct Fqn

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2009-08-20 21:13:14 UTC (rev 92641)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/cache/tree/StatefulTreeCache.java	2009-08-20 21:13:22 UTC (rev 92642)
@@ -151,7 +151,8 @@
    public StatefulBeanContext get(Object key, boolean markInUse) throws EJBException
    {
       StatefulBeanContext entry = null;
-      Fqn id = getFqn(key, false);
+      String keyString = key.toString();
+      Fqn id = getFqn(keyString, key, false);
       Boolean active = localActivity.get();
       try
       {
@@ -188,7 +189,7 @@
 
          // Mark the Fqn telling the eviction thread not to passivate it yet.
          // Note the Fqn we use is relative to the region!
-         region.markNodeCurrentlyInUse(new Fqn(key.toString()), MarkInUseWaitTime);
+         region.markNodeCurrentlyInUse(getFqn(keyString, key, true), MarkInUseWaitTime);
          entry.lastUsed = System.currentTimeMillis();
          if (beans != null)
          {
@@ -562,7 +563,11 @@
 
    private Fqn getFqn(Object id, boolean regionRelative)
    {
-      String beanId = id.toString();
+      return getFqn(id.toString(), id, regionRelative);
+   }
+
+   private Fqn getFqn(String idString, Object id, boolean regionRelative)
+   {
       int index;
       if (id instanceof GUID)
       {
@@ -570,13 +575,13 @@
       }
       else
       {
-         index = (beanId.hashCode()& 0x7FFFFFFF) % hashBuckets.length;
+         index = (idString.hashCode()& 0x7FFFFFFF) % hashBuckets.length;
       }
 
       if (regionRelative)
-         return new Fqn( new Object[] {hashBuckets[index], beanId} );
+         return Fqn.fromElements(hashBuckets[index], idString);
       else
-         return new Fqn(cacheNode, hashBuckets[index], beanId);
+         return Fqn.fromRelativeElements(cacheNode, hashBuckets[index], idString);
    }
 
    private void cleanBeanRegion()




More information about the jboss-cvs-commits mailing list