Explorar el Código

Merge -r 940526:940527 from trunk to 0.21 branch. Fixes: HADOOP-6727.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.21@940529 13f79535-47bb-0310-9956-ffa450edef68
Thomas White hace 15 años
padre
commit
f0e9aaa5c0
Se han modificado 2 ficheros con 25 adiciones y 59 borrados
  1. 3 0
      CHANGES.txt
  2. 22 59
      src/java/org/apache/hadoop/fs/FileContext.java

+ 3 - 0
CHANGES.txt

@@ -1514,6 +1514,9 @@ Release 0.21.0 - Unreleased
     HADOOP-6742. Add methods HADOOP-6709 from to TestFilterFileSystem.
     HADOOP-6742. Add methods HADOOP-6709 from to TestFilterFileSystem.
     (Eli Collins via tomwhite)
     (Eli Collins via tomwhite)
 
 
+    HADOOP-6727. Remove UnresolvedLinkException from public FileContext APIs.
+    (Eli Collins via tomwhite)
+
 Release 0.20.3 - Unreleased
 Release 0.20.3 - Unreleased
 
 
   NEW FEATURES
   NEW FEATURES

+ 22 - 59
src/java/org/apache/hadoop/fs/FileContext.java

@@ -528,8 +528,6 @@ public final class FileContext {
    *           directory.
    *           directory.
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -545,7 +543,7 @@ public final class FileContext {
       final EnumSet<CreateFlag> createFlag, Options.CreateOpts... opts)
       final EnumSet<CreateFlag> createFlag, Options.CreateOpts... opts)
       throws AccessControlException, FileAlreadyExistsException,
       throws AccessControlException, FileAlreadyExistsException,
       FileNotFoundException, ParentNotDirectoryException,
       FileNotFoundException, ParentNotDirectoryException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     Path absF = fixRelativePart(f);
     Path absF = fixRelativePart(f);
 
 
     // If one of the options is a permission, extract it & apply umask
     // If one of the options is a permission, extract it & apply umask
