573258: Report improvements and lazy loading of array lengths

Minor fixes for SpotBugs and component report highlighting

Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=573258

Change-Id: Ic33aad258cf2b104c777bf54c8a71f9eccd19b4a
diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/AbstractFillRatioQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/AbstractFillRatioQuery.java
index 379e5d1..2c05bb8 100644
--- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/AbstractFillRatioQuery.java
+++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/AbstractFillRatioQuery.java
@@ -32,9 +32,6 @@
 

 public class AbstractFillRatioQuery

 {

-    private final long LIMIT = 20;

-    private HashMapIntLong exceptions = new HashMapIntLong();

-

     protected void runQuantizer(IProgressListener listener, Quantize quantize, ICollectionExtractor specificExtractor,

                     String specificClass, ISnapshot snapshot, Iterable<int[]> objects, String msg) throws SnapshotException

     {

@@ -42,6 +39,8 @@
         int refsize = info.getIdentifierSize();

         if (refsize == 8 && Boolean.TRUE.equals((Boolean) info.getProperty("$useCompressedOops"))) //$NON-NLS-1$

             refsize = 4;

+        final long LIMIT = 20;

+        HashMapIntLong exceptions = new HashMapIntLong();

         int counter = 0;

         IClass type = null;

         for (int[] objectIds : objects)

diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/CollectionsBySizeQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/CollectionsBySizeQuery.java
index ae3c85a..c72efcc 100644
--- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/CollectionsBySizeQuery.java
+++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/CollectionsBySizeQuery.java
@@ -102,9 +102,6 @@
     @Argument(isMandatory = false)

     public String size_attribute;

 

-    private final long LIMIT = 20;

-    private HashMapIntLong exceptions = new HashMapIntLong();

-

     public IResult execute(IProgressListener listener) throws Exception

     {

         listener.subTask(Messages.CollectionsBySizeQuery_CollectingSizes);

@@ -138,6 +135,9 @@
     private void runQuantizer(IProgressListener listener, Quantize quantize, ICollectionExtractor specificExtractor,

                     String specificClass) throws SnapshotException

     {

+

+        final long LIMIT = 20;

+        HashMapIntLong exceptions = new HashMapIntLong();

         int counter = 0;

         IClass type = null;

         for (int[] objectIds : objects)

diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/MapCollisionRatioQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/MapCollisionRatioQuery.java
index 2db23a0..f085142 100644
--- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/MapCollisionRatioQuery.java
+++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/collections/MapCollisionRatioQuery.java
@@ -84,9 +84,6 @@
     @Argument(isMandatory = false)

     public String array_attribute;

 

-    private final long LIMIT = 20;

-    private HashMapIntLong exceptions = new HashMapIntLong();

-

     public IResult execute(IProgressListener listener) throws Exception

     {

         listener.subTask(Messages.MapCollisionRatioQuery_CalculatingCollisionRatios);

@@ -100,6 +97,8 @@
         Quantize quantize = builder.build();

 

         IMapExtractor specificExtractor = new HashMapCollectionExtractor(size_attribute, array_attribute, null, null);

+        final long LIMIT = 20;

+        HashMapIntLong exceptions = new HashMapIntLong();

         int counter = 0;

         IClass type = null;

         for (int[] objectIds : objects)

diff --git a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java
index 51d8a05..2833351 100644
--- a/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java
+++ b/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/component/ComponentReportQuery.java
@@ -635,6 +635,7 @@
                             comment.append(MessageUtil.format(Messages.ComponentReportQuery_Msg_InstancesRetainBytes,

                                             numberOfObjects, HTMLUtils.escapeText(clazz.getName()), HTMLUtils.escapeText(retainedSize)));

                             comment.append("</li>"); //$NON-NLS-1$

+                            warn = true;

                         }

 

                         break;

@@ -735,6 +736,7 @@
                             comment.append(MessageUtil.format(Messages.ComponentReportQuery_Msg_InstancesRetainBytes,

                                             numberOfObjects, HTMLUtils.escapeText(an), HTMLUtils.escapeText(retainedSize)));

                             comment.append("</li>"); //$NON-NLS-1$

+                            warn = true;

                         }

 

                         break;