 +            }
  	}
  
-+public void printMap(Map mp) {
-+    sLogger.warn(sName + "Pending poll requests");
-+    Iterator it = mp.entrySet().iterator();
-+    while (it.hasNext()) {
-+        Map.Entry pair = (Map.Entry)it.next();
-+        sLogger.info(sName + " poll response still pedning for Session : " + pair.getKey());
-+    }
-+}
-+
-+/*
-+        private Long sentElementTimeStamp(PollResult pr) {
-+                Long most_recent_visited_element_time_stamp = new Long(0);
-+                for (SearchResult sr : pr.getResults()) {
-+                        Long t = sentElementTimeStamp(sr);
-+                        if (t > most_recent_visited_element_time_stamp) {
-+                             most_recent_visited_element_time_stamp = t;
-+                        }
-+                }
-+                return most_recent_visited_element_time_stamp;
-+        }
-+
-+        private Long sentElementTimeStamp(SearchResult result) {
-+                Long most_recent_visited_element_time_stamp = new Long(0);
-+                for (ResultItem ri : result.getResultItems()) {
-+                        GraphElement ge = ri.getGraphElement();
-+                        sLogger.debug("sentElementTimeStamp: ge: " + ge + ", lastModifiedTime: " + ge.getLastModifiedTime() + ";  GE: " + ge);
-+                        if (ge.getLastModifiedTime() > most_recent_visited_element_time_stamp) {
-+                             most_recent_visited_element_time_stamp = ge.getLastModifiedTime();
-+                        }
-+                }
-+                return most_recent_visited_element_time_stamp;
-+        }
-+*/
++        public void printMap(Map mp) {
++            sLogger.warn(sName + "Pending poll requests");
++            Iterator it = mp.entrySet().iterator();
++            while (it.hasNext()) {
++                 Map.Entry pair = (Map.Entry)it.next();
++                 sLogger.info(sName + " poll response still pedning for Session : " + pair.getKey());
++            }
++        }
 +
 +        public long findOldestVisitedElementTimeStamp(Result result) {
 +                if (result == null) {

 		NullCheck.check(res, "res is null");
 		mResultList.get().add(res);
 	}
@@ -1432,20 +1441,38 @@ public class EventProcessor extends Processor<Event> {
 	 * Ugly dispatching again :-(
 	 * Try to make this double-dispatch as well
 	 */

 			ClientIdentifier clientId= r.getClientIdentifier();
+                        try {
+                             Session ses = mSessionRep.getBy(chId);
+                             Long time = findOldestVisitedElementTimeStamp(r);
+                             if (time != -1 && ses != null) {
+                                  mSessionRep.setMostRecentlyVisitedGraphElementTime(chId, time);
