Index: lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java
===================================================================
--- lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java	(revision 1092621)
+++ lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java	(working copy)
@@ -167,12 +167,14 @@
    */
   public synchronized void setFlushPending(ThreadState perThread) {
     assert !perThread.flushPending;
-    assert perThread.perThread.getNumDocsInRAM() > 0;
-    perThread.flushPending = true; // write access synced
-    final long bytes = perThread.perThreadBytes;
-    flushBytes += bytes;
-    activeBytes -= bytes;
-    numPending++; // write access synced
+    if (perThread.perThread.getNumDocsInRAM() > 0) {
+      perThread.flushPending = true; // write access synced
+      final long bytes = perThread.perThreadBytes;
+      flushBytes += bytes;
+      activeBytes -= bytes;
+      numPending++; // write access synced
+    } // don't assert on numDocs since we could hit an abort excp. while selecting that dwpt for flushing
+    
   }
 
   synchronized void doOnAbort(ThreadState state) {
Index: lucene/src/java/org/apache/lucene/index/FlushPolicy.java
===================================================================
--- lucene/src/java/org/apache/lucene/index/FlushPolicy.java	(revision 1092621)
+++ lucene/src/java/org/apache/lucene/index/FlushPolicy.java	(working copy)
@@ -132,7 +132,6 @@
         }
       }
     }
-    assert maxRamUsingThreadState.perThread.getNumDocsInRAM() > 0;
     assert writer.get().message(
         "set largest ram consuming thread pending on lower watermark");
     return maxRamUsingThreadState;
