Throw exception if setting during dynamic settings update isn't recognized (#26569)

Closes #25607
This commit is contained in:
Alexander Kazakov 2017-09-26 14:07:01 +03:00 committed by Simon Willnauer
parent a506ba8602
commit 52887b1437
2 changed files with 3 additions and 4 deletions

View File

@ -495,6 +495,8 @@ public abstract class AbstractScopedSettings extends AbstractComponent {
// we don't validate if there is any dynamic setting with that prefix yet we could do in the future // we don't validate if there is any dynamic setting with that prefix yet we could do in the future
toRemove.add(entry.getKey()); toRemove.add(entry.getKey());
// we don't set changed here it's set after we apply deletes below if something actually changed // we don't set changed here it's set after we apply deletes below if something actually changed
} else if (get(entry.getKey()) == null) {
throw new IllegalArgumentException(type + " setting [" + entry.getKey() + "], not recognized");
} else if (entry.getValue() != null && canUpdate.test(entry.getKey())) { } else if (entry.getValue() != null && canUpdate.test(entry.getKey())) {
validate(entry.getKey(), toApply); validate(entry.getKey(), toApply);
settingsBuilder.put(entry.getKey(), entry.getValue()); settingsBuilder.put(entry.getKey(), entry.getValue());

View File

@ -25,7 +25,6 @@ import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsResp
import org.elasticsearch.cluster.metadata.MetaData; import org.elasticsearch.cluster.metadata.MetaData;
import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider; import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider;
import org.elasticsearch.common.logging.ESLoggerFactory; import org.elasticsearch.common.logging.ESLoggerFactory;
import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeUnit;
import org.elasticsearch.discovery.Discovery; import org.elasticsearch.discovery.Discovery;
@ -33,10 +32,8 @@ import org.elasticsearch.discovery.DiscoverySettings;
import org.elasticsearch.discovery.zen.ZenDiscovery; import org.elasticsearch.discovery.zen.ZenDiscovery;
import org.elasticsearch.indices.recovery.RecoverySettings; import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.ESIntegTestCase;
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
import org.junit.After; import org.junit.After;
import static org.elasticsearch.test.ESIntegTestCase.Scope.TEST;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBlocked;
import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.containsString;
@ -63,7 +60,7 @@ public class ClusterSettingsIT extends ESIntegTestCase {
.get(); .get();
fail("bogus value"); fail("bogus value");
} catch (IllegalArgumentException ex) { } catch (IllegalArgumentException ex) {
assertEquals(ex.getMessage(), "transient setting [no_idea_what_you_are_talking_about], not dynamically updateable"); assertEquals("transient setting [no_idea_what_you_are_talking_about], not recognized", ex.getMessage());
} }
} }