STORM-3552 Fix update log level from command line
diff --git a/storm-client/test/jvm/org/apache/storm/daemon/worker/LogConfigManagerTest.java b/storm-client/test/jvm/org/apache/storm/daemon/worker/LogConfigManagerTest.java
index bf8ded8..673458f 100644
--- a/storm-client/test/jvm/org/apache/storm/daemon/worker/LogConfigManagerTest.java
+++ b/storm-client/test/jvm/org/apache/storm/daemon/worker/LogConfigManagerTest.java
@@ -14,6 +14,7 @@
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.storm.generated.LogConfig;
@@ -27,6 +28,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.anyObject;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.eq;
@@ -203,6 +205,32 @@
}
@Test
+ public void testProcessLogConfigChangeThrowsNullPointerExceptionWhenTargetLogLevelIsNotSet() {
+ LogConfigManager logConfigManager = new LogConfigManager();
+
+ LogConfig logConfig = new LogConfig();
+ LogLevel logLevel = new LogLevel();
+ logLevel.set_action(LogLevelAction.UPDATE);
+ logLevel.set_reset_log_level("INFO");
+ logConfig.put_to_named_logger_level("RESET_LOG", logLevel);
+
+ assertThrows(NullPointerException.class, () -> logConfigManager.processLogConfigChange(logConfig));
+ }
+
+ @Test
+ public void testProcessLogConfigChangeExecutesSuccessfullyWhenTargetLogLevelIsSet() {
+ LogConfigManager logConfigManager = new LogConfigManager();
+
+ LogConfig logConfig = new LogConfig();
+ LogLevel logLevel = new LogLevel();
+ logLevel.set_action(LogLevelAction.UPDATE);
+ logLevel.set_target_log_level("DEBUG");
+ logConfig.put_to_named_logger_level("TARGET_LOG", logLevel);
+
+ logConfigManager.processLogConfigChange(logConfig);
+ }
+
+ @Test
public void testProcessRootLogLevelToDebugSetsLoggerAndTimeout() {
try (SimulatedTime t = new SimulatedTime()) {
LogConfig mockConfig = new LogConfig();
diff --git a/storm-core/src/jvm/org/apache/storm/command/SetLogLevel.java b/storm-core/src/jvm/org/apache/storm/command/SetLogLevel.java
index 411c586..c6e2fa7 100644
--- a/storm-core/src/jvm/org/apache/storm/command/SetLogLevel.java
+++ b/storm-core/src/jvm/org/apache/storm/command/SetLogLevel.java
@@ -92,7 +92,7 @@
splits = splits[1].split(":");
Integer timeout = 0;
Level level = Level.valueOf(splits[0]);
- logLevel.set_reset_log_level(level.toString());
+ logLevel.set_target_log_level(level.toString());
if (splits.length > 1) {
timeout = Integer.parseInt(splits[1]);
}
diff --git a/storm-core/test/jvm/org/apache/storm/command/SetLogLevelTest.java b/storm-core/test/jvm/org/apache/storm/command/SetLogLevelTest.java
index 5951752..af6aefc 100644
--- a/storm-core/test/jvm/org/apache/storm/command/SetLogLevelTest.java
+++ b/storm-core/test/jvm/org/apache/storm/command/SetLogLevelTest.java
@@ -25,11 +25,11 @@
SetLogLevel.LogLevelsParser logLevelsParser = new SetLogLevel.LogLevelsParser(LogLevelAction.UPDATE);
LogLevel logLevel = ((Map<String, LogLevel>) logLevelsParser.parse("com.foo.one=warn")).get("com.foo.one");
Assert.assertEquals(0, logLevel.get_reset_log_level_timeout_secs());
- Assert.assertEquals("WARN", logLevel.get_reset_log_level());
+ Assert.assertEquals("WARN", logLevel.get_target_log_level());
logLevel = ((Map<String, LogLevel>) logLevelsParser.parse("com.foo.two=DEBUG:10")).get("com.foo.two");
Assert.assertEquals(10, logLevel.get_reset_log_level_timeout_secs());
- Assert.assertEquals("DEBUG", logLevel.get_reset_log_level());
+ Assert.assertEquals("DEBUG", logLevel.get_target_log_level());
}
@Test(expected = NumberFormatException.class)