diff options
author | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-27 19:42:19 +0000 |
---|---|---|
committer | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-27 19:42:19 +0000 |
commit | e09c9f17db0aa3d76789e20750128355dae1e135 (patch) | |
tree | 20550b6ae14e7eb6b74be814db934118a8d55153 /libjava/java/io/FilePermission.java | |
parent | 31dd62f9c4ac740b5732df1b3a279c93d1f27344 (diff) | |
download | gcc-e09c9f17db0aa3d76789e20750128355dae1e135.tar.gz |
* java/io/FilePermission.java (usingPerms): Removed.
(actionsString): Made final.
(cachePerms): Renamed to checkPerms.
(checkPerms): Renamed from cachePerms. Call trim() and toLowerCase()
on action String.
(FilePermission): Check arguments, call checkPerms().
(equals): Remove cachePerms() call.
(implies): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83743 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/io/FilePermission.java')
-rw-r--r-- | libjava/java/io/FilePermission.java | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/libjava/java/io/FilePermission.java b/libjava/java/io/FilePermission.java index c34a2ecf9b2..7d86c292dad 100644 --- a/libjava/java/io/FilePermission.java +++ b/libjava/java/io/FilePermission.java @@ -1,5 +1,5 @@ /* java.lang.FilePermission - Copyright (C) 1998, 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,23 +46,21 @@ public final class FilePermission extends Permission implements Serializable private static final String CURRENT_DIRECTORY = System.getProperty("user.dir"); - private boolean usingPerms = false; private boolean readPerm = false; private boolean writePerm = false; private boolean executePerm = false; private boolean deletePerm = false; - private String actionsString; + private final String actionsString; - private void cachePerms() + // Checks and caches the actions + private void checkPerms() throws IllegalArgumentException { - // While race conditions could occur, they don't matter at all. - String action; int i = actionsString.indexOf(','); int startI = 0; while(i != -1) { - action = actionsString.substring(startI,i); + action = actionsString.substring(startI,i).trim().toLowerCase(); if(action.equals("read")) readPerm = true; else if(action.equals("write")) @@ -71,12 +69,14 @@ public final class FilePermission extends Permission implements Serializable executePerm = true; else if(action.equals("delete")) deletePerm = true; + else + throw new IllegalArgumentException("Unknown action: " + action); startI = i+1; i = actionsString.indexOf(',',startI); } - action = actionsString.substring(startI); + action = actionsString.substring(startI).trim().toLowerCase(); if(action.equals("read")) readPerm = true; else if(action.equals("write")) @@ -85,19 +85,30 @@ public final class FilePermission extends Permission implements Serializable executePerm = true; else if(action.equals("delete")) deletePerm = true; + else + throw new IllegalArgumentException("Unknown action: " + action); } - /** Create a new FilePermission. - ** @param pathExpression an expression specifying the paths this - ** permission represents. - ** @param actionsString a comma-separated list of the actions this - ** permission represents. - ** FIXME: what to do when the file string is malformed? - **/ + /* + * Create a new FilePermission. + * + * @param pathExpression an expression specifying the paths this + * permission represents. + * @param actionsString a comma-separated list of the actions this + * permission represents. The actions must be "read", "write", + * "execute" and/or "delete". + * + * FIXME: what to do when the file string is malformed? + */ public FilePermission(String pathExpression, String actionsString) { super(pathExpression); + if (pathExpression == null) + throw new NullPointerException("pathExpression"); + if (actionsString == null) + throw new IllegalArgumentException("actionsString"); this.actionsString = actionsString; + checkPerms(); } /** Get the actions this FilePermission supports. @@ -132,10 +143,6 @@ public final class FilePermission extends Permission implements Serializable if(!(o instanceof FilePermission)) return false; FilePermission p = (FilePermission)o; - if(!usingPerms) - cachePerms(); - if(!p.usingPerms) - p.cachePerms(); String f1 = getName(); String f2 = p.getName(); @@ -283,11 +290,6 @@ public final class FilePermission extends Permission implements Serializable break; } - if(!usingPerms) - cachePerms(); - if(!fp.usingPerms) - fp.cachePerms(); - if(readPerm && !fp.readPerm) return false; if(writePerm && !fp.writePerm) |