This patch fixes bug 30917 ( http://nagoya.apache.org/bugzilla/show_bug.cgi?id=30917 
).  It simply replaces usages of List with Set when aggreagating classnames.

Aaron.

Index: ClassFinder.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-jmeter/src/jorphan/org/apache/jorphan/reflect/ClassFinder.java,v
retrieving revision 1.9
diff -u -r1.9 ClassFinder.java
--- ClassFinder.java 11 Feb 2004 23:57:23 -0000 1.9
+++ ClassFinder.java 28 Aug 2004 15:28:47 -0000
@@ -22,13 +22,7 @@
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.StringTokenizer;
+import java.util.*;
 import java.util.zip.ZipFile;
 
 import org.apache.jorphan.logging.LoggingManager;
@@ -107,7 +101,7 @@
         throws IOException, ClassNotFoundException
     {
         List listPaths = null;
-        ArrayList listClasses = null;
+        Set listClasses = null;
         List listSuperClasses = null;
         strPathsOrJars = addJarsInPath(strPathsOrJars);
         if (log.isDebugEnabled())
@@ -126,7 +120,7 @@
                 log.debug("listPaths : " + tIter.next());
             }
         }
-        listClasses = new ArrayList();
+        listClasses = new TreeSet();
         listSuperClasses = new ArrayList();
         for (int i = 0; i < superClasses.length; i++)
         {
@@ -142,9 +136,9 @@
                 log.debug("listClasses : " + tIter.next());
             }
         }
-        List subClassList =
+        Set subClassList =
             findAllSubclasses(listSuperClasses, listClasses, innerClasses);
-        return subClassList;
+        return new ArrayList(subClassList);
     }
 
     private static List getClasspathMatches(String[] strPathsOrJars)
@@ -369,16 +363,16 @@
      *                           the search
      [EMAIL PROTECTED]                    ArrayList of the subclasses
      */
-    private static ArrayList findAllSubclasses(
+    private static Set findAllSubclasses(
         List listSuperClasses,
-        List listAllClasses,
+        Set listAllClasses,
         boolean innerClasses)
     {
         Iterator iterClasses = null;
-        ArrayList listSubClasses = null;
+        Set listSubClasses = null;
         String strClassName = null;
         Class tempClass = null;
-        listSubClasses = new ArrayList();
+        listSubClasses = new TreeSet();
         iterClasses = listSuperClasses.iterator();
         while (iterClasses.hasNext())
         {
@@ -445,8 +439,8 @@
      */
     private static void findAllSubclassesOneClass(
         Class theClass,
-        List listAllClasses,
-        List listSubClasses,
+        Set listAllClasses,
+        Set listSubClasses,
         boolean innerClasses)
     {
         Iterator iterClasses = null;
@@ -507,7 +501,7 @@
         return strClassName;
     }
     
-    private static void findClassesInOnePath(String strPath, List listClasses)
+    private static void findClassesInOnePath(String strPath, Set listClasses)
         throws IOException
     {
         File file = null;
@@ -534,7 +528,7 @@
         }
     }
 
-    private static void findClassesInPaths(List listPaths, List listClasses)
+    private static void findClassesInPaths(List listPaths, Set listClasses)
         throws IOException
     {
         Iterator iterPaths = listPaths.iterator();
@@ -547,7 +541,7 @@
     private static void findClassesInPathsDir(
         String strPathElement,
         File dir,
-        List listClasses)
+        Set listClasses)
         throws IOException
     {
         File file = null;

Reply via email to