You are viewing a plain text version of this content. The canonical link for it is here.
Posted to droids-commits@incubator.apache.org by bc...@apache.org on 2011/02/22 21:00:17 UTC

svn commit: r1073499 - /incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java

Author: bchapuis
Date: Tue Feb 22 21:00:17 2011
New Revision: 1073499

URL: http://svn.apache.org/viewvc?rev=1073499&view=rev
Log:
DROIDS-120: Better exception handling in SimpleTaskQueue - merge. Patch: Eugen Paraschiv.

Modified:
    incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java

Modified: incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java
URL: http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java?rev=1073499&r1=1073498&r2=1073499&view=diff
==============================================================================
--- incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java (original)
+++ incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/impl/SimpleTaskQueue.java Tue Feb 22 21:00:17 2011
@@ -24,6 +24,8 @@ import java.util.Queue;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.droids.api.*;
 import org.apache.droids.exception.InvalidTaskException;
 
@@ -31,6 +33,7 @@ import org.apache.droids.exception.Inval
  * A simple 
  */
 public class SimpleTaskQueue<T extends Task> implements TaskQueue<T> {
+  protected final Log log = LogFactory.getLog(this.getClass());
   private final Queue<T> queue;
   private final Map<String,T> taskMap;
   
@@ -70,7 +73,7 @@ public class SimpleTaskQueue<T extends T
   }
 
   public void merge(T task) throws InvalidTaskException {
-    // if we alreay have the id in our map, then don't add it to the queue...
+    // if we already have the id in our map, then don't add it to the queue...
     synchronized( taskMap ) {
       task = this.validateTask( task );
       String key = task.getId();
@@ -85,9 +88,14 @@ public class SimpleTaskQueue<T extends T
    * Tasks with duplicate keys will be overwritten
    * @throws InvalidTaskException 
    */
-  public void merge(Collection<? extends T> tasks) throws InvalidTaskException {
+  public void merge(Collection<? extends T> tasks) {
     for( T task : tasks ) {
-      merge( task );
+      try{
+        merge( task );
+      }
+      catch (final InvalidTaskException ex) {
+        log.warn("Merging failed for task: " + task, ex);
+      }
     }
   }