Skip to content

Commit 296862c

Browse files
Handle null PATH environment variable in UserAgent
System.getenv("PATH") returns null in environments where PATH is not set (serverless runtimes, minimal containers). This caused an NPE in UserAgent.env(). Fall back to an empty array when PATH is null. Fixes #550
1 parent 958f1d9 commit 296862c

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

databricks-sdk-java/src/main/java/com/databricks/sdk/core/UserAgent.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,9 @@ private static String agentProvider() {
299299

300300
private static Environment env() {
301301
if (env == null) {
302-
env =
303-
new Environment(
304-
System.getenv(),
305-
System.getenv("PATH").split(File.pathSeparator),
306-
System.getProperty("os.name"));
302+
String pathEnv = System.getenv("PATH");
303+
String[] pathEntries = pathEnv != null ? pathEnv.split(File.pathSeparator) : new String[0];
304+
env = new Environment(System.getenv(), pathEntries, System.getProperty("os.name"));
307305
}
308306
return env;
309307
}

databricks-sdk-java/src/test/java/com/databricks/sdk/core/UserAgentTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,16 @@ public void testAgentProviderEmptyValue() {
247247
Assertions.assertFalse(UserAgent.asString().contains("agent/"));
248248
}
249249

250+
@Test
251+
public void testEnvWithNullPath() {
252+
UserAgent.env =
253+
new Environment(new HashMap<>(), new ArrayList<>(), System.getProperty("os.name"));
254+
UserAgent.cicdProvider = null;
255+
UserAgent.agentProvider = null;
256+
String userAgent = UserAgent.asString();
257+
Assertions.assertTrue(userAgent.contains("databricks-sdk-java/"));
258+
}
259+
250260
@Test
251261
public void testAgentProviderCached() {
252262
// Set up with cursor agent

0 commit comments

Comments
 (0)