git-svn-id: https://samskivert.googlecode.com/svn/trunk@1377 6335cc39-0255-0410-8fd6-9bcaacd3b74c

This commit is contained in:
mdb
2004-01-24 06:14:53 +00:00
parent a0818c51af
commit 71da2bffa2
@@ -1,5 +1,5 @@
//
// $Id: Config.java,v 1.22 2003/08/12 01:27:35 mdb Exp $
// $Id: Config.java,v 1.23 2004/01/24 06:14:53 mdb Exp $
//
// samskivert library - useful routines for java programs
// Copyright (C) 2001 Michael Bayne
@@ -22,6 +22,7 @@ package com.samskivert.util;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.security.AccessControlException;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -32,6 +33,7 @@ import java.util.Hashtable;
import java.util.Iterator;
import java.util.Properties;
import java.util.prefs.AbstractPreferences;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
@@ -128,7 +130,12 @@ public class Config
// get a handle on the preferences instance that we'll use to
// override values in the properties file
_prefs = Preferences.userRoot().node(path);
try {
_prefs = Preferences.userRoot().node(path);
} catch (AccessControlException ace) {
// security manager won't let us access prefs, no problem!
_prefs = new NullPreferences();
}
}
/**
@@ -644,6 +651,37 @@ public class Config
return matches.iterator();
}
/** This is used if we don't have security access to the preferences
* implementation that we'd like. */
protected static class NullPreferences extends AbstractPreferences
{
public NullPreferences () {
super(null, "");
}
protected void putSpi (String key, String value) {
}
protected String getSpi (String key) {
return null;
}
protected void removeSpi (String key) {
}
protected void removeNodeSpi () throws BackingStoreException {
}
protected String[] keysSpi () throws BackingStoreException {
return new String[0];
}
protected String[] childrenNamesSpi () throws BackingStoreException {
return new String[0];
}
protected AbstractPreferences childSpi (String name) {
return null;
}
protected void syncSpi () throws BackingStoreException {
}
protected void flushSpi () throws BackingStoreException {
}
}
/** Contains the default configuration information. */
protected Properties _props;