From f1720ca884bc3fa9da1288ad955e46f165aa4168 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 01 Jun 2011 08:09:46 -0400 Subject: [PATCH] Unit testing. Disable links on first commit. Initial stats page. --- src/com/gitblit/FileSettings.java | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/com/gitblit/FileSettings.java b/src/com/gitblit/FileSettings.java index 371b734..01176c0 100644 --- a/src/com/gitblit/FileSettings.java +++ b/src/com/gitblit/FileSettings.java @@ -1,3 +1,18 @@ +/* + * Copyright 2011 gitblit.com. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.gitblit; import java.io.File; @@ -6,6 +21,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.regex.PatternSyntaxException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,11 +32,17 @@ */ public class FileSettings implements IStoredSettings { + private final Logger logger = LoggerFactory.getLogger(FileSettings.class); + + private final File propertiesFile; + private Properties properties = new Properties(); - private long lastread = 0; + private long lastread; - private final Logger logger = LoggerFactory.getLogger(FileSettings.class); + public FileSettings(String file) { + this.propertiesFile = new File(file); + } @Override public List<String> getAllKeys(String startingWith) { @@ -116,28 +138,39 @@ strings.add(chunk); } } - } catch (Exception e) { + } catch (PatternSyntaxException e) { + logger.error("Failed to parse " + value, e); } return strings; } private synchronized Properties read() { - File file = new File(Constants.PROPERTIES_FILE); - if (file.exists() && (file.lastModified() > lastread)) { + if (propertiesFile.exists() && (propertiesFile.lastModified() > lastread)) { + FileInputStream is = null; try { properties = new Properties(); - properties.load(new FileInputStream(Constants.PROPERTIES_FILE)); - lastread = file.lastModified(); + is = new FileInputStream(propertiesFile); + properties.load(is); + lastread = propertiesFile.lastModified(); } catch (FileNotFoundException f) { + // IGNORE - won't happen because file.exists() check above } catch (Throwable t) { t.printStackTrace(); + } finally { + if (is != null) { + try { + is.close(); + } catch (Throwable t) { + // IGNORE + } + } } } return properties; } - + @Override public String toString() { - return getClass().getSimpleName() + ": " + new File(Constants.PROPERTIES_FILE).getAbsolutePath(); + return propertiesFile.getAbsolutePath(); } } -- Gitblit v1.9.1