@@ -562,7 +560,7 @@ public final class FileContext {
                       CreateOpts.setOpt(CreateOpts.perms(permission), opts);
                       CreateOpts.setOpt(CreateOpts.perms(permission), opts);
     return new FSLinkResolver<FSDataOutputStream>() {
     return new FSLinkResolver<FSDataOutputStream>() {
       public FSDataOutputStream next(final AbstractFileSystem fs, final Path p) 
       public FSDataOutputStream next(final AbstractFileSystem fs, final Path p) 
-        throws IOException, UnresolvedLinkException {
+        throws IOException {
         return fs.create(p, createFlag, updatedOpts);
         return fs.create(p, createFlag, updatedOpts);
       }
       }
     }.resolve(this, absF);
     }.resolve(this, absF);
@@ -583,8 +581,6 @@ public final class FileContext {
    *           and <code>createParent</code> is false
    *           and <code>createParent</code> is false
    * @throws ParentNotDirectoryException If parent of <code>dir</code> is not a
    * @throws ParentNotDirectoryException If parent of <code>dir</code> is not a
    *           directory
    *           directory
-   * @throws UnresolvedLinkException If symbolic link <code>dir</code> could not
-   *           be resolved
    * @throws UnsupportedFileSystemException If file system for <code>dir</code>
    * @throws UnsupportedFileSystemException If file system for <code>dir</code>
    *         is not supported
    *         is not supported
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
@@ -600,8 +596,8 @@ public final class FileContext {
   public void mkdir(final Path dir, final FsPermission permission,
   public void mkdir(final Path dir, final FsPermission permission,
       final boolean createParent) throws AccessControlException,
       final boolean createParent) throws AccessControlException,
       FileAlreadyExistsException, FileNotFoundException,
       FileAlreadyExistsException, FileNotFoundException,
-      ParentNotDirectoryException, UnresolvedLinkException,
-      UnsupportedFileSystemException, IOException {
+      ParentNotDirectoryException, UnsupportedFileSystemException, 
+      IOException {
     final Path absDir = fixRelativePart(dir);
     final Path absDir = fixRelativePart(dir);
     final FsPermission absFerms = (permission == null ? 
     final FsPermission absFerms = (permission == null ? 
           FsPermission.getDefault() : permission).applyUMask(umask);
           FsPermission.getDefault() : permission).applyUMask(umask);
@@ -625,8 +621,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -640,7 +634,7 @@ public final class FileContext {
    */
    */
   public boolean delete(final Path f, final boolean recursive)
   public boolean delete(final Path f, final boolean recursive)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     Path absF = fixRelativePart(f);
     Path absF = fixRelativePart(f);
     return new FSLinkResolver<Boolean>() {
     return new FSLinkResolver<Boolean>() {
       public Boolean next(final AbstractFileSystem fs, final Path p) 
       public Boolean next(final AbstractFileSystem fs, final Path p) 
@@ -659,8 +653,6 @@ public final class FileContext {
    * @throws FileNotFoundException If file <code>f</code> does not exist
    * @throws FileNotFoundException If file <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code>
    * @throws UnsupportedFileSystemException If file system for <code>f</code>
    *         is not supported
    *         is not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -670,8 +662,7 @@ public final class FileContext {
    *           undeclared exception to RPC server
    *           undeclared exception to RPC server
    */
    */
   public FSDataInputStream open(final Path f) throws AccessControlException,
   public FSDataInputStream open(final Path f) throws AccessControlException,
-      FileNotFoundException, UnsupportedFileSystemException,
-      UnresolvedLinkException, IOException {
+      FileNotFoundException, UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<FSDataInputStream>() {
     return new FSLinkResolver<FSDataInputStream>() {
       public FSDataInputStream next(final AbstractFileSystem fs, final Path p) 
       public FSDataInputStream next(final AbstractFileSystem fs, final Path p) 
@@ -691,8 +682,6 @@ public final class FileContext {
    * @throws FileNotFoundException If file <code>f</code> does not exist
    * @throws FileNotFoundException If file <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -703,7 +692,7 @@ public final class FileContext {
    */
    */
   public FSDataInputStream open(final Path f, final int bufferSize)
   public FSDataInputStream open(final Path f, final int bufferSize)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<FSDataInputStream>() {
     return new FSLinkResolver<FSDataInputStream>() {
       public FSDataInputStream next(final AbstractFileSystem fs, final Path p) 
       public FSDataInputStream next(final AbstractFileSystem fs, final Path p) 
@@ -723,8 +712,6 @@ public final class FileContext {
    *
    *
    * @throws AccessControlException If access is denied
    * @throws AccessControlException If access is denied
    * @throws FileNotFoundException If file <code>f</code> does not exist
    * @throws FileNotFoundException If file <code>f</code> does not exist
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -735,7 +722,7 @@ public final class FileContext {
    */
    */
   public boolean setReplication(final Path f, final short replication)
   public boolean setReplication(final Path f, final short replication)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnresolvedLinkException, IOException {
+      IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<Boolean>() {
     return new FSLinkResolver<Boolean>() {
       public Boolean next(final AbstractFileSystem fs, final Path p) 
       public Boolean next(final AbstractFileSystem fs, final Path p) 
@@ -777,8 +764,6 @@ public final class FileContext {
    *           directory
    *           directory
    * @throws UnsupportedFileSystemException If file system for <code>src</code>
    * @throws UnsupportedFileSystemException If file system for <code>src</code>
    *           and <code>dst</code> is not supported
    *           and <code>dst</code> is not supported
-   * @throws UnresolvedLinkException If symbolic link <code>src</code> or
-   *           <code>dst</code> could not be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -791,7 +776,7 @@ public final class FileContext {
       final Options.Rename... options) throws AccessControlException,
       final Options.Rename... options) throws AccessControlException,
       FileAlreadyExistsException, FileNotFoundException,
       FileAlreadyExistsException, FileNotFoundException,
       ParentNotDirectoryException, UnsupportedFileSystemException,
       ParentNotDirectoryException, UnsupportedFileSystemException,
-      UnresolvedLinkException, IOException {
+      IOException {
     final Path absSrc = fixRelativePart(src);
     final Path absSrc = fixRelativePart(src);
     final Path absDst = fixRelativePart(dst);
     final Path absDst = fixRelativePart(dst);
     AbstractFileSystem srcFS = getFSofPath(absSrc);
     AbstractFileSystem srcFS = getFSofPath(absSrc);
@@ -826,8 +811,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code>
    * @throws UnsupportedFileSystemException If file system for <code>f</code>
    *         is not supported
    *         is not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -838,7 +821,7 @@ public final class FileContext {
    */
    */
   public void setPermission(final Path f, final FsPermission permission)
   public void setPermission(final Path f, final FsPermission permission)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     new FSLinkResolver<Void>() {
     new FSLinkResolver<Void>() {
       public Void next(final AbstractFileSystem fs, final Path p) 
       public Void next(final AbstractFileSystem fs, final Path p) 
@@ -861,8 +844,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -878,7 +859,7 @@ public final class FileContext {
   public void setOwner(final Path f, final String username,
   public void setOwner(final Path f, final String username,
       final String groupname) throws AccessControlException,
       final String groupname) throws AccessControlException,
       UnsupportedFileSystemException, FileNotFoundException,
       UnsupportedFileSystemException, FileNotFoundException,
-      UnresolvedLinkException, IOException {
+      IOException {
     if ((username == null) && (groupname == null)) {
     if ((username == null) && (groupname == null)) {
       throw new HadoopIllegalArgumentException(
       throw new HadoopIllegalArgumentException(
           "username and groupname cannot both be null");
           "username and groupname cannot both be null");
@@ -907,8 +888,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -919,7 +898,7 @@ public final class FileContext {
    */
    */
   public void setTimes(final Path f, final long mtime, final long atime)
   public void setTimes(final Path f, final long mtime, final long atime)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     new FSLinkResolver<Void>() {
     new FSLinkResolver<Void>() {
       public Void next(final AbstractFileSystem fs, final Path p) 
       public Void next(final AbstractFileSystem fs, final Path p) 
@@ -941,8 +920,6 @@ public final class FileContext {
    *
    *
    * @throws AccessControlException If access is denied
    * @throws AccessControlException If access is denied
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -953,7 +930,7 @@ public final class FileContext {
    */
    */
   public FileChecksum getFileChecksum(final Path f)
   public FileChecksum getFileChecksum(final Path f)
       throws AccessControlException, FileNotFoundException,
       throws AccessControlException, FileNotFoundException,
-      UnresolvedLinkException, IOException {
+      IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<FileChecksum>() {
     return new FSLinkResolver<FileChecksum>() {
       public FileChecksum next(final AbstractFileSystem fs, final Path p) 
       public FileChecksum next(final AbstractFileSystem fs, final Path p) 
@@ -999,8 +976,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -1010,8 +985,7 @@ public final class FileContext {
    *           undeclared exception to RPC server
    *           undeclared exception to RPC server
    */
    */
   public FileStatus getFileStatus(final Path f) throws AccessControlException,
   public FileStatus getFileStatus(final Path f) throws AccessControlException,
-      FileNotFoundException, UnsupportedFileSystemException,
-      UnresolvedLinkException, IOException {
+      FileNotFoundException, UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<FileStatus>() {
     return new FSLinkResolver<FileStatus>() {
       public FileStatus next(final AbstractFileSystem fs, final Path p) 
       public FileStatus next(final AbstractFileSystem fs, final Path p) 
@@ -1121,8 +1095,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -1138,7 +1110,7 @@ public final class FileContext {
   @InterfaceStability.Evolving
   @InterfaceStability.Evolving
   public BlockLocation[] getFileBlockLocations(final Path f, final long start,
   public BlockLocation[] getFileBlockLocations(final Path f, final long start,
       final long len) throws AccessControlException, FileNotFoundException,
       final long len) throws AccessControlException, FileNotFoundException,
-      UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+      UnsupportedFileSystemException, IOException {
     final Path absF = fixRelativePart(f);
     final Path absF = fixRelativePart(f);
     return new FSLinkResolver<BlockLocation[]>() {
     return new FSLinkResolver<BlockLocation[]>() {
       public BlockLocation[] next(final AbstractFileSystem fs, final Path p) 
       public BlockLocation[] next(final AbstractFileSystem fs, final Path p) 
@@ -1164,8 +1136,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws FileNotFoundException If <code>f</code> does not exist
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    * @throws UnsupportedFileSystemException If file system for <code>f</code> is
    *           not supported
    *           not supported
-   * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-   *           be resolved
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
    * 
    * 
    * Exceptions applicable to file systems accessed over RPC:
    * Exceptions applicable to file systems accessed over RPC:
@@ -1175,8 +1145,7 @@ public final class FileContext {
    *           undeclared exception to RPC server
    *           undeclared exception to RPC server
    */
    */
   public FsStatus getFsStatus(final Path f) throws AccessControlException,
   public FsStatus getFsStatus(final Path f) throws AccessControlException,
-      FileNotFoundException, UnsupportedFileSystemException,
-      UnresolvedLinkException, IOException {
+      FileNotFoundException, UnsupportedFileSystemException, IOException {
     if (f == null) {
     if (f == null) {
       return defaultFS.getFsStatus();
       return defaultFS.getFsStatus();
     }
     }
@@ -1264,8 +1233,6 @@ public final class FileContext {
    * @throws FileNotFoundException If <code>target</code> does not exist
    * @throws FileNotFoundException If <code>target</code> does not exist
    * @throws ParentNotDirectoryException If parent of <code>link</code> is not a
    * @throws ParentNotDirectoryException If parent of <code>link</code> is not a
    *           directory.
    *           directory.
-   * @throws UnresolvedLinkException If symbolic link <code>target</code> could not
-   *           be resolved
    * @throws UnsupportedFileSystemException If file system for 
    * @throws UnsupportedFileSystemException If file system for 
    *           <code>target</code> or <code>link</code> is not supported
    *           <code>target</code> or <code>link</code> is not supported
    * @throws IOException If an I/O error occurred
    * @throws IOException If an I/O error occurred
@@ -1273,8 +1240,8 @@ public final class FileContext {
   public void createSymlink(final Path target, final Path link,
   public void createSymlink(final Path target, final Path link,
       final boolean createParent) throws AccessControlException,
       final boolean createParent) throws AccessControlException,
       FileAlreadyExistsException, FileNotFoundException,
       FileAlreadyExistsException, FileNotFoundException,
-      ParentNotDirectoryException, UnresolvedLinkException,
-      UnsupportedFileSystemException, IOException { 
+      ParentNotDirectoryException, UnsupportedFileSystemException, 
+      IOException { 
     final Path nonRelLink = fixRelativePart(link);
     final Path nonRelLink = fixRelativePart(link);
     new FSLinkResolver<Void>() {
     new FSLinkResolver<Void>() {
       public Void next(final AbstractFileSystem fs, final Path p) 
       public Void next(final AbstractFileSystem fs, final Path p) 
@@ -1441,8 +1408,6 @@ public final class FileContext {
      * @throws FileNotFoundException If <code>f</code> does not exist
      * @throws FileNotFoundException If <code>f</code> does not exist
      * @throws UnsupportedFileSystemException If file system for 
      * @throws UnsupportedFileSystemException If file system for 
      *         <code>f</code> is not supported
      *         <code>f</code> is not supported
-     * @throws UnresolvedLinkException If symbolic link <code>f</code> could not
-     *           be resolved
      * @throws IOException If an I/O error occurred
      * @throws IOException If an I/O error occurred
      * 
      * 
      * Exceptions applicable to file systems accessed over RPC:
      * Exceptions applicable to file systems accessed over RPC:
@@ -1453,7 +1418,7 @@ public final class FileContext {
      */
      */
     public ContentSummary getContentSummary(Path f)
     public ContentSummary getContentSummary(Path f)
         throws AccessControlException, FileNotFoundException,
         throws AccessControlException, FileNotFoundException,
-        UnsupportedFileSystemException, UnresolvedLinkException, IOException {
+        UnsupportedFileSystemException, IOException {
       FileStatus status = FileContext.this.getFileStatus(f);
       FileStatus status = FileContext.this.getFileStatus(f);
       if (!status.isDir()) {
       if (!status.isDir()) {
         // f is a file
         // f is a file
@@ -1839,7 +1804,7 @@ public final class FileContext {
     public boolean copy(final Path src, final Path dst)
     public boolean copy(final Path src, final Path dst)
         throws AccessControlException, FileAlreadyExistsException,
         throws AccessControlException, FileAlreadyExistsException,
         FileNotFoundException, ParentNotDirectoryException,
         FileNotFoundException, ParentNotDirectoryException,
-        UnresolvedLinkException, UnsupportedFileSystemException, IOException {
+        UnsupportedFileSystemException, IOException {
       return copy(src, dst, false, false);
       return copy(src, dst, false, false);
     }
     }
     
     
@@ -1858,8 +1823,6 @@ public final class FileContext {
      * @throws FileNotFoundException If <code>src</code> does not exist
      * @throws FileNotFoundException If <code>src</code> does not exist
      * @throws ParentNotDirectoryException If parent of <code>dst</code> is not
      * @throws ParentNotDirectoryException If parent of <code>dst</code> is not
      *           a directory
      *           a directory
-     * @throws UnresolvedLinkException If symbolic link <code>src</code> could 
-     *           not be resolved
      * @throws UnsupportedFileSystemException If file system for 
      * @throws UnsupportedFileSystemException If file system for 
      *         <code>src</code> or <code>dst</code> is not supported
      *         <code>src</code> or <code>dst</code> is not supported
      * @throws IOException If an I/O error occurred
      * @throws IOException If an I/O error occurred
@@ -1876,8 +1839,8 @@ public final class FileContext {
     public boolean copy(final Path src, final Path dst, boolean deleteSource,
     public boolean copy(final Path src, final Path dst, boolean deleteSource,
         boolean overwrite) throws AccessControlException,
         boolean overwrite) throws AccessControlException,
         FileAlreadyExistsException, FileNotFoundException,
         FileAlreadyExistsException, FileNotFoundException,
-        ParentNotDirectoryException, UnresolvedLinkException,
-        UnsupportedFileSystemException, IOException {
+        ParentNotDirectoryException, UnsupportedFileSystemException, 
+	IOException {
       checkNotSchemeWithRelative(src);
       checkNotSchemeWithRelative(src);
       checkNotSchemeWithRelative(dst);
       checkNotSchemeWithRelative(dst);
       Path qSrc = makeQualified(src);
       Path qSrc = makeQualified(src);