prop.put("page_bflist", entCount);
} else if (page == 1) {
String host = (post == null) ? "" : post.get("host", "");
int entCount = 0;
Collection<Track> access;
Track entry;
if (host.length() > 0) {
access = sb.accessTrack(host);
if (access != null) {
try {
final Iterator<Track> ii = listclone(access).iterator();
while (ii.hasNext()) {
entry = ii.next();
prop.putHTML("page_list_" + entCount + "_host", host);
prop.put("page_list_" + entCount + "_date", SimpleFormatter.format(new Date(entry.getTime())));
prop.putHTML("page_list_" + entCount + "_path", entry.getPath());
entCount++;
}
} catch (final ConcurrentModificationException e) {} // we don't want to synchronize this
}
} else {
try {
final Iterator<String> i = sb.accessHosts();
while ((entCount < maxCount) && (i.hasNext())) {
host = i.next();
access = sb.accessTrack(host);
final Iterator<Track> ii = listclone(access).iterator();
while (ii.hasNext()) {
entry = ii.next();
prop.putHTML("page_list_" + entCount + "_host", host);
prop.put("page_list_" + entCount + "_date", SimpleFormatter.format(new Date(entry.getTime())));
prop.putHTML("page_list_" + entCount + "_path", entry.getPath());
entCount++;
}
}
} catch (final ConcurrentModificationException e) {} // we dont want to synchronize this
}
prop.put("page_list", entCount);
prop.put("page_num", entCount);
} else if ((page == 2) || (page == 4)) {
final Iterator<QueryParams> ai = (page == 2) ? AccessTracker.get(AccessTracker.Location.local) : AccessTracker.get(AccessTracker.Location.remote);
QueryParams query;
long qcountSum = 0;
long rcountSum = 0;
long tcountSum = 0;
long rcount = 0;
long utimeSum = 0;
long stimeSum = 0;
long rtimeSum = 0;
long utimeSum1 = 0;
long stimeSum1 = 0;
long rtimeSum1 = 0;
int m = 0;
while (ai.hasNext()) {
try {
query = ai.next();
} catch (ConcurrentModificationException e) {
break;
}
// put values in template
prop.put("page_list_" + m + "_dark", ((dark) ? 1 : 0) );
dark =! dark;
prop.putHTML("page_list_" + m + "_host", query.host);
prop.put("page_list_" + m + "_date", SimpleFormatter.format(new Date(query.time.longValue())));
prop.put("page_list_" + m + "_timestamp", query.time.longValue());
if (page == 2) {
// local search
prop.putNum("page_list_" + m + "_offset", query.offset);
prop.putHTML("page_list_" + m + "_querystring", query.queryString);
} else {
// remote search
prop.putHTML("page_list_" + m + "_peername", (query.remotepeer == null) ? "<unknown>" : query.remotepeer.getName());
prop.put("page_list_" + m + "_queryhashes", QueryParams.anonymizedQueryHashes(query.queryHashes));
}
prop.putNum("page_list_" + m + "_querycount", query.itemsPerPage);
prop.putNum("page_list_" + m + "_transmitcount", query.transmitcount);
prop.putNum("page_list_" + m + "_resultcount", query.resultcount);
prop.putNum("page_list_" + m + "_urltime", query.urlretrievaltime);
prop.putNum("page_list_" + m + "_snippettime", query.snippetcomputationtime);
prop.putNum("page_list_" + m + "_resulttime", query.searchtime);
prop.putHTML("page_list_" + m + "_userAgent", query.userAgent);
qcountSum += query.itemsPerPage;
rcountSum += query.resultcount;
tcountSum += query.transmitcount;
utimeSum += query.urlretrievaltime;
stimeSum += query.snippetcomputationtime;
rtimeSum += query.searchtime;
if (query.resultcount > 0){
rcount++;
utimeSum1 += query.urlretrievaltime;
stimeSum1 += query.snippetcomputationtime;
rtimeSum1 += query.searchtime;
}
m++;
}
prop.put("page_list", m);
prop.put("page_num", m);
prop.put("page_resultcount", rcount);
// Put -1 instead of NaN as result for empty search list and return the safe HTML blank char for table output
if (m == 0) {
m = -1;
// return empty values to not break the table view
prop.put("page_list", 1);
prop.put("page_list_0_dark", 1 );
prop.put("page_list_0_host", "");
prop.put("page_list_0_date", "");
prop.put("page_list_0_timestamp", "");
if (page == 2) {
// local search
prop.putNum("page_list_0_offset", "");
prop.put("page_list_0_querystring", "");
} else {
// remote search
prop.put("page_list_0_peername", "");
prop.put("page_list_0_queryhashes", "");
}
prop.putNum("page_list_0_querycount", "");
prop.putNum("page_list_0_transmitcount", "");
prop.putNum("page_list_0_resultcount", "");
prop.putNum("page_list_0_urltime", "");
prop.putNum("page_list_0_snippettime", "");
prop.putNum("page_list_0_resulttime", "");
prop.put("page_list_0_userAgent", "");
}
if (rcount == 0) rcount = -1;
prop.putNum("page_querycount_avg", (double) qcountSum / m);
prop.putNum("page_resultcount_avg", (double) rcountSum / m);
prop.putNum("page_urltime_avg", (double) utimeSum / m);
prop.putNum("page_snippettime_avg", (double) stimeSum / m);
prop.putNum("page_resulttime_avg", (double) rtimeSum / m);
prop.putNum("page_transmitcount_avg", (double) tcountSum / rcount);
prop.putNum("page_resultcount_avg1", (double) rcountSum / rcount);
prop.putNum("page_urltime_avg1", (double) utimeSum1 / rcount);
prop.putNum("page_snippettime_avg1", (double) stimeSum1 / rcount);
prop.putNum("page_resulttime_avg1", (double) rtimeSum1 / rcount);
prop.putNum("page_total", (page == 2) ? AccessTracker.size(AccessTracker.Location.local) : AccessTracker.size(AccessTracker.Location.remote));
} else if ((page == 3) || (page == 5)) {
final Iterator<Entry<String, TreeSet<Long>>> i = (page == 3) ? sb.localSearchTracker.entrySet().iterator() : sb.remoteSearchTracker.entrySet().iterator();
String host;
TreeSet<Long> handles;
int m = 0;
int qphSum = 0;
Map.Entry<String, TreeSet<Long>> entry;
try {
while ((m < maxCount) && (i.hasNext())) {
entry = i.next();
host = entry.getKey();
handles = entry.getValue();
int dateCount = 0;
final Iterator<Long> ii = handles.iterator();
while (ii.hasNext()) {
final Long timestamp = ii.next();