1. use start/End document in handler; 2. populate metadata before handler is called. 3. make topN 2 in both REST and script configs.
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java
index a44564b..4cb1364 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/recognition/ObjectRecognitionParser.java
@@ -39,6 +39,7 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.ArrayList;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
@@ -121,32 +122,50 @@
         LOG.debug("Time taken {}ms", System.currentTimeMillis() - start);
         if (objects != null && !objects.isEmpty()) {
 
-            XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
-            xhtml.startElement("ol", "id", "objects");
             Collections.sort(objects, DESC_CONFIDENCE_SORTER);
-            int count = 0;
-            for (RecognisedObject object : objects) {
+	    int count = 0;
+	    List<RecognisedObject> acceptedObjects = new ArrayList<RecognisedObject>(topN);
+
+	    // first process all the MD objects
+	    for (RecognisedObject object: objects){
                 if (object.getConfidence() >= minConfidence) {
-                    LOG.debug("Add {}", object);
-                    count++;
-                    String mdValue = String.format(Locale.ENGLISH, "%s (%.5f)",
-                            object.getLabel(), object.getConfidence());
-                    metadata.add(MD_KEY, mdValue);
+		    if (object.getConfidence() >= minConfidence) {
+			count++;
+			LOG.debug("Add {}", object);
+			String mdValue = String.format(Locale.ENGLISH, "%s (%.5f)",
+						   object.getLabel(), object.getConfidence());
+			metadata.add(MD_KEY, mdValue);
+			acceptedObjects.add(object);
+			if (count >= topN) {
+			    break;
+			}
+		    }
+		    else{
+			LOG.warn("Object {} confidence {} less than min {}", object, object.getConfidence(), minConfidence);
+		    }
+		}
+	    }
+
+	    // now the handler
+            XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+	    xhtml.startDocument();
+            xhtml.startElement("ol", "id", "objects");
+            count = 0;
+            for (RecognisedObject object : acceptedObjects) {
                     //writing to handler
                     xhtml.startElement("li", "id", object.getId());
                     String text = String.format(Locale.ENGLISH, " %s [%s](confidence = %f )",
                             object.getLabel(), object.getLabelLang(), object.getConfidence());
-                    xhtml.characters(text);
+		    xhtml.characters(text);
                     xhtml.endElement("li");
-                    if (count >= topN) {
-                        break;
-                    }
-                }
             }
+
             xhtml.endElement("ol");
+	    xhtml.endDocument();
         } else {
             LOG.warn("NO objects");
             metadata.add("no.objects", Boolean.TRUE.toString());
         }
+
     }
 }
diff --git a/tika-parsers/src/test/resources/org/apache/tika/parser/recognition/tika-config-tflow-rest.xml b/tika-parsers/src/test/resources/org/apache/tika/parser/recognition/tika-config-tflow-rest.xml
index ad72c95..ddb42ec 100644
--- a/tika-parsers/src/test/resources/org/apache/tika/parser/recognition/tika-config-tflow-rest.xml
+++ b/tika-parsers/src/test/resources/org/apache/tika/parser/recognition/tika-config-tflow-rest.xml
@@ -21,10 +21,10 @@
         <parser class="org.apache.tika.parser.recognition.ObjectRecognitionParser">
             <mime>image/jpeg</mime>
             <params>
-                <param name="topN" type="int">7</param>
+                <param name="topN" type="int">2</param>
                 <param name="minConfidence" type="double">0.015</param>
                 <param name="class" type="string">org.apache.tika.parser.recognition.tf.TensorflowRESTRecogniser</param>
             </params>
         </parser>
     </parsers>
-</properties>
\ No newline at end of file
+</properties>