Author: jverhaeg(a)redhat.com
Date: 2008-10-24 17:38:30 -0400 (Fri, 24 Oct 2008)
New Revision: 586
Modified:
trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/SimpleProgressMonitor.java
Log:
Changed SimpleProgressMonitor to be thread-safe by making it use thread-safe problems
internally, added a thread-safe annotation, and update the JavaDocs accordingly.
Modified:
trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/SimpleProgressMonitor.java
===================================================================
---
trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/SimpleProgressMonitor.java 2008-10-24
21:07:56 UTC (rev 585)
+++
trunk/dna-common/src/main/java/org/jboss/dna/common/monitor/SimpleProgressMonitor.java 2008-10-24
21:38:30 UTC (rev 586)
@@ -27,21 +27,18 @@
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import net.jcip.annotations.GuardedBy;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.collection.Problems;
-import org.jboss.dna.common.collection.SimpleProblems;
+import org.jboss.dna.common.collection.ThreadSafeProblems;
import org.jboss.dna.common.i18n.I18n;
/**
* A basic progress monitor.
- * <p>
- * This class is thread-safe except when accessing or adding {@link #getProblems()
problems}. Problems must only be added by the
- * {@link ProgressMonitor <strong>Updater</strong>}, and accessed by {@link
ProgressMonitor Observers} only after the activity
- * has been {@link #done() completed}.
- * </p>
*
* @author Randall Hauch
* @author John Verhaeg
*/
+@ThreadSafe
public class SimpleProgressMonitor implements ProgressMonitor {
@GuardedBy( "lock" )
@@ -56,7 +53,7 @@
private final String activityName;
private final ReadWriteLock lock = new ReentrantReadWriteLock();
private final AtomicBoolean cancelled = new AtomicBoolean(false);
- private final Problems problems = new SimpleProblems();
+ private final Problems problems = new ThreadSafeProblems();
public SimpleProgressMonitor( String activityName ) {
this.activityName = activityName != null ? activityName.trim() : "";
Show replies by date