diff --git a/maven-monitor/src/main/java/org/apache/maven/monitor/event/AbstractSelectiveEventMonitor.java b/maven-monitor/src/main/java/org/apache/maven/monitor/event/AbstractSelectiveEventMonitor.java
index dd5a29b..4b714bb 100644
--- a/maven-monitor/src/main/java/org/apache/maven/monitor/event/AbstractSelectiveEventMonitor.java
+++ b/maven-monitor/src/main/java/org/apache/maven/monitor/event/AbstractSelectiveEventMonitor.java
@@ -28,35 +28,35 @@
 public abstract class AbstractSelectiveEventMonitor
     implements EventMonitor
 {
-    
+
     private List boundStartEvents;
     private List boundErrorEvents;
     private List boundEndEvents;
 
-    protected AbstractSelectiveEventMonitor(String[] startEvents, String[] endEvents, String[] errorEvents)
+    protected AbstractSelectiveEventMonitor( String[] startEvents, String[] endEvents, String[] errorEvents )
     {
         this.boundStartEvents = Arrays.asList( startEvents );
-        
+
         this.boundEndEvents = Arrays.asList( endEvents );
-        
+
         this.boundErrorEvents = Arrays.asList( errorEvents );
     }
 
     public final void startEvent( String eventName, String target, long timestamp )
     {
-        if( boundStartEvents.contains( eventName ) )
+        if ( boundStartEvents.contains( eventName ) )
         {
             doStartEvent( eventName, target, timestamp );
         }
     }
-    
+
     protected void doStartEvent( String eventName, String target, long timestamp )
     {
     }
 
     public final void endEvent( String eventName, String target, long timestamp )
     {
-        if( boundEndEvents.contains( eventName ) )
+        if ( boundEndEvents.contains( eventName ) )
         {
             doEndEvent( eventName, target, timestamp );
         }
@@ -68,7 +68,7 @@
 
     public final void errorEvent( String eventName, String target, long timestamp, Throwable cause )
     {
-        if( boundErrorEvents.contains( eventName ) )
+        if ( boundErrorEvents.contains( eventName ) )
         {
             doErrorEvent( eventName, target, timestamp, cause );
         }
