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