Skip to content

Commit e14d937

Browse files
authored
Merge pull request #16 from JasperJH/master
Fixes searchFieldByClass looping forever and incorrect cache keys
2 parents 3d5dab6 + 78d22e6 commit e14d937

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/main/java/net/tcpshield/tcpshield/ReflectionUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,16 @@ public static Field searchFieldByClass(Class<?> clazz, Class<?> searchFor) {
7373
if (cachedField != null) return cachedField;
7474

7575
Class<?> currentClass = clazz;
76-
while (currentClass.getSuperclass() != null) {
77-
for (Field field : clazz.getDeclaredFields()) {
76+
do {
77+
for (Field field : currentClass.getDeclaredFields()) {
7878
if (field.getType() != searchFor) continue;
7979

8080
CACHED_FIELDS_BY_CLASS.put(clazz, searchFor, field);
8181
return field;
8282
}
8383

84-
currentClass = clazz.getSuperclass();
85-
}
84+
currentClass = currentClass.getSuperclass();
85+
} while (currentClass != null);
8686

8787
throw new IllegalArgumentException("no " + searchFor.getName() + " field for clazz = " + clazz.getName() + " found");
8888
}

0 commit comments

Comments
 (0)