Commit fbba7d68 by Michael Koch Committed by Michael Koch

PropertyPermission.java: New version from classpath

2003-04-29  Michael Koch  <konqueror@gmx.de>

	* java/util/PropertyPermission.java:
	New version from classpath
	* java/util/ResourceBundle.java:
	Partly merged from classpath
	(getObject): Reformated.
	(tryBundle): Set foundBundle = null if no bundle found.

From-SVN: r66214
parent cac9b0bc
2003-04-29 Michael Koch <konqueror@gmx.de>
* java/util/PropertyPermission.java:
New version from classpath
* java/util/ResourceBundle.java:
Partly merged from classpath
(getObject): Reformated.
(tryBundle): Set foundBundle = null if no bundle found.
2003-04-29 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractListModel.java,
javax/swing/DefaultBoundedRangeModel.java,
javax/swing/DefaultSingleSelectionModel.java:
......
......@@ -121,7 +121,7 @@ public final class PropertyPermission extends BasicPermission
super(name);
if (actions == null)
throw new IllegalArgumentException();
setActions(actions.toLowerCase());
setActions(actions);
}
/**
......@@ -134,14 +134,37 @@ public final class PropertyPermission extends BasicPermission
*/
private void setActions(String str)
{
// Initialising the class java.util.Locale ...
// tries to initialise the Locale.defaultLocale static
// which calls System.getProperty,
// which calls SecurityManager.checkPropertiesAccess,
// which creates a PropertyPermission with action "read,write",
// which calls setActions("read,write").
// If we now were to call toLowerCase on 'str',
// this would call Locale.getDefault() which returns null
// because Locale.defaultLocale hasn't been set yet
// then toLowerCase will fail with a null pointer exception.
//
// The solution is to take a punt on 'str' being lower case, and
// test accordingly. If that fails, we convert 'str' to lower case
// and try the tests again.
if ("read".equals(str))
actions = READ;
else if ("write".equals(str))
actions = WRITE;
else if ("read,write".equals(str) || "write,read".equals(str))
actions = READ | WRITE;
else
throw new IllegalArgumentException("illegal action " + str);
else {
String lstr = str.toLowerCase();
if ("read".equals(lstr))
actions = READ;
else if ("write".equals(lstr))
actions = WRITE;
else if ("read,write".equals(lstr) || "write,read".equals(lstr))
actions = READ | WRITE;
else
throw new IllegalArgumentException("illegal action " + str);
}
}
/**
......
/* ResourceBundle -- aids in loading resource bundles
Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -182,8 +182,9 @@ public abstract class ResourceBundle
catch (MissingResourceException ex)
{
}
throw new MissingResourceException("Key not found",
getClass().getName(), key);
throw new MissingResourceException("Key not found", getClass().getName(),
key);
}
/**
......@@ -470,6 +471,7 @@ public abstract class ResourceBundle
catch (Exception ex)
{
// ignore them all
foundBundle = null;
}
if (foundBundle == null)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment