diff --git a/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java b/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
index b04a3a9635bd0938456606efd8032ff87ead7c32..4d7920546c893e0dee6f99deea71e7a4e2bf5b96 100644
--- a/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
+++ b/router/java/src/net/i2p/router/util/CoDelBlockingQueue.java
@@ -128,6 +128,9 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return codel(rv);
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c) {
         int rv = 0;
@@ -139,6 +142,9 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return rv;
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c, int maxElements) {
         int rv = 0;
@@ -149,6 +155,13 @@ public class CoDelBlockingQueue<E extends CDQEntry> extends LinkedBlockingQueue<
         return rv;
     }
 
+    /**
+     *  Drains all, without updating stats or dropping.
+     */
+    public int drainAllTo(Collection<? super E> c) {
+        return super.drainTo(c);
+    }
+
     /////// private below here
 
     /**
diff --git a/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java b/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
index 0224f5463b62d295edd33227caf60c4fc13a55e0..59e8fc9786e9be6ccaa4d30d412d301d60e171c8 100644
--- a/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
+++ b/router/java/src/net/i2p/router/util/CoDelPriorityBlockingQueue.java
@@ -139,6 +139,9 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return codel(rv);
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c) {
         int rv = 0;
@@ -150,6 +153,9 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return rv;
     }
 
+    /**
+     *  Updates stats and possibly drops while draining.
+     */
     @Override
     public int drainTo(Collection<? super E> c, int maxElements) {
         int rv = 0;
@@ -160,6 +166,13 @@ public class CoDelPriorityBlockingQueue<E extends CDPQEntry> extends PriorityBlo
         return rv;
     }
 
+    /**
+     *  Drains all, without updating stats or dropping.
+     */
+    public int drainAllTo(Collection<? super E> c) {
+        return super.drainTo(c);
+    }
+
     /////// private below here
 
     private void timestamp(E o) {