diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 0d5ae0996..24bcc375e 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -427,7 +427,7 @@ public class I2PSnarkServlet extends BasicServlet {
String sort = ("2".equals(currentSort)) ? "-2" : "2";
out.write("
\n
");
@@ -457,7 +457,7 @@ public class I2PSnarkServlet extends BasicServlet {
sort = (currentSort == null || "0".equals(currentSort) || "1".equals(currentSort)) ? "-1" : "";
out.write(" | \n");
@@ -469,7 +469,7 @@ public class I2PSnarkServlet extends BasicServlet {
sort = ("4".equals(currentSort)) ? "-4" : "4";
out.write("   
+ *0, 1: Name
+ *2: Status
+ *3: Peers
+ *4: ETA
+ *5: Size
+ *6: Downloaded
+ *7: Uploaded
+ *8: Down rate
+ *9: Up rate
+ *10: Remaining (needed)
+ *
+ */
public static Comparator getComparator(int type) {
boolean rev = type < 0;
Comparator rv;
@@ -143,7 +159,11 @@ class Sorters {
private StatusComparator(boolean rev) { super(rev); }
public int compareIt(Snark l, Snark r) {
- return getStatus(l) - getStatus(r);
+ int rv = getStatus(l) - getStatus(r);
+ if (rv != 0)
+ return rv;
+ // use reverse remaining as first tie break
+ return compLong(r.getNeededLength(), l.getNeededLength());
}
private static int getStatus(Snark snark) {
@@ -204,14 +224,15 @@ class Sorters {
private static long eta(Snark snark) {
long needed = snark.getNeededLength();
+ if (needed <= 0)
+ return 0;
long total = snark.getTotalLength();
if (needed > total)
needed = total;
- long remainingSeconds;
long downBps = snark.getDownloadRate();
- if (downBps > 0 && needed > 0)
+ if (downBps > 0)
return needed / downBps;
- return -1;
+ return Long.MAX_VALUE;
}
}
|