diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
index 1a5461246..ef70b170a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ProfileOrganizerRenderer.java
@@ -227,28 +227,19 @@ class ProfileOrganizerRenderer {
else
buf.append("
| ");
buf.append("").append(num(prof.getIntegrationValue())).append(" | ");
- long time;
- time = now - prof.getLastHeardAbout();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - prof.getLastHeardFrom();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - prof.getLastSendSuccessful();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - prof.getLastSendFailed();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
+ buf.append("").append(formatInterval(now, prof.getLastHeardAbout())).append(" | ");
+ buf.append("").append(formatInterval(now, prof.getLastHeardFrom())).append(" | ");
+ buf.append("").append(formatInterval(now, prof.getLastSendSuccessful())).append(" | ");
+ buf.append("").append(formatInterval(now, prof.getLastSendFailed())).append(" | ");
buf.append("").append(avg(prof, 10*60*1000l, ra)).append(" | ");
buf.append("").append(avg(prof, 60*60*1000l, ra)).append(" | ");
buf.append("").append(avg(prof, 24*60*60*1000l, ra)).append(" | ");
DBHistory dbh = prof.getDBHistory();
if (dbh != null) {
- time = now - dbh.getLastLookupSuccessful();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - dbh.getLastLookupFailed();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - dbh.getLastStoreSuccessful();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
- time = now - dbh.getLastStoreFailed();
- buf.append("").append(DataHelper.formatDuration2(time)).append(" | ");
+ buf.append("").append(formatInterval(now, dbh.getLastLookupSuccessful())).append(" | ");
+ buf.append("").append(formatInterval(now, dbh.getLastLookupFailed())).append(" | ");
+ buf.append("").append(formatInterval(now, dbh.getLastStoreSuccessful())).append(" | ");
+ buf.append("").append(formatInterval(now, dbh.getLastStoreFailed())).append(" | ");
buf.append("").append(davg(dbh, 60*60*1000l, ra)).append(" | ");
buf.append("").append(davg(dbh, 24*60*60*1000l, ra)).append(" | ");
} else {
@@ -369,6 +360,13 @@ class ProfileOrganizerRenderer {
return ((int) avg) + "%";
}
+ /** @since 0.9.21 */
+ private String formatInterval(long now, long then) {
+ if (then <= 0)
+ return _(NA);
+ return DataHelper.formatDuration2(now - then);
+ }
+
/** translate a string */
private String _(String s) {
return Messages.getString(s, _context);