)]}'
{
  "commit": "82f5090008b1115d29b3081fe1146ff51bd6aa22",
  "tree": "d75512702462a13506c9abddeff9b0bdad38ffde",
  "parents": [
    "21401a2920176edb0f8ddc998a77c718ddffcfab"
  ],
  "author": {
    "name": "lpino",
    "email": "lpino@google.com",
    "time": "Thu Apr 25 16:08:49 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Apr 25 16:10:21 2019 -0700"
  },
  "message": "Move BEP upload timeout management to the BES module.\n\nTimeout management for the BEP transports is currently very ad-hoc. For the FileTransports we don\u0027t have a timeout at all and for the BES transport we create a separate future that cancels the upload in case bes_timeout is reached.\n\nWith this CL we unify the timeout management by wrapping the close Futures returned by the streamer with a Futures.withTimeout each. The timeout we use is the one specified by BuildEventTransport#getTimeout. Notice that this CL keeps the preserves the old behavior by setting the timeout of BES transport to bes_timeout and Duration.ZERO (e.g. no timeout) for FileTransport.\n\nAnother thing to notice when Futures.withTimeout times out it wraps the TimeoutException with an ExecutionException so we need to add some special-casing in the BES module to detect that case an print the right message in the terminal (instead of a cryptic TimeoutException stack trace).\n\nPiperOrigin-RevId: 245325738\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d41ab4448e9120ab0ddd286f643a5f584ccdcc5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java",
      "new_id": "145848c0b10b9148335cc48e8b5c5b385440bc71",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceModule.java"
    },
    {
      "type": "modify",
      "old_id": "682cdf36803b6dc275c17df17512096c3c9bde17",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceTransport.java",
      "new_id": "88797dd237819c919b4ad780cf2994ddf630f040",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceTransport.java"
    },
    {
      "type": "modify",
      "old_id": "145c2279d8fb6009e9755d65e26c6c1ff1157c8a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploader.java",
      "new_id": "53eab936ccb4219b713f0ca160b0ae456256accc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildeventservice/BuildEventServiceUploader.java"
    },
    {
      "type": "modify",
      "old_id": "7d15fabc84cca1b23dc891ca6ff6e95ab0ca8c0c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventTransport.java",
      "new_id": "15cbb6a38f2f2a416ea1def1746bede2b183eda1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventTransport.java"
    }
  ]
}
