Skip to content

Commit 57e99d2

Browse files
committed
change class collection from List to HashMap to avoid crashes due to duplicates
stop writing 0-args constructor coming from java.lang.Object
1 parent 54af033 commit 57e99d2

File tree

3 files changed

+104
-95
lines changed

3 files changed

+104
-95
lines changed

dts-generator/src/main/java/com/telerik/Main.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ private static void validateOutputDir(InputParameters inputParameters, String ne
8989
File outputDir = new File(nextParam);
9090

9191
if (!outputDir.exists()) {
92-
System.out.println(String
93-
.format("We didn't find the folder you specified ( %s ), so it's going to be created!",
94-
inputParameters.getOutputDir().getAbsolutePath()));
92+
// System.out.println(String
93+
// .format("We didn't find the folder you specified ( %s ), so it's going to be created!",
94+
// inputParameters.getOutputDir().getAbsolutePath()));
9595
}
9696
inputParameters.setOutputDir(outputDir);
9797
}

dts-generator/src/main/java/com/telerik/dts/ClassRepo.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,42 @@
66
import java.util.Arrays;
77
import java.util.Collections;
88
import java.util.Comparator;
9+
import java.util.HashSet;
910
import java.util.List;
1011

1112
public class ClassRepo {
1213
private ClassRepo() {
1314
}
1415

1516
private static ArrayList<ClassMapProvider> cachedProviders = new ArrayList<ClassMapProvider>();
16-
private static List<String> allSortedClasses = new ArrayList<String>();
17+
private static HashSet<String> classesSet = new HashSet<>();
18+
private static List<String> sortedClasses;
1719
private static int traversedFilesIdx = 0;
1820

1921
public static void cacheJarFile(ClassMapProvider classMapProvider) {
2022
for (String className : classMapProvider.getClassMap().keySet()) {
2123
for (ClassMapProvider cachedProvider : cachedProviders) {
2224
JavaClass clazz = cachedProvider.getClassMap().get(className);
2325
if (clazz != null) {
24-
String errMsg = "Class " + className + " conflict: "
25-
+ classMapProvider.getPath() + " and " + cachedProvider.getPath();
26-
throw new IllegalArgumentException(errMsg);
26+
// return;
27+
// String errMsg = "Class " + className + " conflict: "
28+
// + classMapProvider.getPath() + " and " + cachedProvider.getPath();
29+
// throw new IllegalArgumentException(errMsg);
2730
}
2831
}
2932
}
33+
3034
cachedProviders.add(classMapProvider);
3135
}
3236

3337
public static void sortCachedProviders() {
3438
for(ClassMapProvider cmp : cachedProviders) {
35-
allSortedClasses.addAll(cmp.getClassMap().keySet());
39+
classesSet.addAll(cmp.getClassMap().keySet());
3640
}
37-
Collections.sort(allSortedClasses, new Comparator<String>() {
41+
42+
sortedClasses = new ArrayList<>(classesSet);
43+
44+
Collections.sort(sortedClasses, new Comparator<String>() {
3845
@Override
3946
public int compare(String className1, String className2) {
4047
if(className1.startsWith(className2)) {
@@ -63,7 +70,7 @@ public static List<JavaClass> getNextClassGroup() {
6370
ArrayList<JavaClass> lst = new ArrayList<JavaClass>();
6471
boolean first = true;
6572

66-
while ((traversedFilesIdx < allSortedClasses.size()) && keepGoing(first)) {
73+
while ((traversedFilesIdx < sortedClasses.size()) && keepGoing(first)) {
6774
JavaClass f = getCurrentJavaClass();
6875
String name = f.getClassName();
6976
if (!name.contains("$0") && !name.contains("$1")
@@ -82,11 +89,11 @@ public static List<JavaClass> getNextClassGroup() {
8289
}
8390

8491
public static boolean hasNext() {
85-
return traversedFilesIdx < allSortedClasses.size();
92+
return traversedFilesIdx < sortedClasses.size();
8693
}
8794

8895
private static JavaClass getCurrentJavaClass() {
89-
String currentClassName = allSortedClasses.get(traversedFilesIdx);
96+
String currentClassName = sortedClasses.get(traversedFilesIdx);
9097
return ClassRepo.findClass(currentClassName);
9198
}
9299

0 commit comments

Comments
 (0)