瀏覽代碼

Remove task null check in TransportAction (#45014)

The task that TaskManager#register returns cannot be null. The method
enforces that it is not null after calling request#createTask. It is
then needless to check for null in the listener later. Also, added the
call to the delegate listener in a finally block, just to make sure.
Luca Cavanna 6 年之前
父節點
當前提交
9e7af14865
共有 1 個文件被更改,包括 16 次插入8 次删除
  1. 16 8
      server/src/main/java/org/elasticsearch/action/support/TransportAction.java

+ 16 - 8
server/src/main/java/org/elasticsearch/action/support/TransportAction.java

@@ -64,14 +64,20 @@ public abstract class TransportAction<Request extends ActionRequest, Response ex
         execute(task, request, new ActionListener<Response>() {
             @Override
             public void onResponse(Response response) {
-                taskManager.unregister(task);
-                listener.onResponse(response);
+                try {
+                    taskManager.unregister(task);
+                } finally {
+                    listener.onResponse(response);
+                }
             }
 
             @Override
             public void onFailure(Exception e) {
-                taskManager.unregister(task);
-                listener.onFailure(e);
+                try {
+                    taskManager.unregister(task);
+                } finally {
+                    listener.onFailure(e);
+                }
             }
         });
         return task;
@@ -86,18 +92,20 @@ public abstract class TransportAction<Request extends ActionRequest, Response ex
         execute(task, request, new ActionListener<Response>() {
             @Override
             public void onResponse(Response response) {
-                if (task != null) {
+                try {
                     taskManager.unregister(task);
+                } finally {
+                    listener.onResponse(task, response);
                 }
-                listener.onResponse(task, response);
             }
 
             @Override
             public void onFailure(Exception e) {
-                if (task != null) {
+                try {
                     taskManager.unregister(task);
+                } finally {
+                    listener.onFailure(task, e);
                 }
-                listener.onFailure(task, e);
             }
         });
         return task;