|
21 | 21 | import java.util.logging.Level; |
22 | 22 | import java.util.logging.Logger; |
23 | 23 |
|
24 | | -import com.fasterxml.jackson.core.JsonProcessingException; |
25 | 24 | import com.fasterxml.jackson.databind.JsonNode; |
26 | 25 | import com.fasterxml.jackson.databind.ObjectMapper; |
27 | 26 | import com.github.copilot.sdk.events.AbstractSessionEvent; |
@@ -386,9 +385,14 @@ CompletableFuture<PermissionRequestResult> handlePermissionRequest(JsonNode perm |
386 | 385 | PermissionRequest request = MAPPER.treeToValue(permissionRequestData, PermissionRequest.class); |
387 | 386 | PermissionInvocation invocation = new PermissionInvocation(); |
388 | 387 | invocation.setSessionId(sessionId); |
389 | | - return handler.handle(request, invocation); |
390 | | - } catch (JsonProcessingException e) { |
391 | | - LOG.log(Level.SEVERE, "Failed to parse permission request", e); |
| 388 | + return handler.handle(request, invocation).exceptionally(ex -> { |
| 389 | + LOG.log(Level.SEVERE, "Permission handler threw an exception", ex); |
| 390 | + PermissionRequestResult result = new PermissionRequestResult(); |
| 391 | + result.setKind("denied-no-approval-rule-and-could-not-request-from-user"); |
| 392 | + return result; |
| 393 | + }); |
| 394 | + } catch (Exception e) { |
| 395 | + LOG.log(Level.SEVERE, "Failed to process permission request", e); |
392 | 396 | PermissionRequestResult result = new PermissionRequestResult(); |
393 | 397 | result.setKind("denied-no-approval-rule-and-could-not-request-from-user"); |
394 | 398 | return CompletableFuture.completedFuture(result); |
|
0 commit comments