Skip to content

Commit

Permalink
fixed a minor error in AOPUtils if list contains null items
Browse files Browse the repository at this point in the history
  • Loading branch information
albogdano committed Jun 9, 2021
1 parent b53887e commit 9e6fec9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
8 changes: 6 additions & 2 deletions para-server/src/main/java/com/erudika/para/aop/AOPUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,12 @@ protected static <T> List<T> getArgOfListOfType(Object[] args, Class<T> type) {
for (Object arg : args) {
if (arg != null && arg instanceof List) {
List<T> list = (List) arg;
if (!list.isEmpty() && type.isAssignableFrom(list.get(0).getClass())) {
return list;
if (!list.isEmpty()) {
for (T item : list) {
if (item != null && type.isAssignableFrom(item.getClass())) {
return list;
}
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,18 @@ public void testUtils() throws Exception {
list2.add(new Tag("tagzz3"));
List<String> badList = new ArrayList<>();
badList.add("XXXtagXXX");
List<Sysprop> badList2 = new ArrayList<>();
badList2.add(null);
badList2.add(null);
badList2.add(null);
badList2.add(new Sysprop());

assertSame(tag, getArgOfParaObject(new Object[]{tag, "string"}));
assertNull(getArgOfParaObject(new Object[]{"string"}));
assertEquals(list1, getArgOfListOfType(new Object[]{list1}, ParaObject.class));
assertEquals(list2, getArgOfListOfType(new Object[]{list2}, ParaObject.class));
assertNull(getArgOfListOfType(new Object[]{badList}, ParaObject.class));
assertEquals(badList2, getArgOfListOfType(new Object[]{badList2}, ParaObject.class));

assertNull(getFirstArgOfString(new Object[]{list1}));
assertNotNull(getFirstArgOfString(new Object[]{Integer.valueOf(123), "asd"}));
Expand Down

0 comments on commit 9e6fec9

Please sign in to comment.