Author: nicolas Date: Mon Apr 7 03:35:50 2008 New Revision: 645449 URL: http://svn.apache.org/viewvc?rev=645449&view=rev Log: (empty)
Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java Modified: commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java?rev=645449&r1=645448&r2=645449&view=diff ============================================================================== --- commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java (original) +++ commons/sandbox/monitoring/trunk/src/main/java/org/apache/commons/monitoring/reporting/AbstractPeriodicLogger.java Mon Apr 7 03:35:50 2008 @@ -45,7 +45,6 @@ /** The observed repository */ private SecondaryRepository secondary; - /** * @param period the period (in ms) to log the monitoring state * @param repository the target monitoring repository @@ -53,11 +52,23 @@ public AbstractPeriodicLogger( long period, Repository.Observable repository ) { super(); - this.secondary = new SecondaryRepository( repository ); + this.repository = repository; + observeRepositoryForPeriod(); timer = new Timer(); timer.scheduleAtFixedRate( this, period, period ); } + private SecondaryRepository observeRepositoryForPeriod() + { + SecondaryRepository previous = this.secondary; + this.secondary = new SecondaryRepository( repository ); + if (previous != null) + { + previous.detach(); + } + return previous; + } + /** * */ @@ -76,15 +87,11 @@ { try { - // Create a new observer for the next period - SecondaryRepository period = secondary; - period.detach(); - secondary = new SecondaryRepository( repository ); - - log( period ); + log( observeRepositoryForPeriod() ); } catch (Exception exception) { + System.err.print( exception ); // catch any exception, as throwing it will stop the timer } }