Package org.apache.hadoop.fs

Examples of org.apache.hadoop.fs.FileAlreadyExistsException


    @Override
    public void mkdir(final Path dir, final FsPermission permission,
        final boolean createParent) throws AccessControlException,
        FileAlreadyExistsException {
      if (theInternalDir.isRoot && dir == null) {
        throw new FileAlreadyExistsException("/ already exits");
      }
      throw readOnlyMountTable("mkdir", dir);
    }
View Full Code Here


    }

    // Verify that the destination does not exist as a directory already.
    boolean pathExists = dir.exists(src);
    if (pathExists && dir.isDir(src)) {
      throw new FileAlreadyExistsException("Cannot create file " + src
          + "; already exists as a directory.");
    }

    boolean overwrite = flag.contains(CreateFlag.OVERWRITE);
    boolean append = flag.contains(CreateFlag.APPEND);
    if (isPermissionEnabled) {
      if (append || (overwrite && pathExists)) {
        checkPathAccess(pc, src, FsAction.WRITE);
      } else {
        checkAncestorAccess(pc, src, FsAction.WRITE);
      }
    }

    if (!createParent) {
      verifyParentDir(src);
    }

    try {
      INodeFile myFile = dir.getFileINode(src);
      recoverLeaseInternal(myFile, src, holder, clientMachine, false);

      try {
        blockManager.verifyReplication(src, replication, clientMachine);
      } catch(IOException e) {
        throw new IOException("failed to create "+e.getMessage());
      }
      boolean create = flag.contains(CreateFlag.CREATE);
      if (myFile == null) {
        if (!create) {
          throw new FileNotFoundException("failed to overwrite or append to non-existent file "
            + src + " on client " + clientMachine);
        }
      } else {
        // File exists - must be one of append or overwrite
        if (overwrite) {
          delete(src, true);
        } else if (!append) {
          throw new FileAlreadyExistsException("failed to create file " + src
              + " on client " + clientMachine
              + " because the file exists");
        }
      }
View Full Code Here

      INode[] pathINodes = dir.getExistingPathINodes(parent.toString());
      if (pathINodes[pathINodes.length - 1] == null) {
        throw new FileNotFoundException("Parent directory doesn't exist: "
            + parent.toString());
      } else if (!pathINodes[pathINodes.length - 1].isDirectory()) {
        throw new FileAlreadyExistsException("Parent path is not a directory: "
            + parent.toString());
      }
    }
  }
View Full Code Here

      status = destFileSys.getFileStatus(dst);
    }catch (FileNotFoundException e) {
      return false;
    }
    if (status.isFile()) {
      throw new FileAlreadyExistsException("Not a dir: " + dst+" is a file.");
    }
    return true;
  }
View Full Code Here

      INode parentNode = pathINodes[pathINodes.length - 1];
      if (parentNode == null) {
        throw new FileNotFoundException("Parent directory doesn't exist: "
            + parent.toString());
      } else if (!parentNode.isDirectory() && !parentNode.isLink()) {
        throw new FileAlreadyExistsException("Parent path is not a directory: "
            + parent.toString());
      }
    }
  }
View Full Code Here

      if (dst.equals(src)) {
        return true;
      }
      if (srcInode.isLink() &&
          dst.equals(((INodeSymlink)srcInode).getLinkValue())) {
        throw new FileAlreadyExistsException(
            "Cannot rename symlink "+src+" to its target "+dst);
      }
     
      // dst cannot be directory or a file under src
      if (dst.startsWith(src) &&
View Full Code Here

        throw new IOException(error);
      }

      // validate the destination
      if (dst.equals(src)) {
        throw new FileAlreadyExistsException(
            "The source "+src+" and destination "+dst+" are the same");
      }
      if (srcInode.isLink() &&
          dst.equals(((INodeSymlink)srcInode).getLinkValue())) {
        throw new FileAlreadyExistsException(
            "Cannot rename symlink "+src+" to its target "+dst);
      }
      // dst cannot be a directory or a file under src
      if (dst.startsWith(src) &&
          dst.charAt(src.length()) == Path.SEPARATOR_CHAR) {
        error = "Rename destination " + dst
            + " is a directory or file under source " + src;
        NameNode.stateChangeLog.warn("DIR* FSDirectory.unprotectedRenameTo: "
            + error);
        throw new IOException(error);
      }
      final byte[][] dstComponents = INode.getPathComponents(dst);
      final INode[] dstInodes = new INode[dstComponents.length];
      rootDir.getExistingPathINodes(dstComponents, dstInodes, false);
      INode dstInode = dstInodes[dstInodes.length - 1];
      if (dstInodes.length == 1) {
        error = "rename destination cannot be the root";
        NameNode.stateChangeLog.warn("DIR* FSDirectory.unprotectedRenameTo: "
            + error);
        throw new IOException(error);
      }
      if (dstInode != null) { // Destination exists
        // It's OK to rename a file to a symlink and vice versa
        if (dstInode.isDirectory() != srcInode.isDirectory()) {
          error = "Source " + src + " and destination " + dst
              + " must both be directories";
          NameNode.stateChangeLog.warn("DIR* FSDirectory.unprotectedRenameTo: "
              + error);
          throw new IOException(error);
        }
        if (!overwrite) { // If destination exists, overwrite flag must be true
          error = "rename destination " + dst + " already exists";
          NameNode.stateChangeLog.warn("DIR* FSDirectory.unprotectedRenameTo: "
              + error);
          throw new FileAlreadyExistsException(error);
        }
        List<INode> children = dstInode.isDirectory() ?
            ((INodeDirectory) dstInode).getChildrenRaw() : null;
        if (children != null && children.size() != 0) {
          error = "rename cannot overwrite non empty destination directory "
View Full Code Here

      StringBuilder pathbuilder = new StringBuilder();
      int i = 1;
      for(; i < inodes.length && inodes[i] != null; i++) {
        pathbuilder.append(Path.SEPARATOR + names[i]);
        if (!inodes[i].isDirectory()) {
          throw new FileAlreadyExistsException("Parent path is not a directory: "
              + pathbuilder+ " "+inodes[i].getLocalName());
        }
      }

      // create directories beginning from the first null index
View Full Code Here

    // get delegation token for outDir's file system
    TokenCache.obtainTokensForNamenodes(new Path[] {outDir}, job.getConfiguration());
   
    if (outDir.getFileSystem(job.getConfiguration()).exists(outDir)) {
      throw new FileAlreadyExistsException("Output directory " + outDir +
                                           " already exists");
    }
  }
View Full Code Here

      status = destFileSys.getFileStatus(dst);
    }catch (FileNotFoundException e) {
      return false;
    }
    if (status.isFile()) {
      throw new FileAlreadyExistsException("Not a dir: " + dst+" is a file.");
    }
    return true;
  }
View Full Code Here

TOP

Related Classes of org.apache.hadoop.fs.FileAlreadyExistsException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.