LENS-1465: Sync queries blocking threads

Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/f4fdab01
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/f4fdab01
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/f4fdab01

Branch: refs/heads/master
Commit: f4fdab01395357159b2c641c8e6aa88223551838
Parents: 806703e
Author: Rajat Khandelwal <pro...@apache.org>
Authored: Wed Aug 30 16:10:13 2017 +0530
Committer: Rajat Khandelwal <rajatgupt...@gmail.com>
Committed: Wed Aug 30 16:10:13 2017 +0530

----------------------------------------------------------------------
 .../org/apache/lens/server/api/query/QueryContext.java   | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/f4fdab01/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
----------------------------------------------------------------------
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index 466fb25..8176f03 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -198,7 +198,7 @@ public class QueryContext extends AbstractQueryContext 
implements FailureContext
   @Getter
   @Setter
   private transient Future queryLauncher;
-  transient List<QueryDriverStatusUpdateListener> driverStatusUpdateListeners 
= Lists.newArrayList();
+  transient List<QueryDriverStatusUpdateListener> driverStatusUpdateListeners 
= Lists.newCopyOnWriteArrayList();
   @Getter
   @Setter
   List<FailedAttempt> failedAttempts = Lists.newArrayList();
@@ -572,10 +572,9 @@ public class QueryContext extends AbstractQueryContext 
implements FailureContext
       getDriverStatus().setStatusMessage("Query " + getQueryHandleString() + " 
" + state.name().toLowerCase());
     }
     getDriverStatus().setState(state);
-    synchronized (this) {
-      for (QueryDriverStatusUpdateListener listener : 
this.driverStatusUpdateListeners) {
-        listener.onDriverStatusUpdated(getQueryHandle(), getDriverStatus());
-      }
+
+    for (QueryDriverStatusUpdateListener listener : 
this.driverStatusUpdateListeners) {
+      listener.onDriverStatusUpdated(getQueryHandle(), getDriverStatus());
     }
   }
 
@@ -588,7 +587,7 @@ public class QueryContext extends AbstractQueryContext 
implements FailureContext
   }
 
 
-  public synchronized void 
registerStatusUpdateListener(QueryDriverStatusUpdateListener 
driverStatusUpdateListener) {
+  public void registerStatusUpdateListener(QueryDriverStatusUpdateListener 
driverStatusUpdateListener) {
     this.driverStatusUpdateListeners.add(driverStatusUpdateListener);
   }
 

Reply via email to