[jboss-cvs] JBossAS SVN: r97662 - trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 9 23:08:39 EST 2009


Author: bstansberry at jboss.com
Date: 2009-12-09 23:08:39 -0500 (Wed, 09 Dec 2009)
New Revision: 97662

Modified:
   trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
   trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/LeakAnalyzer.java
Log:
[JBAS-7500] Sync trunk w/ 6.0.0.M1

Modified: trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java	2009-12-10 04:00:34 UTC (rev 97661)
+++ trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java	2009-12-10 04:08:39 UTC (rev 97662)
@@ -231,6 +231,7 @@
           }       
           finally
           {
+             bytez = null;
              // Sleep a bit to allow CPU to do work like exchange cluster PING responses
              try
              {

Modified: trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/LeakAnalyzer.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/LeakAnalyzer.java	2009-12-10 04:00:34 UTC (rev 97661)
+++ trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/LeakAnalyzer.java	2009-12-10 04:08:39 UTC (rev 97662)
@@ -27,10 +27,10 @@
 import java.lang.ref.Reference;
 import java.lang.ref.SoftReference;
 import java.lang.reflect.Field;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.Map.Entry;
@@ -80,7 +80,7 @@
     * Show the reference holders tree of an object. This returns a report you
     * can visualize through MBean.
     */
-   public String exploreObjectReferences(HashMap referencesMap, Object thatObject, int maxLevel, boolean useToString,
+   public String exploreObjectReferences(HashMap<Long, List<ReferenceDataPoint>> referencesMap, Object thatObject, int maxLevel, boolean useToString,
          boolean condensed)
    {
       ReferenceReportNode root = new ReferenceReportNode(callToString(thatObject, useToString));
@@ -92,7 +92,7 @@
 
       try
       {
-         exploreObject(root, thatObject, 0, maxLevel, useToString, false, referencesMap, new HashSet(), prunableLeaves);
+         exploreObject(root, thatObject, 0, maxLevel, useToString, false, referencesMap, new HashSet<String>(), prunableLeaves);
 
          for (Iterator<ReferenceReportNode> it = prunableLeaves.iterator(); it.hasNext();)
          {
@@ -123,7 +123,7 @@
 
    /** Explore references recursively */
    private void exploreObject(ReferenceReportNode node, Object source, int currentLevel, final int maxLevel,
-         boolean useToString, boolean weakAndSoft, Map mapDataPoints, Set alreadyExplored, Set prunableLeaves)
+         boolean useToString, boolean weakAndSoft, Map<Long, List<ReferenceDataPoint>> mapDataPoints, Set<String> alreadyExplored, Set<ReferenceReportNode> prunableLeaves)
    {
       if (maxLevel >= 0 && currentLevel >= maxLevel)
       {
@@ -148,7 +148,7 @@
 
       log.info("resolving references of " + callToString(source, useToString) + "...");
       Long sourceTag = new Long(this.getTagOnObject(source));
-      ArrayList listPoints = (ArrayList) mapDataPoints.get(sourceTag);
+      List<ReferenceDataPoint> listPoints = mapDataPoints.get(sourceTag);
       if (listPoints == null)
       {
          log.info("didn't find references");
@@ -157,17 +157,15 @@
 
       log.info("References found");
 
-      for (Iterator iter = listPoints.iterator(); iter.hasNext();)
-      {
-         ReferenceDataPoint point = (ReferenceDataPoint) iter.next();
-         
+      for (ReferenceDataPoint point : listPoints)
+      {         
          ReferenceReportNode child = new ReferenceReportNode();
          
          Object nextReference = treatReference(child, point, useToString);
 
          if (nextReference != null && !weakAndSoft)
          {
-            if (nextReference instanceof Reference)
+            if (nextReference instanceof Reference<?>)
             {
                // WeakHashMap$Entry and ThreadLocal$ThreadLocalMap$Entry are
                // special cases, where the Entry key is a weak ref, but the 
@@ -179,12 +177,13 @@
                // our attempts at flushing them out, we want to know about them
                String msg = child.getMessage();
                if (msg.indexOf("FieldReference private java.lang.Object java.lang.ref.Reference.referent=") >= 0
-                     && !(nextReference instanceof SoftReference))
+                     && !(nextReference instanceof SoftReference<?>))
                {                  
-                  if (nextReference instanceof Map.Entry)
+                  if (nextReference instanceof Map.Entry<?,?>)
                   {
                      // WeakHashMap$Entry is suspicious. 
                      // Put in some more info about the entry
+                     @SuppressWarnings("unchecked")
                      Map.Entry entry = (Entry) nextReference;
                      Object key = entry.getKey();
                      msg += " KEY=" + (key == null ? " null" : key.getClass().getName() + "@" + System.identityHashCode(key));
@@ -199,7 +198,7 @@
                else if (msg.indexOf("java.lang.ThreadLocal$ThreadLocalMap$Entry") >= 0)
                {
                   // Get the key and follow that to see why it isn't released
-                  nextReference = ((Reference) nextReference).get();
+                  nextReference = ((Reference<?>) nextReference).get();
                }
                // else just keep going
                
@@ -260,7 +259,7 @@
          else
          {
             String base = obj.getClass().getName() + "@" + System.identityHashCode(obj);
-            if (callToString || obj instanceof Class)
+            if (callToString || obj instanceof Class<?>)
             {
                base += "(" + obj.toString() + ")";
             }
@@ -326,7 +325,7 @@
             }
             else
             {
-               Class clazz = referenceHolder.getClass();
+               Class<?> clazz = referenceHolder.getClass();
                Field field = this.getObjectField(clazz, (int) point.getIndex());
                if (field == null)
                {
@@ -401,7 +400,8 @@
                                                             // at zero. See
                                                             // GetClassFields.
          {
-            Class clazz = (Class) referenceHolder;
+            @SuppressWarnings("unchecked")
+            Class<?> clazz = (Class) referenceHolder;
             Field field = this.getObjectField(clazz, (int) point.getIndex());
             String fieldName = null;
             if (field == null)
@@ -432,7 +432,7 @@
             break;
          case JVMTICallBack.THREAD_REFERENCE :
 
-            Class methodClass = this.getMethodClass(point.getMethod());
+            Class<?> methodClass = this.getMethodClass(point.getMethod());
             if (methodClass != null)
             {
                String className = null;




More information about the jboss-cvs-commits mailing list