The way that SnakeYAML works, if someone has added the same parameter more than once - the last occurrence will be the one that will take precedence.
CASSANDRA-15234 we can even add the parameter with the old name and with the new name and the occurrences will replace each other. Again, whatever is last in cassandra.yaml will take precedence. Example:
If you add the following in cassandra.yaml
you will get loaded in Config -
//there is backward compatibility from the old name to load into the new one
Currently Cassandra prints in the logs what config was loaded but it is good also to detect the case mentioned and emit a warning for the user so they can verify that the value they wanted was loaded in config.
To do that you might want to look at the PropertiesChecker and the way we emit other warnings in check() in YamlConfigurationLoader.