From fec8d7bb48b160c65ab97c7f62f246e9a77cef6f Mon Sep 17 00:00:00 2001 From: gyowoo1113 Date: Tue, 14 Jul 2026 22:08:52 +0900 Subject: [PATCH 1/2] [ZEPPELIN-6475] Throw clear error for missing InfluxDB token --- .../influxdb/InfluxDBInterpreter.java | 9 ++++- .../influxdb/InfluxDBInterpeterTest.java | 38 +++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java index 3f718fabdaa..0597e2fbf03 100644 --- a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java +++ b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java @@ -169,12 +169,17 @@ private QueryApi getQueryApi() { @Override - public void open() { + public void open() throws InterpreterException { if (this.client == null) { + String token = getProperty(INFLUXDB_TOKEN_PROPERTY); + if (token == null || token.trim().isEmpty()) { + throw new InterpreterException("influxdb.token property is not set. Please configure the InfluxDB auth token."); + } + InfluxDBClientOptions opt = InfluxDBClientOptions.builder() .url(getProperty(INFLUXDB_API_URL_PROPERTY)) - .authenticateToken(getProperty(INFLUXDB_TOKEN_PROPERTY).toCharArray()) + .authenticateToken(token.toCharArray()) .logLevel(LogLevel.valueOf( getProperty(INFLUXDB_LOGLEVEL_PROPERTY, LogLevel.NONE.toString()))) .org(getProperty(INFLUXDB_ORG_PROPERTY)) diff --git a/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java b/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java index 5896be8dd9e..2ee0e478df3 100644 --- a/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java +++ b/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java @@ -16,6 +16,8 @@ package org.apache.zeppelin.influxdb; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; @@ -216,6 +218,42 @@ public void after() throws IOException { } } + @Test + void testOpenWithoutToken() { + properties.remove("influxdb.token"); + + InfluxDBInterpreter interpreter = new InfluxDBInterpreter(properties); + + InterpreterException exception = assertThrows(InterpreterException.class, interpreter::open); + + assertTrue(exception.getMessage().contains("influxdb.token")); + assertTrue(exception.getMessage().contains("not set")); + } + + @Test + void testOpenWithEmptyToken() { + properties.setProperty("influxdb.token",""); + + InfluxDBInterpreter interpreter = new InfluxDBInterpreter(properties); + + InterpreterException exception = assertThrows(InterpreterException.class, interpreter::open); + + assertTrue(exception.getMessage().contains("influxdb.token")); + assertTrue(exception.getMessage().contains("not set")); + } + + @Test + void testOpenWithBlankToken() { + properties.setProperty("influxdb.token"," "); + + InfluxDBInterpreter interpreter = new InfluxDBInterpreter(properties); + + InterpreterException exception = assertThrows(InterpreterException.class, interpreter::open); + + assertTrue(exception.getMessage().contains("influxdb.token")); + assertTrue(exception.getMessage().contains("not set")); + } + @Test void testSigleTable() throws InterpreterException { From 5d4c7f53186695b7e9755772e995dded47c99174 Mon Sep 17 00:00:00 2001 From: gyowoo1113 Date: Wed, 15 Jul 2026 14:49:37 +0900 Subject: [PATCH 2/2] [ZEPPELIN-6475] Replace trim().isEmpty() with isBlank() --- .../java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java index 0597e2fbf03..7fedf448fe2 100644 --- a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java +++ b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java @@ -173,7 +173,7 @@ public void open() throws InterpreterException { if (this.client == null) { String token = getProperty(INFLUXDB_TOKEN_PROPERTY); - if (token == null || token.trim().isEmpty()) { + if (token == null || token.isBlank()) { throw new InterpreterException("influxdb.token property is not set. Please configure the InfluxDB auth token."); }