You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2014/10/23 18:46:20 UTC

svn commit: r1633877 - in /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs: JobManagerImpl.java tasks/CleanUpTask.java

Author: cziegeler
Date: Thu Oct 23 16:46:19 2014
New Revision: 1633877

URL: http://svn.apache.org/r1633877
Log:
SLING-4095 : Clean up code and logging statements

Modified:
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
    sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java?rev=1633877&r1=1633876&r2=1633877&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java Thu Oct 23 16:46:19 2014
@@ -125,9 +125,6 @@ public class JobManagerImpl
 
     private CleanUpTask maintenanceTask;
 
-    /** We count the scheduler runs. */
-    private volatile long schedulerRuns;
-
     /** Job Scheduler. */
     private JobSchedulerImpl jobScheduler;
 
@@ -149,7 +146,7 @@ public class JobManagerImpl
      */
     @Deactivate
     protected void deactivate() {
-        logger.info("Apache Sling Job Manager stopping on instance {}", Environment.APPLICATION_ID);
+        logger.debug("Apache Sling Job Manager stopping on instance {}", Environment.APPLICATION_ID);
         this.configuration.removeListener(this);
 
         this.jobScheduler.deactivate();
@@ -160,39 +157,15 @@ public class JobManagerImpl
 
     /**
      * This method is invoked periodically by the scheduler.
-     * It searches for idle queues and stops them after a timeout. If a queue
-     * is idle for two consecutive clean up calls, it is removed.
-     * @see java.lang.Runnable#run()
-     */
-    private void maintain() {
-        this.schedulerRuns++;
-        logger.debug("Job manager maintenance: Starting #{}", this.schedulerRuns);
-
-        // invoke maintenance task
-        final CleanUpTask task = this.maintenanceTask;
-        if ( task != null ) {
-            task.run(this.topologyCapabilities, this.schedulerRuns - 1);
-        }
-        logger.debug("Job manager maintenance: Finished #{}", this.schedulerRuns);
-    }
-
-    /**
-     * This method is invoked periodically by the scheduler.
      * In the default configuration every minute
      * @see java.lang.Runnable#run()
      */
     @Override
     public void run() {
-        this.maintain();
-    }
-
-    /**
-     * Helper method which just logs the exception in debug mode.
-     * @param e
-     */
-    private void ignoreException(final Exception e) {
-        if ( this.logger.isDebugEnabled() ) {
-            this.logger.debug("Ignored exception " + e.getMessage(), e);
+        // invoke maintenance task
+        final CleanUpTask task = this.maintenanceTask;
+        if ( task != null ) {
+            task.run();
         }
     }
 
@@ -378,7 +351,7 @@ public class JobManagerImpl
                         }
                         NotificationUtility.sendNotification(this.eventAdmin, NotificationConstants.TOPIC_JOB_REMOVED, job, null);
                     } catch ( final PersistenceException pe) {
-                        this.ignoreException(pe);
+                        logger.warn("Unable to remove job at " + job.getResourcePath(), pe);
                         result = false;
                     } finally {
                         resolver.close();
@@ -423,9 +396,10 @@ public class JobManagerImpl
      */
     @Override
     public Job getJobByName(final String name) {
+        final StringBuilder buf = new StringBuilder(64);
+
         final ResourceResolver resolver = this.configuration.createResourceResolver();
         try {
-            final StringBuilder buf = new StringBuilder(64);
 
             buf.append("//element(*,");
             buf.append(ResourceHelper.RESOURCE_TYPE_JOB);
@@ -447,7 +421,7 @@ public class JobManagerImpl
                 }
             }
         } catch (final QuerySyntaxException qse) {
-            this.ignoreException(qse);
+            logger.warn("Query syntax wrong " + buf.toString(), qse);
         } finally {
             resolver.close();
         }
