Skip to content

Commit

Permalink
Fixed crash when using CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
Lenni0451 committed Sep 10, 2024
1 parent e690a1e commit ce1f89c
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
import net.lenni0451.optconfig.ConfigContext;
import net.lenni0451.optconfig.access.impl.reflection.ReflectionClassAccess;
import net.lenni0451.optconfig.ConfigLoader;
import net.lenni0451.optconfig.annotations.*;
import net.lenni0451.optconfig.index.ClassIndexer;
import net.lenni0451.optconfig.index.ConfigType;
Expand Down Expand Up @@ -189,7 +189,8 @@ public void loadFromArguments(final String[] args) throws Exception {

final Map<OptionSpec<Object>, ConfigOption> optionMap = new HashMap<>();
final Stack<SectionIndex> stack = new Stack<>();
stack.push(ClassIndexer.indexClass(ConfigType.INSTANCED, ViaProxyConfig.class, ReflectionClassAccess::new));
final ConfigLoader<ViaProxyConfig> configLoader = new ConfigLoader<>(ViaProxyConfig.class);
stack.push(ClassIndexer.indexClass(ConfigType.INSTANCED, ViaProxyConfig.class, configLoader.getConfigOptions().getClassAccessFactory()));
while (!stack.isEmpty()) {
final SectionIndex index = stack.pop();
stack.addAll(index.getSubSections().values());
Expand All @@ -199,7 +200,7 @@ public void loadFromArguments(final String[] args) throws Exception {

Object defaultValue = option.getFieldAccess().getValue(this);
if (option.getTypeSerializer() != null) {
defaultValue = option.createTypeSerializer(null, ViaProxyConfig.class, this).serialize(defaultValue);
defaultValue = option.createTypeSerializer(configLoader, ViaProxyConfig.class, this).serialize(defaultValue);
}
final OptionSpec<Object> cliOption = optionParser.accepts(option.getName()).withRequiredArg().ofType((Class<Object>) defaultValue.getClass()).defaultsTo(defaultValue);
optionMap.put(cliOption, option);
Expand All @@ -221,7 +222,7 @@ public void loadFromArguments(final String[] args) throws Exception {
if (options.has(entry.getKey())) {
Object value = options.valueOf(entry.getKey());
if (option.getTypeSerializer() != null) {
value = option.createTypeSerializer(null, ViaProxyConfig.class, this).deserialize((Class<Object>) option.getFieldAccess().getType(), value);
value = option.createTypeSerializer(configLoader, ViaProxyConfig.class, this).deserialize((Class<Object>) option.getFieldAccess().getType(), value);
}
if (option.getValidator() != null) {
value = option.getValidator().invoke(this, value);
Expand Down

0 comments on commit ce1f89c

Please sign in to comment.