private String[] findlatest(String[] onlysecuritym, File dir) { Hashtable list = new Hashtable(); String filename; Vector parsed; Vector similarlist; String Key; if (onlysecuritym != null) { for (int i = 0; i < onlysecuritym.length; i++) { filename = onlysecuritym[i]; parsed = MonitoringUtils.parseString(filename, '_'); if (MonitoringUtils.debug > 0) { for (int z = 0; z < parsed.size(); z++) { System.out.println("parsed data is : " + z + " :: " + (String) parsed.elementAt(z)); } } if (parsed.size() > 2) { Key = (String) parsed.elementAt(1); if (list.containsKey(Key)) { similarlist = (Vector) list.get(Key); similarlist.add(filename); list.put(Key, similarlist); } else { similarlist = new Vector(); similarlist.add(filename); list.put(Key, similarlist); } } else { System.err.println("Error in parsing the log file name::" + filename); } } } Enumeration keylist = list.keys(); String nodename; String latestfile = null; Date latestdate = null; Date tempdate; File completepath; parsed = new Vector(); long ldate; for (; keylist.hasMoreElements(); ) { nodename = (String) keylist.nextElement(); similarlist = (Vector) list.get(nodename); for (int i = 0; i < similarlist.size(); i++) { filename = (String) similarlist.elementAt(i); if (latestdate == null) { completepath = new File(dir, filename); ldate = completepath.lastModified(); latestdate = new Date(ldate); latestfile = filename; } else { completepath = new File(dir, filename); ldate = completepath.lastModified(); tempdate = new Date(ldate); if (tempdate.after(latestdate)) { latestdate = tempdate; latestfile = filename; } latestfile = filename; } } if (latestfile != null) parsed.add(latestfile); else System.err.println("Could not get latest file for ::" + nodename); latestdate = null; latestfile = null; } return MonitoringUtils.toStringArray(parsed); }