From 10fee56ce1fdf9d59c1a0969fd5ca03831438399 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 1 Mar 2023 13:01:02 +0100 Subject: [PATCH] GH-995 Wrapped SCF version discovery in AWS Custom Runtime with try/catch Resolves #995 --- .../adapter/aws/CustomRuntimeEventLoop.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeEventLoop.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeEventLoop.java index bf276ea8d..ac9c5c01c 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeEventLoop.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/CustomRuntimeEventLoop.java @@ -267,12 +267,21 @@ public final class CustomRuntimeEventLoop implements SmartLifecycle { } private static String extractVersion() { - String path = CustomRuntimeEventLoop.class.getProtectionDomain().getCodeSource().getLocation().toString(); - int endIndex = path.lastIndexOf('.'); - if (endIndex < 0) { + try { + String path = CustomRuntimeEventLoop.class.getProtectionDomain().getCodeSource().getLocation().toString(); + int endIndex = path.lastIndexOf('.'); + if (endIndex < 0) { + return "UNKNOWN-VERSION"; + } + int startIndex = path.lastIndexOf("/") + 1; + return path.substring(startIndex, endIndex).replace("spring-cloud-function-adapter-aws-", ""); + } + catch (Exception e) { + if (logger.isDebugEnabled()) { + logger.debug("Failed to detect version", e); + } return "UNKNOWN-VERSION"; } - int startIndex = path.lastIndexOf("/") + 1; - return path.substring(startIndex, endIndex).replace("spring-cloud-function-adapter-aws-", ""); + } }