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;