From e072ae6def010f86be4ffd2df2592e31c2a85377 Mon Sep 17 00:00:00 2001
From: Alfred Schmid <A.Schmid@ff-muenchen.de>
Date: Wed, 19 Feb 2014 11:04:16 -0500
Subject: [PATCH] Documented default value for empty groups filter
---
src/main/java/com/gitblit/FileSettings.java | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/FileSettings.java b/src/main/java/com/gitblit/FileSettings.java
index 12739d2..d31fc2f 100644
--- a/src/main/java/com/gitblit/FileSettings.java
+++ b/src/main/java/com/gitblit/FileSettings.java
@@ -32,7 +32,7 @@
*/
public class FileSettings extends IStoredSettings {
- protected final File propertiesFile;
+ protected File propertiesFile;
private final Properties properties = new Properties();
@@ -40,9 +40,32 @@
private volatile boolean forceReload;
- public FileSettings(String file) {
+ public FileSettings() {
super(FileSettings.class);
+ }
+
+ public FileSettings(String file) {
+ this();
+ load(file);
+ }
+
+ public void load(String file) {
this.propertiesFile = new File(file);
+ }
+
+ /**
+ * Merges the provided settings into this instance. This will also
+ * set the target file for this instance IFF it is unset AND the merge
+ * source is also a FileSettings. This is a little sneaky.
+ */
+ @Override
+ public void merge(IStoredSettings settings) {
+ super.merge(settings);
+
+ // sneaky: set the target file from the merge source
+ if (propertiesFile == null && settings instanceof FileSettings) {
+ this.propertiesFile = ((FileSettings) settings).propertiesFile;
+ }
}
/**
@@ -51,7 +74,7 @@
*/
@Override
protected synchronized Properties read() {
- if (propertiesFile.exists() && (forceReload || (propertiesFile.lastModified() > lastModified))) {
+ if (propertiesFile != null && propertiesFile.exists() && (forceReload || (propertiesFile.lastModified() > lastModified))) {
FileInputStream is = null;
try {
Properties props = new Properties();
--
Gitblit v1.9.1