[ https://issues.apache.org/jira/browse/DRILL-5547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16083202#comment-16083202 ]
ASF GitHub Bot commented on DRILL-5547: --------------------------------------- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/868#discussion_r126831642 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java --- @@ -271,12 +320,20 @@ public static OptionValidator getValidator(final String name) { public OptionValue getOption(final String name) { // check local space (persistent store) final OptionValue value = options.get(name.toLowerCase()); + OptionValue val; if (value != null) { return value; } - // otherwise, return default. + // otherwise, return default set in the validator. final OptionValidator validator = getValidator(name); + if (validator.getDefault() != null) { + if (!validator.getDefault().getValue().equals(validator.getDefault().getValue())) { + System.out.println("Config and hardcoded values are" + "\t" + validator.getDefault().getValue() --- End diff -- We can't use println in production code. Instead, we can use the logger: ``` logger.trace("Config value: {}, hardcoded value: {}, validator.getDefault().getValue(), validator.getDefault().getValue()); ``` The logger will call `toString()` on each argument for us. Actually, this code seems to be temporary debugging code: checking the default value against hard-coded. Once the work is done, the hard-coded values should no longer exist. > Drill config options and session options do not work as intended > ---------------------------------------------------------------- > > Key: DRILL-5547 > URL: https://issues.apache.org/jira/browse/DRILL-5547 > Project: Apache Drill > Issue Type: Bug > Components: Server > Affects Versions: 1.10.0 > Reporter: Karthikeyan Manivannan > Assignee: Venkata Jyothsna Donapati > Fix For: Future > > > In Drill, session options should take precedence over config options. But > several of these session options are assigned hard-coded default values when > the option validators are initialized. Because of this config options will > never be read and honored even if the user did not specify the session > option. > ClassCompilerSelector.JAVA_COMPILER_VALIDATOR uses CompilerPolicy.DEFAULT as > the default value. This default value gets into the session options map via > the initialization of validators in SystemOptionManager. > Now any piece of code that tries to check if a session option is set will > never see a null, so it will always use that value and never try to look into > the config options. For example, in the following piece of code from > ClassCompilerSelector (), the policy will never be read from the config file. > policy = CompilerPolicy.valueOf((value != null) ? > value.string_val.toUpperCase() : > config.getString(JAVA_COMPILER_CONFIG).toUpperCase()); -- This message was sent by Atlassian JIRA (v6.4.14#64029)