Skip to content

Commit fe044cd

Browse files
committed
Self-validate presence of sdk_version.
Signed-off-by: Artur Souza <[email protected]>
1 parent d7d372a commit fe044cd

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

sdk/src/main/java/io/dapr/utils/Version.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,43 @@
1616
import java.io.IOException;
1717
import java.io.InputStream;
1818
import java.util.Properties;
19+
import java.util.concurrent.atomic.AtomicReference;
1920

2021
public final class Version {
2122

22-
private static String sdkVersion = null;
23+
private static volatile AtomicReference<String> sdkVersion = new AtomicReference<>();
2324

2425
/**
2526
* Retrieves sdk version from resources.
2627
*
2728
* @return String version of sdk.
2829
*/
2930
public static String getSdkVersion() {
31+
var version = sdkVersion.get();
3032

31-
if (sdkVersion != null) {
32-
return sdkVersion;
33+
if ((version != null) && !version.isBlank()) {
34+
return version;
3335
}
3436

35-
try (InputStream input = Version.class.getResourceAsStream("/sdk_version.properties");) {
37+
try (InputStream input = Version.class.getResourceAsStream("/sdk_version.properties")) {
3638
Properties properties = new Properties();
3739
properties.load(input);
38-
sdkVersion = "dapr-sdk-java/v" + properties.getProperty("sdk_version", "unknown");
40+
var v = properties.getProperty("sdk_version", null);
41+
if (v == null) {
42+
throw new IllegalStateException("Did not find sdk_version property!");
43+
}
44+
45+
if (v.isBlank()) {
46+
throw new IllegalStateException("Property sdk_version cannot be blank.");
47+
}
48+
49+
version = "dapr-sdk-java/v" + v;
50+
sdkVersion.set(version);
3951
} catch (IOException e) {
40-
sdkVersion = "unknown";
52+
throw new IllegalStateException("Could not load sdk_version property!", e);
4153
}
4254

43-
return sdkVersion;
55+
return version;
4456
}
4557

4658
}

0 commit comments

Comments
 (0)