@@ -461,8 +435,8 @@ public class JobManagerImpl
     public Job getJobById(final String id) {
         logger.debug("Getting job by id: {}", id);
         final ResourceResolver resolver = this.configuration.createResourceResolver();
+        final StringBuilder buf = new StringBuilder(64);
         try {
-            final StringBuilder buf = new StringBuilder(64);
 
             buf.append("//element(*,");
             buf.append(ResourceHelper.RESOURCE_TYPE_JOB);
@@ -490,7 +464,7 @@ public class JobManagerImpl
                 }
             }
         } catch (final QuerySyntaxException qse) {
-            this.ignoreException(qse);
+            logger.warn("Query syntax wrong " + buf.toString(), qse);
         } finally {
             resolver.close();
         }
@@ -550,8 +524,8 @@ public class JobManagerImpl
                                        || type == QueryType.STOPPED;
         final List<Job> result = new ArrayList<Job>();
         final ResourceResolver resolver = this.configuration.createResourceResolver();
+        final StringBuilder buf = new StringBuilder(64);
         try {
-            final StringBuilder buf = new StringBuilder(64);
 
             buf.append("//element(*,");
             buf.append(ResourceHelper.RESOURCE_TYPE_JOB);
@@ -698,7 +672,7 @@ public class JobManagerImpl
                 }
              }
         } catch (final QuerySyntaxException qse) {
-            this.ignoreException(qse);
+            logger.warn("Query syntax wrong " + buf.toString(), qse);
         } finally {
             resolver.close();
         }
@@ -756,7 +730,6 @@ public class JobManagerImpl
                     }
                 } catch (final PersistenceException ignore) {
                     // ignore
-                    this.ignoreException(ignore);
                 }
             }
         } finally {

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java?rev=1633877&r1=1633876&r2=1633877&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/tasks/CleanUpTask.java Thu Oct 23 16:46:19 2014
@@ -48,6 +48,9 @@ public class CleanUpTask {
     /** Job manager configuration. */
     private final JobManagerConfiguration configuration;
 
+    /** We count the scheduler runs. */
+    private volatile long schedulerRuns;
+
     /**
      * Constructor
      */
@@ -58,8 +61,11 @@ public class CleanUpTask {
     /**
      * One maintenance run
      */
-    public void run(final TopologyCapabilities topologyCapabilities,
-            final long cleanUpCounter) {
+    public void run() {
+        this.schedulerRuns++;
+        logger.debug("Job manager maintenance: Starting #{}", this.schedulerRuns);
+
+        final TopologyCapabilities topologyCapabilities = configuration.getTopologyCapabilities();
         if ( topologyCapabilities != null ) {
             // Clean up
             final String cleanUpUnassignedPath;;
@@ -69,12 +75,12 @@ public class CleanUpTask {
                 cleanUpUnassignedPath = null;
             }
 
-            if ( cleanUpCounter % 60 == 0 ) { // full clean up is done every hour
+            if ( schedulerRuns % 60 == 0 ) { // full clean up is done every hour
                 this.fullEmptyFolderCleanup(topologyCapabilities, this.configuration.getLocalJobsPath());
                 if ( cleanUpUnassignedPath != null ) {
                     this.fullEmptyFolderCleanup(topologyCapabilities, cleanUpUnassignedPath);
                 }
-            } else if ( cleanUpCounter % 5 == 0 ) { // simple clean up every 5 minutes
+            } else if ( schedulerRuns % 5 == 0 ) { // simple clean up every 5 minutes
                 this.simpleEmptyFolderCleanup(topologyCapabilities, this.configuration.getLocalJobsPath());
                 if ( cleanUpUnassignedPath != null ) {
                     this.simpleEmptyFolderCleanup(topologyCapabilities, cleanUpUnassignedPath);
@@ -84,6 +90,7 @@ public class CleanUpTask {
 
         // lock cleanup is done every minute
         this.lockCleanup(topologyCapabilities);
+        logger.debug("Job manager maintenance: Finished #{}", this.schedulerRuns);
     }
 
     /**