This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git commit 6691833736c80509e454213f278945d2ba7e6c27 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 2 10:06:57 2016 +0200 [ApplicationConfig] NullPointerException when saving file (Fixes #855) --- .../java/org/nuiton/config/ApplicationConfig.java | 21 +++++++++++++++++---- ...cationConfigFileNameNotInitializedException.java | 14 ++++++++++++++ .../org/nuiton/config/ApplicationConfigInit.java | 10 ++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfig.java b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfig.java index c5fa43f..6af8fb4 100644 --- a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfig.java +++ b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfig.java @@ -851,9 +851,14 @@ public class ApplicationConfig { * Obtain the system config file location. * * @return the system config file location + * @throws ApplicationConfigFileNameNotInitializedException if no config file name found in configuration */ - public File getSystemConfigFile() { - File file = new File(getConfigPath(), getConfigFileName()); + public File getSystemConfigFile() throws ApplicationConfigFileNameNotInitializedException{ + String configFileName = getConfigFileName(); + if (configFileName == null) { + throw new ApplicationConfigFileNameNotInitializedException(); + } + File file = new File(getConfigPath(), configFileName); return file; } @@ -861,9 +866,14 @@ public class ApplicationConfig { * Obtain the user config file location. * * @return the user config file location + * @throws ApplicationConfigFileNameNotInitializedException if no config file name found in configuration */ - public File getUserConfigFile() { - return new File(getUserConfigDirectory(), getConfigFileName()); + public File getUserConfigFile() throws ApplicationConfigFileNameNotInitializedException{ + String configFileName = getConfigFileName(); + if (configFileName == null) { + throw new ApplicationConfigFileNameNotInitializedException(); + } + return new File(getUserConfigDirectory(), configFileName); } /** @@ -2102,6 +2112,9 @@ public class ApplicationConfig { } String filename = getConfigFileName(); + if (filename == null) { + throw new ApplicationConfigFileNameNotInitializedException(); + } // classpath Properties classpath = getProperties(ApplicationConfigScope.CLASS_PATH); diff --git a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigFileNameNotInitializedException.java b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigFileNameNotInitializedException.java new file mode 100644 index 0000000..a2ace35 --- /dev/null +++ b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigFileNameNotInitializedException.java @@ -0,0 +1,14 @@ +package org.nuiton.config; + +/** + * Thrown when the config file name is required (to perform save action) on ApplicationConfig and the config file + * name is not found in configuration. + * + * Created on 02/10/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class ApplicationConfigFileNameNotInitializedException extends RuntimeException { + +} diff --git a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java index daa94a1..cc99d9a 100644 --- a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java +++ b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java @@ -25,6 +25,8 @@ package org.nuiton.config; import java.util.Arrays; import java.util.Collections; import java.util.EnumSet; +import java.util.LinkedList; +import java.util.List; import java.util.Properties; import java.util.Set; @@ -39,6 +41,14 @@ public class ApplicationConfigInit { return new ApplicationConfigInit(ApplicationConfigScope.values()); } + public static ApplicationConfigInit forAllScopesWithout(ApplicationConfigScope... excludedScopes) { + List<ApplicationConfigScope> allScopes = new LinkedList<>(Arrays.asList(ApplicationConfigScope.values())); + for (ApplicationConfigScope scope : excludedScopes) { + allScopes.remove(scope); + } + return new ApplicationConfigInit(allScopes.toArray(new ApplicationConfigScope[allScopes.size()])); + } + public static ApplicationConfigInit forScopes(ApplicationConfigScope... scopes) { return new ApplicationConfigInit(scopes); } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.