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/05/06 09:17:42 UTC

svn commit: r653696 - /incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java

Author: cziegeler
Date: Tue May  6 00:17:42 2008
New Revision: 653696

URL: http://svn.apache.org/viewvc?rev=653696&view=rev
Log:
SLING-423: Correct node name handling for timed jobs; applied a slightly modified patch from Philipp Koch.

Modified:
    incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java

Modified: incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java?rev=653696&r1=653695&r2=653696&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java (original)
+++ incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/impl/TimedJobHandler.java Tue May  6 00:17:42 2008
@@ -39,6 +39,7 @@
 import javax.jcr.query.Query;
 import javax.jcr.query.QueryManager;
 
+import org.apache.jackrabbit.util.Text;
 import org.apache.sling.event.EventUtil;
 import org.apache.sling.scheduler.Job;
 import org.apache.sling.scheduler.JobContext;
@@ -125,8 +126,8 @@
     /**
      * Create a unique node name for this timed job.
      */
-    protected String getNodeName(String jobTopic, String jobId) {
-        return jobTopic.replace('/', '.') + " " + jobId.replace('/', '.');
+    protected String getNodeName(final ScheduleInfo info) {
+        return Text.escapeIllegalJcrChars(info.jobId);
     }
 
     /**
@@ -186,9 +187,7 @@
         try {
             // get parent node
             final Node parentNode = (Node)this.writerSession.getItem(this.repositoryPath);
-            final String jobTopic = ((String)event.getProperty(EventUtil.PROPERTY_JOB_TOPIC));
-            final String jobId = (String)event.getProperty(EventUtil.PROPERTY_JOB_ID);
-            final String nodeName = this.getNodeName(jobTopic, jobId);
+            final String nodeName = this.getNodeName(scheduleInfo);
             // is there already a node?
             final Node foundNode = parentNode.hasNode(nodeName) ? parentNode.getNode(nodeName) : null;
             Lock lock = null;
@@ -460,7 +459,7 @@
             try {
                 s = this.createSession();
                 final Node parentNode = (Node)s.getItem(this.repositoryPath);
-                final String nodeName = this.getNodeName(topic, info.jobId);
+                final String nodeName = this.getNodeName(info);
                 final Node eventNode = parentNode.hasNode(nodeName) ? parentNode.getNode(nodeName) : null;
                 if ( eventNode != null ) {
                     try {
@@ -550,14 +549,14 @@
     }
 
     /**
-     * @see org.apache.sling.core.event.impl.JobPersistenceHandler#getContainerNodeType()
+     * @see org.apache.sling.event.impl.AbstractRepositoryEventHandler#getContainerNodeType()
      */
     protected String getContainerNodeType() {
         return EventHelper.TIMED_EVENTS_NODE_TYPE;
     }
 
     /**
-     * @see org.apache.sling.core.event.impl.JobPersistenceHandler#getEventNodeType()
+     * @see org.apache.sling.event.impl.AbstractRepositoryEventHandler#getEventNodeType()
      */
     protected String getEventNodeType() {
         return EventHelper.TIMED_EVENT_NODE_TYPE;