diff --git a/webconsole-plugins/event/src/main/java/org/apache/felix/webconsole/plugins/event/internal/PluginServlet.java b/webconsole-plugins/event/src/main/java/org/apache/felix/webconsole/plugins/event/internal/PluginServlet.java
index 830b057..38656c1 100644
--- a/webconsole-plugins/event/src/main/java/org/apache/felix/webconsole/plugins/event/internal/PluginServlet.java
+++ b/webconsole-plugins/event/src/main/java/org/apache/felix/webconsole/plugins/event/internal/PluginServlet.java
@@ -23,11 +23,17 @@
 import java.io.PrintWriter;
 import java.lang.reflect.Array;
 import java.net.URL;
-import java.util.*;
+import java.util.Date;
+import java.util.Dictionary;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 
 import javax.servlet.ServletException;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
@@ -358,7 +364,7 @@
                 final Object value = current.getValue();
                 if ( null == value )
                 {
-                  jw.write("null"); //$NON-NLS-1$
+                  jw.write( "null" ); //$NON-NLS-1$
                 }
                 else if ( value.getClass().isArray() )
                 {
@@ -370,7 +376,7 @@
                         {
                             b.append(", ");
                         }
-                        b.append( Array.get(value, m).toString() );
+                        b.append( String.valueOf( Array.get(value, m) ) );
                     }
                     b.append(']');
                     jsonValue(jw, b.toString());
