Jelajahi Sumber

Better report to user on push timeout

Shane Kilkelly 7 tahun lalu
induk
melakukan
a72146aa8d

+ 4 - 2
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/snapshot/push/PostbackPromise.java

@@ -14,6 +14,8 @@ import java.util.concurrent.locks.ReentrantLock;
  */
  */
 public class PostbackPromise {
 public class PostbackPromise {
 
 
+    private static int TIMEOUT_SECONDS = 60 * 3;
+
     private final String postbackKey;
     private final String postbackKey;
     private final ReentrantLock lock;
     private final ReentrantLock lock;
     private final Condition cond;
     private final Condition cond;
@@ -35,8 +37,8 @@ public class PostbackPromise {
         try {
         try {
             while (!received) {
             while (!received) {
                 try {
                 try {
-                    if (!cond.await(60 * 3, TimeUnit.SECONDS)) {
-                        throw new PostbackTimeoutException();
+                    if (!cond.await(TIMEOUT_SECONDS, TimeUnit.SECONDS)) {
+                        throw new PostbackTimeoutException(TIMEOUT_SECONDS);
                     }
                     }
                 } catch (InterruptedException e) {
                 } catch (InterruptedException e) {
                     throw new InternalErrorException();
                     throw new InternalErrorException();

+ 7 - 1
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/snapshot/push/exception/PostbackTimeoutException.java

@@ -11,9 +11,15 @@ import java.util.List;
  */
  */
 public class PostbackTimeoutException extends SevereSnapshotPostException {
 public class PostbackTimeoutException extends SevereSnapshotPostException {
 
 
+    private int timeout;
+
+    public PostbackTimeoutException(int timeout) {
+        this.timeout = timeout;
+    }
+
     @Override
     @Override
     public String getMessage() {
     public String getMessage() {
-        return "timeout";
+        return "Request timed out (after " + this.timeout + " seconds)";
     }
     }
 
 
     @Override
     @Override