Index: /trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java
===================================================================
--- /trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java	(revision 997)
+++ /trunk/autoquest-htmlmonitor/src/main/java/de/ugoe/cs/autoquest/htmlmonitor/HtmlMonitorServlet.java	(revision 998)
@@ -126,6 +126,8 @@
         Object value = null;
         try {
+            InputStream requestInputStream = request.getInputStream();
+            
             value = JSONValue.parseWithException
-                (new InputStreamReader(request.getInputStream(), "UTF-8"));
+                (new InputStreamReader(requestInputStream, "UTF-8"));
             
             if (!(value instanceof JSONObject)) {
@@ -171,5 +173,5 @@
                 if (events == null) {
                     Console.printerrln
-                    ("incoming message does not contain valid events --> discarding it");
+                        ("incoming message does not contain valid events --> discarding it");
                 }
                 else {
@@ -260,15 +262,15 @@
                             assertValue(((JSONObject) eventObj), "selectedValue", String.class);
                     
-                    if (time == null) {
-                        Console.printerrln("event number " + (i + 1) + " has no valid timestamp");
+                    if (eventType == null) {
+                        Console.printerrln("event number " + (i + 1) + " has no valid event type");
+                    }
+                    else if (time == null) {
+                        Console.printerrln(eventType + " event has no valid timestamp");
                     }
                     else if (path == null) {
-                        Console.printerrln("event number " + (i + 1) + " has no valid path");
-                    }
-                    else if (eventType == null) {
-                        Console.printerrln("event number " + (i + 1) + " has no valid event type");
+                        Console.printerrln(eventType + " event has no valid path");
                     }
                     else if ((coordinates != null) && (coordinates.length != 2)) {
-                        Console.printerrln("event number " + (i + 1) + " has no valid coordinates");
+                        Console.printerrln(eventType + " event has no valid coordinates");
                     }
                     else if (checkEventParameterCombinations
@@ -279,6 +281,5 @@
                     }
                     else {
-                        Console.printerrln
-                            ("event number " + (i + 1) + " has no valid parameter combination");
+                        Console.printerrln(eventType + " event has no valid parameter combination");
                     }
                 }
@@ -361,7 +362,12 @@
         }
         else if ("onfocus".equals(eventType) || "onmouseout".equals(eventType) ||
-                 "onmousemove".equals(eventType) || "onunload".equals(eventType) ||
-                 "onbeforeunload".equals(eventType) || "onpagehide".equals(eventType) ||
-                 "onpageshow".equals(eventType))
+                 "onmousemove".equals(eventType) || "onload".equals(eventType) ||
+                 "onunload".equals(eventType) || "onbeforeunload".equals(eventType) ||
+                 "onpagehide".equals(eventType) || "onpageshow".equals(eventType) ||
+                 "onabort".equals(eventType) || "onsubmit".equals(eventType) ||
+                 "onplaying".equals(eventType) || "onpause".equals(eventType) ||
+                 "ontimeupdate".equals(eventType) || "onerror".equals(eventType) ||
+                 "onundo".equals(eventType) || "onreset".equals(eventType) ||
+                 "onselect".equals(eventType))
         {
             if ((coordinates == null) && (key == null) &&
@@ -489,4 +495,33 @@
     /**
      * <p>
+     * convenience method for dumping the content of a stream and returning a new stream
+     * containing the same data.
+     * </p>
+     *
+     * @param inputStream the stream to be dumped and copied
+     * @return the copy of the stream
+     * 
+     * @throws IOException if the stream can not be read 
+     */
+    /*private InputStream dumpStreamContent(ServletInputStream inputStream) throws IOException {
+        List<Byte> bytes = new ArrayList<Byte>();
+        int buf;
+        
+        while ((buf = inputStream.read()) >= 0) {
+            bytes.add((byte) buf);
+        }
+        
+        byte[] byteArray = new byte[bytes.size()];
+        for (int i = 0; i < bytes.size(); i++) {
+            byteArray[i] = bytes.get(i);
+        }
+        
+        System.out.println(new String(byteArray, "UTF-8"));
+        
+        return new ByteArrayInputStream(byteArray);
+    }*/
+
+    /**
+     * <p>
      * convenience method for dumping an object to std out. If the object is a JSON object, it is
      * deeply analyzed and its internal structure is dumped as well.
