I have List stored in SharedInstance, Which I want to sort based upon time parameter.
Code for sorting Collections.sort(SharedInstance.getInstance().getMasterlistFavFeeds().getPosts(), new DateComparator());
public class DateComparator implements Comparator { DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
@Override
public int compare(Object date1, Object date2) {
try {
return dateFormat.parse(date2.toString()).compareTo(dateFormat.parse(date1.toString()));
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
}
}
Crash Log is
java.lang.ArrayIndexOutOfBoundsException: length=1459; index=1459
at java.util.Collections.sort(Collections.java:1888)
at com.fnshealth_android.utils.UpdateComments.updateCommentCountToSharedInstanceList(UpdateComments.java:34)
at com.fnshealth_android.utils.NotificationManager.processNewCommentFeed(NotificationManager.java:135)
at com.fnshealth_android.utils.NotificationManager.setDataMessagesMap(NotificationManager.java:99)
at com.fnshealth_android.services.FNSFirebaseMessagingService.onMessageReceived(FNSFirebaseMessagingService.java:46)
at com.google.firebase.messaging.FirebaseMessagingService.zzo(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.zzn(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.zzm(Unknown Source)
at com.google.firebase.iid.zzb$2.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Why I am getting such crash ? and how to handle it ?
Can I use try catch for ArryaoutOfIndex exception ?