You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by kr...@apache.org on 2008/10/07 17:27:29 UTC

svn commit: r702518 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java

Author: kristwaa
Date: Tue Oct  7 08:27:28 2008
New Revision: 702518

URL: http://svn.apache.org/viewvc?rev=702518&view=rev
Log:
DERBY-3728: Fix error handling in PrivilegedFileOpsForTests.
Removed unnecessary throws clauses (replaced PrivilegedExceptionAction with PrivilegedAction) and the possibility for a ClassCastException.
Fixed some documentation.
Patch file: derby-3728-1a.diff

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java?rev=702518&r1=702517&r2=702518&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/PrivilegedFileOpsForTests.java Tue Oct  7 08:27:28 2008
@@ -1,6 +1,6 @@
 /*
 
-   Derby - Class org.apache.derbyTesting.functionTests.util.PrivilegedFileOpsorTests
+   Derby - Class org.apache.derbyTesting.functionTests.util.PrivilegedFileOpsForTests
 
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -25,11 +25,12 @@
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
 /**
- * A set of operations on {$@link java.io.File} that wraps the
+ * A set of operations on {@link java.io.File} that wraps the
  * operations in privileged block of code. This class is intended to provide
  * these methods for testcases to reduce the hassle of having to wrap file
  * operations in privileged code blocks.
@@ -37,14 +38,13 @@
  * Derby needs to use privileged blocks in some places to avoid
  * {@link SecurityException}s being thrown, as the required privileges are
  * often granted to Derby itself, but not the higher level application code.
- * <p>
  */
 public class PrivilegedFileOpsForTests {
-	
+
 	/**
      * Get the file length.
      *
-     * @return byte length of the file.
+     * @return Byte length of the file.
      * @throws SecurityException if the required permissions to read the file,
      *      or the path it is in, are missing
      * @see File#length
@@ -54,39 +54,44 @@
         if (file == null) {
             throw new IllegalArgumentException("file cannot be <null>");
         }
-        try {
-            return ((Long)AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws SecurityException {
-                                return new Long(file.length());
-                            }
-                        })).longValue();
-        } catch (PrivilegedActionException pae) {
-            throw (SecurityException)pae.getException();
-        }
+        return ((Long)AccessController.doPrivileged(
+                    new PrivilegedAction() {
+                        public Object run() {
+                            return new Long(file.length());
+                        }
+                    })).longValue();
     }
-    
+
+    /**
+     * Returns a input stream for the specified file.
+     *
+     * @param file the file to open a stream for
+     * @return A input stream reading from the specified file.
+     * @throws SecurityException if the required permissions to read the file,
+     *      or the path it is in, are missing
+     * @throws FileNotFoundException if the specified file does not exist
+     */
     public static FileInputStream getFileInputStream(final File file) 
-    	throws SecurityException, FileNotFoundException {
+            throws FileNotFoundException {
     	if (file == null) {
             throw new IllegalArgumentException("file cannot be <null>");
         }
         try {
             return ((FileInputStream)AccessController.doPrivileged(
                         new PrivilegedExceptionAction() {
-                            public Object run() throws SecurityException, FileNotFoundException {
+                            public Object run() throws FileNotFoundException {
                                 return new FileInputStream(file);
                             }
                         }));
         } catch (PrivilegedActionException pae) {
-            throw (SecurityException)pae.getException();
+            throw (FileNotFoundException)pae.getException();
         }
     }
 
     /**
      * Check if the file exists.
      *
-     * @return <code>true</code> if file exists, <code>false</code> otherwise
+     * @return {@code true} if file exists, {@code false} otherwise
      * @throws SecurityException if the required permissions to read the file,
      *      or the path it is in, are missing
      * @see File#exists
@@ -96,16 +101,12 @@
         if (file == null) {
             throw new IllegalArgumentException("file cannot be <null>");
         }
-        try {
-            return ((Boolean)AccessController.doPrivileged(
-                        new PrivilegedExceptionAction() {
-                            public Object run() throws SecurityException {
-                                return new Boolean(file.exists());
-                            }
-                        })).booleanValue();
-        } catch (PrivilegedActionException pae) {
-            throw (SecurityException)pae.getException();
-        }
+        return ((Boolean)AccessController.doPrivileged(
+                    new PrivilegedAction() {
+                        public Object run() {
+                            return new Boolean(file.exists());
+                        }
+                    })).booleanValue();
     }
 
     /**
@@ -114,8 +115,8 @@
      * @param file the file to obtain a reader for
      * @return An unbuffered reader for the specified file.
      * @throws FileNotFoundException if the specified file does not exist
-     * @throws SecurityException if the required privileges to read the file
-     *      are missing
+     * @throws SecurityException if the required permissions to read the file,
+     *      or the path it is in, are missing
      */
     public static FileReader getFileReader(final File file)
             throws FileNotFoundException {