diff --git a/extensions/vault/runtime/src/main/java/io/quarkus/vault/runtime/config/VaultConfigSource.java b/extensions/vault/runtime/src/main/java/io/quarkus/vault/runtime/config/VaultConfigSource.java index 439f467bb6161..745067cd0e71d 100644 --- a/extensions/vault/runtime/src/main/java/io/quarkus/vault/runtime/config/VaultConfigSource.java +++ b/extensions/vault/runtime/src/main/java/io/quarkus/vault/runtime/config/VaultConfigSource.java @@ -4,6 +4,7 @@ import static java.util.Collections.emptyMap; import static java.util.stream.Collectors.toMap; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -14,6 +15,7 @@ import io.quarkus.arc.Arc; import io.quarkus.vault.VaultKVSecretEngine; +import io.smallrye.mutiny.infrastructure.Infrastructure; public class VaultConfigSource implements ConfigSource { @@ -58,6 +60,11 @@ private Map getSecretConfig() { return cacheEntry.getValue(); } + if (!Infrastructure.canCallerThreadBeBlocked()) { + // running in a non blocking thread, best effort to return cached values if any + return cacheEntry != null ? cacheEntry.getValue() : Collections.emptyMap(); + } + Map properties = new HashMap<>(); try {