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 2010/10/24 14:27:25 UTC

svn commit: r1026774 - /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java

Author: cziegeler
Date: Sun Oct 24 12:27:25 2010
New Revision: 1026774

URL: http://svn.apache.org/viewvc?rev=1026774&view=rev
Log:
Make new queue name unique when renaming.

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

Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java?rev=1026774&r1=1026773&r2=1026774&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java (original)
+++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/impl/jobs/DefaultJobManager.java Sun Oct 24 12:27:25 2010
@@ -275,21 +275,7 @@ public class DefaultJobManager
             queue = this.queues.get(queueName);
             // check for reconfiguration, we really do an identity check here(!)
             if ( queue != null && queue.getConfiguration() != config ) {
-                // remove the queue with the old name
-                this.queues.remove(queueName);
-                // check if we can close or have to rename
-                queue.markForCleanUp();
-                if ( queue.isMarkedForCleanUp() ) {
-                    // close
-                    queue.close();
-                    // copy statistics
-                    this.baseStatistics.add(queue);
-                } else {
-                    // notify queue
-                    queue.rename(queueName + "<outdated>");
-                    // readd with new name
-                    this.queues.put(queue.getName(), queue);
-                }
+                this.outdateQueue(queue);
                 // we use a new queue with the configuration
                 queue = null;
             }
@@ -689,6 +675,24 @@ public class DefaultJobManager
         }
     }
 
+    private void outdateQueue(final AbstractJobQueue queue) {
+        // remove the queue with the old name
+        this.queues.remove(queue.getName());
+        // check if we can close or have to rename
+        queue.markForCleanUp();
+        if ( queue.isMarkedForCleanUp() ) {
+            // close
+            queue.close();
+            // copy statistics
+            this.baseStatistics.add(queue);
+        } else {
+            // notify queue
+            queue.rename(queue.getName() + "<outdated>(" + queue.hashCode() + ")");
+            // readd with new name
+            this.queues.put(queue.getName(), queue);
+        }
+    }
+
     /**
      * @see org.apache.sling.event.jobs.JobManager#restart()
      */
@@ -697,19 +701,7 @@ public class DefaultJobManager
         synchronized ( queuesLock ) {
             final List<AbstractJobQueue> queues = new ArrayList<AbstractJobQueue>(this.queues.values());
             for(final AbstractJobQueue queue : queues ) {
-                // remove the queue with the old name
-                this.queues.remove(queue.getName());
-                // check if we can close or have to rename
-                queue.markForCleanUp();
-                if ( queue.isMarkedForCleanUp() ) {
-                    // close
-                    queue.close();
-                } else {
-                    // notify queue
-                    queue.rename(queue.getName() + "<outdated>");
-                    // readd with new name
-                    this.queues.put(queue.getName(), queue);
-                }
+                this.outdateQueue(queue);
             }
         }
         // reset statistics