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 2008/01/17 17:44:42 UTC

svn commit: r612861 - in /incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl: DistributingEventHandler.java JobEventHandler.java TimedEventHandler.java

Author: cziegeler
Date: Thu Jan 17 08:44:40 2008
New Revision: 612861

URL: http://svn.apache.org/viewvc?rev=612861&view=rev
Log:
Fix bugs in cleanup tasks (query was wrong) and TimedEventHandler is invoked either by a timed event or periodically.

Modified:
    incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java
    incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
    incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java

Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/DistributingEventHandler.java Thu Jan 17 08:44:40 2008
@@ -61,18 +61,22 @@
             buffer.append(this.repositoryPath);
             buffer.append("//element(*, ");
             buffer.append(getEventNodeType());
-            buffer.append(") [");
+            buffer.append(")[@");
             buffer.append(EventHelper.NODE_PROPERTY_CREATED);
-            buffer.append(" < '");
+            buffer.append(" < xs:dateTime('");
             buffer.append(dateString);
-            buffer.append("']");
+            buffer.append("')]");
 
+            this.logger.debug("Executing query {}", buffer);
             final Query q = qManager.createQuery(buffer.toString(), Query.XPATH);
             final NodeIterator iter = q.execute().getNodes();
+            int count = 0;
             while ( iter.hasNext() ) {
                 final Node eventNode = iter.nextNode();
                 eventNode.remove();
+                count++;
             }
+            this.logger.debug("Removed {} event nodes from the repository.", count);
             parentNode.save();
         } catch (RepositoryException e) {
             // in the case of an error, we just log this as a warning

Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/JobEventHandler.java Thu Jan 17 08:44:40 2008
@@ -98,13 +98,13 @@
                     buffer.append(JobEventHandler.this.repositoryPath);
                     buffer.append("//element(*, ");
                     buffer.append(JobEventHandler.this.getEventNodeType());
-                    buffer.append(") [");
+                    buffer.append(") [@");
                     buffer.append(EventHelper.NODE_PROPERTY_ACTIVE);
-                    buffer.append(" = 'false' and ");
+                    buffer.append(" = 'false' and @");
                     buffer.append(EventHelper.NODE_PROPERTY_FINISHED);
-                    buffer.append(" < '");
+                    buffer.append(" < xs:dateTime('");
                     buffer.append(dateString);
-                    buffer.append("']");
+                    buffer.append("')]");
 
                     final Query q = qManager.createQuery(buffer.toString(), Query.XPATH);
                     final NodeIterator iter = q.execute().getNodes();

Modified: incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java?rev=612861&r1=612860&r2=612861&view=diff
==============================================================================
--- incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java (original)
+++ incubator/sling/trunk/sling/event/src/main/java/org/apache/sling/event/impl/TimedEventHandler.java Thu Jan 17 08:44:40 2008
@@ -355,6 +355,13 @@
      * @see org.apache.sling.scheduler.Job#execute(org.apache.sling.scheduler.JobContext)
      */
     public void execute(JobContext context) {
+        // as we are called periodically as well, we have to check the configuration first
+        if ( context.getConfiguration() == null ) {
+            // period call, just invoke run
+            this.run();
+            return;
+        }
+
         final String topic = (String) context.getConfiguration().get(JOB_TOPIC);
         @SuppressWarnings("unchecked")
         final Dictionary<Object, Object> properties = (Dictionary<Object, Object>) context.getConfiguration().get(JOB_CONFIG);