HDFS-8620. Clean up the checkstyle warinings about ClientProtocol. Contributed by Takanobu Asanuma.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c0b8e4e5 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c0b8e4e5 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c0b8e4e5 Branch: refs/heads/HDFS-7240 Commit: c0b8e4e5b5083631ed22d8d36c8992df7d34303c Parents: b68701b Author: Haohui Mai <whe...@apache.org> Authored: Tue Jul 7 14:01:19 2015 -0700 Committer: Haohui Mai <whe...@apache.org> Committed: Tue Jul 7 14:01:19 2015 -0700 ---------------------------------------------------------------------- .../hdfs/client/HdfsClientConfigKeys.java | 3 +- .../hadoop/hdfs/protocol/ClientProtocol.java | 606 +++++++++---------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 + 3 files changed, 288 insertions(+), 324 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c0b8e4e5/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/HdfsClientConfigKeys.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/HdfsClientConfigKeys.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/HdfsClientConfigKeys.java index e6d579b..600c7ca 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/HdfsClientConfigKeys.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/client/HdfsClientConfigKeys.java @@ -39,7 +39,8 @@ public interface HdfsClientConfigKeys { String DFS_NAMENODE_HTTPS_ADDRESS_KEY = "dfs.namenode.https-address"; String DFS_HA_NAMENODES_KEY_PREFIX = "dfs.ha.namenodes"; int DFS_NAMENODE_RPC_PORT_DEFAULT = 8020; - String DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY = "dfs.namenode.kerberos.principal"; + String DFS_NAMENODE_KERBEROS_PRINCIPAL_KEY = + "dfs.namenode.kerberos.principal"; /** dfs.client.retry configuration properties */ interface Retry { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c0b8e4e5/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java index ab41911..381be30 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/protocol/ClientProtocol.java @@ -77,32 +77,33 @@ public interface ClientProtocol { /** * Until version 69, this class ClientProtocol served as both - * the client interface to the NN AND the RPC protocol used to + * the client interface to the NN AND the RPC protocol used to * communicate with the NN. - * - * This class is used by both the DFSClient and the + * + * This class is used by both the DFSClient and the * NN server side to insulate from the protocol serialization. - * - * If you are adding/changing this interface then you need to + * + * If you are adding/changing this interface then you need to * change both this class and ALSO related protocol buffer * wire protocol definition in ClientNamenodeProtocol.proto. - * - * For more details on protocol buffer wire protocol, please see + * + * For more details on protocol buffer wire protocol, please see * .../org/apache/hadoop/hdfs/protocolPB/overview.html - * + * * The log of historical changes can be retrieved from the svn). * 69: Eliminate overloaded method names. - * + * * 69L is the last version id when this class was used for protocols - * serialization. DO not update this version any further. + * serialization. DO not update this version any further. */ - public static final long versionID = 69L; - + long versionID = 69L; + /////////////////////////////////////// // File contents /////////////////////////////////////// /** - * Get locations of the blocks of the specified file within the specified range. + * Get locations of the blocks of the specified file + * within the specified range. * DataNode locations for each block are sorted by * the proximity to the client. * <p> @@ -111,9 +112,9 @@ public interface ClientProtocol { * DataNode locations for each block are sorted by * the distance to the client's address. * <p> - * The client will then have to contact + * The client will then have to contact * one of the indicated DataNodes to obtain the actual data. - * + * * @param src file name * @param offset range start offset * @param length range length @@ -126,11 +127,8 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public LocatedBlocks getBlockLocations(String src, - long offset, - long length) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, IOException; + LocatedBlocks getBlockLocations(String src, long offset, long length) + throws IOException; /** * Get server default values for a number of configuration params. @@ -138,7 +136,7 @@ public interface ClientProtocol { * @throws IOException */ @Idempotent - public FsServerDefaults getServerDefaults() throws IOException; + FsServerDefaults getServerDefaults() throws IOException; /** * Create a new file entry in the namespace. @@ -148,36 +146,36 @@ public interface ClientProtocol { * The name-node does not have a notion of "current" directory for a client. * <p> * Once created, the file is visible and available for read to other clients. - * Although, other clients cannot {@link #delete(String, boolean)}, re-create or - * {@link #rename(String, String)} it until the file is completed + * Although, other clients cannot {@link #delete(String, boolean)}, re-create + * or {@link #rename(String, String)} it until the file is completed * or explicitly as a result of lease expiration. * <p> * Blocks have a maximum size. Clients that intend to create - * multi-block files must also use + * multi-block files must also use * {@link #addBlock} * * @param src path of the file being created. * @param masked masked permission. * @param clientName name of the current client. - * @param flag indicates whether the file should be + * @param flag indicates whether the file should be * overwritten if it already exists or create if it does not exist or append. * @param createParent create missing parent directory if true * @param replication block replication factor. * @param blockSize maximum block size. * @param supportedVersions CryptoProtocolVersions supported by the client - * + * * @return the status of the created file, it could be null if the server * doesn't support returning the file status * @throws AccessControlException If access is denied * @throws AlreadyBeingCreatedException if the path does not exist. - * @throws DSQuotaExceededException If file creation violates disk space + * @throws DSQuotaExceededException If file creation violates disk space * quota restriction * @throws FileAlreadyExistsException If file <code>src</code> already exists * @throws FileNotFoundException If parent of <code>src</code> does not exist * and <code>createParent</code> is false * @throws ParentNotDirectoryException If parent of <code>src</code> is not a * directory. - * @throws NSQuotaExceededException If file creation violates name space + * @throws NSQuotaExceededException If file creation violates name space * quota restriction * @throws SafeModeException create not allowed in safemode * @throws UnresolvedLinkException If <code>src</code> contains a symlink @@ -190,33 +188,29 @@ public interface ClientProtocol { * <em>Note that create with {@link CreateFlag#OVERWRITE} is idempotent.</em> */ @AtMostOnce - public HdfsFileStatus create(String src, FsPermission masked, + HdfsFileStatus create(String src, FsPermission masked, String clientName, EnumSetWritable<CreateFlag> flag, - boolean createParent, short replication, long blockSize, + boolean createParent, short replication, long blockSize, CryptoProtocolVersion[] supportedVersions) - throws AccessControlException, AlreadyBeingCreatedException, - DSQuotaExceededException, FileAlreadyExistsException, - FileNotFoundException, NSQuotaExceededException, - ParentNotDirectoryException, SafeModeException, UnresolvedLinkException, - SnapshotAccessControlException, IOException; + throws IOException; /** - * Append to the end of the file. + * Append to the end of the file. * @param src path of the file being created. * @param clientName name of the current client. * @param flag indicates whether the data is appended to a new block. * @return wrapper with information about the last partial block and file * status if any - * @throws AccessControlException if permission to append file is - * denied by the system. As usually on the client side the exception will + * @throws AccessControlException if permission to append file is + * denied by the system. As usually on the client side the exception will * be wrapped into {@link org.apache.hadoop.ipc.RemoteException}. * Allows appending to an existing file if the server is * configured with the parameter dfs.support.append set to true, otherwise * throws an IOException. - * + * * @throws AccessControlException If permission to append to file is denied * @throws FileNotFoundException If file <code>src</code> is not found - * @throws DSQuotaExceededException If append violates disk space quota + * @throws DSQuotaExceededException If append violates disk space quota * restriction * @throws SafeModeException append not allowed in safemode * @throws UnresolvedLinkException If <code>src</code> contains a symlink @@ -227,27 +221,25 @@ public interface ClientProtocol { * @throws UnsupportedOperationException if append is not supported */ @AtMostOnce - public LastBlockWithStatus append(String src, String clientName, - EnumSetWritable<CreateFlag> flag) throws AccessControlException, - DSQuotaExceededException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + LastBlockWithStatus append(String src, String clientName, + EnumSetWritable<CreateFlag> flag) throws IOException; /** * Set replication for an existing file. * <p> * The NameNode sets replication to the new value and returns. - * The actual block replication is not expected to be performed during - * this method call. The blocks will be populated or removed in the + * The actual block replication is not expected to be performed during + * this method call. The blocks will be populated or removed in the * background as the result of the routine block maintenance procedures. - * + * * @param src file name * @param replication new replication - * + * * @return true if successful; * false if file does not exist or is a directory * * @throws AccessControlException If access is denied - * @throws DSQuotaExceededException If replication violates disk space + * @throws DSQuotaExceededException If replication violates disk space * quota restriction * @throws FileNotFoundException If file <code>src</code> is not found * @throws SafeModeException not allowed in safemode @@ -256,21 +248,19 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public boolean setReplication(String src, short replication) - throws AccessControlException, DSQuotaExceededException, - FileNotFoundException, SafeModeException, UnresolvedLinkException, - SnapshotAccessControlException, IOException; + boolean setReplication(String src, short replication) + throws IOException; /** * Get all the available block storage policies. * @return All the in-use block storage policies currently. */ @Idempotent - public BlockStoragePolicy[] getStoragePolicies() throws IOException; + BlockStoragePolicy[] getStoragePolicies() throws IOException; /** - * Set the storage policy for a file/directory - * @param src Path of an existing file/directory. + * Set the storage policy for a file/directory. + * @param src Path of an existing file/directory. * @param policyName The name of the storage policy * @throws SnapshotAccessControlException If access is denied * @throws UnresolvedLinkException if <code>src</code> contains a symlink @@ -278,13 +268,12 @@ public interface ClientProtocol { * @throws QuotaExceededException If changes violate the quota restriction */ @Idempotent - public void setStoragePolicy(String src, String policyName) - throws SnapshotAccessControlException, UnresolvedLinkException, - FileNotFoundException, QuotaExceededException, IOException; + void setStoragePolicy(String src, String policyName) + throws IOException; /** * Set permissions for an existing file/directory. - * + * * @throws AccessControlException If access is denied * @throws FileNotFoundException If file <code>src</code> is not found * @throws SafeModeException not allowed in safemode @@ -293,9 +282,8 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public void setPermission(String src, FsPermission permission) - throws AccessControlException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + void setPermission(String src, FsPermission permission) + throws IOException; /** * Set Owner of a path (i.e. a file or a directory). @@ -312,16 +300,15 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public void setOwner(String src, String username, String groupname) - throws AccessControlException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + void setOwner(String src, String username, String groupname) + throws IOException; /** * The client can give up on a block by calling abandonBlock(). - * The client can then either obtain a new block, or complete or abandon the + * The client can then either obtain a new block, or complete or abandon the * file. * Any partial writes to the block will be discarded. - * + * * @param b Block to abandon * @param fileId The id of the file where the block resides. Older clients * will pass GRANDFATHER_INODE_ID here. @@ -334,19 +321,18 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public void abandonBlock(ExtendedBlock b, long fileId, + void abandonBlock(ExtendedBlock b, long fileId, String src, String holder) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, IOException; + throws IOException; /** - * A client that wants to write an additional block to the + * A client that wants to write an additional block to the * indicated filename (which must currently be open for writing) - * should call addBlock(). + * should call addBlock(). * * addBlock() allocates a new block and datanodes the block data * should be replicated to. - * + * * addBlock() also commits the previous block by reporting * to the name-node the actual generation stamp and the length * of the block that the client has transmitted to data-nodes. @@ -372,16 +358,14 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public LocatedBlock addBlock(String src, String clientName, - ExtendedBlock previous, DatanodeInfo[] excludeNodes, long fileId, + LocatedBlock addBlock(String src, String clientName, + ExtendedBlock previous, DatanodeInfo[] excludeNodes, long fileId, String[] favoredNodes) - throws AccessControlException, FileNotFoundException, - NotReplicatedYetException, SafeModeException, UnresolvedLinkException, - IOException; + throws IOException; - /** + /** * Get a datanode for an existing pipeline. - * + * * @param src the file being written * @param fileId the ID of the file being written * @param blk the block being written @@ -389,9 +373,9 @@ public interface ClientProtocol { * @param excludes the excluded nodes * @param numAdditionalNodes number of additional datanodes * @param clientName the name of the client - * + * * @return the located block. - * + * * @throws AccessControlException If access is denied * @throws FileNotFoundException If file <code>src</code> is not found * @throws SafeModeException create not allowed in safemode @@ -399,22 +383,21 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public LocatedBlock getAdditionalDatanode(final String src, + LocatedBlock getAdditionalDatanode(final String src, final long fileId, final ExtendedBlock blk, final DatanodeInfo[] existings, final String[] existingStorageIDs, final DatanodeInfo[] excludes, final int numAdditionalNodes, final String clientName - ) throws AccessControlException, FileNotFoundException, - SafeModeException, UnresolvedLinkException, IOException; + ) throws IOException; /** - * The client is done writing data to the given filename, and would - * like to complete it. + * The client is done writing data to the given filename, and would + * like to complete it. * * The function returns whether the file has been closed successfully. * If the function returns false, the caller should try again. - * + * * close() also commits the last block of file by reporting * to the name-node the actual generation stamp and the length * of the block that the client has transmitted to data-nodes. @@ -434,14 +417,13 @@ public interface ClientProtocol { * @throws AccessControlException If access is denied * @throws FileNotFoundException If file <code>src</code> is not found * @throws SafeModeException create not allowed in safemode - * @throws UnresolvedLinkException If <code>src</code> contains a symlink + * @throws UnresolvedLinkException If <code>src</code> contains a symlink * @throws IOException If an I/O error occurred */ @Idempotent - public boolean complete(String src, String clientName, + boolean complete(String src, String clientName, ExtendedBlock last, long fileId) - throws AccessControlException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, IOException; + throws IOException; /** * The client wants to report corrupted blocks (blocks with specified @@ -449,7 +431,7 @@ public interface ClientProtocol { * @param blocks Array of located blocks to report */ @Idempotent - public void reportBadBlocks(LocatedBlock[] blocks) throws IOException; + void reportBadBlocks(LocatedBlock[] blocks) throws IOException; /////////////////////////////////////// // Namespace management @@ -460,17 +442,17 @@ public interface ClientProtocol { * @param dst new name. * @return true if successful, or false if the old name does not exist * or if the new name already belongs to the namespace. - * + * * @throws SnapshotAccessControlException if path is in RO snapshot - * @throws IOException an I/O error occurred + * @throws IOException an I/O error occurred */ @AtMostOnce - public boolean rename(String src, String dst) - throws UnresolvedLinkException, SnapshotAccessControlException, IOException; + boolean rename(String src, String dst) + throws IOException; /** - * Moves blocks from srcs to trg and delete srcs - * + * Moves blocks from srcs to trg and delete srcs. + * * @param trg existing file * @param srcs - list of existing files (same block size, same replication) * @throws IOException if some arguments are invalid @@ -479,8 +461,8 @@ public interface ClientProtocol { * @throws SnapshotAccessControlException if path is in RO snapshot */ @AtMostOnce - public void concat(String trg, String[] srcs) - throws IOException, UnresolvedLinkException, SnapshotAccessControlException; + void concat(String trg, String[] srcs) + throws IOException; /** * Rename src to dst. @@ -491,7 +473,7 @@ public interface ClientProtocol { * </ul> * <p> * Without OVERWRITE option, rename fails if the dst already exists. - * With OVERWRITE option, rename overwrites the dst, if it is a file + * With OVERWRITE option, rename overwrites the dst, if it is a file * or an empty directory. Rename fails if dst is a non-empty directory. * <p> * This implementation of rename is atomic. @@ -499,17 +481,17 @@ public interface ClientProtocol { * @param src existing file or directory name. * @param dst new name. * @param options Rename options - * + * * @throws AccessControlException If access is denied - * @throws DSQuotaExceededException If rename violates disk space + * @throws DSQuotaExceededException If rename violates disk space * quota restriction * @throws FileAlreadyExistsException If <code>dst</code> already exists and - * <code>options</options> has {@link Rename#OVERWRITE} option + * <code>options</code> has {@link Rename#OVERWRITE} option * false. * @throws FileNotFoundException If <code>src</code> does not exist - * @throws NSQuotaExceededException If rename violates namespace + * @throws NSQuotaExceededException If rename violates namespace * quota restriction - * @throws ParentNotDirectoryException If parent of <code>dst</code> + * @throws ParentNotDirectoryException If parent of <code>dst</code> * is not a directory * @throws SafeModeException rename not allowed in safemode * @throws UnresolvedLinkException If <code>src</code> or @@ -518,11 +500,8 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @AtMostOnce - public void rename2(String src, String dst, Options.Rename... options) - throws AccessControlException, DSQuotaExceededException, - FileAlreadyExistsException, FileNotFoundException, - NSQuotaExceededException, ParentNotDirectoryException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + void rename2(String src, String dst, Options.Rename... options) + throws IOException; /** * Truncate file src to new size. @@ -550,21 +529,20 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public boolean truncate(String src, long newLength, String clientName) - throws AccessControlException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + boolean truncate(String src, long newLength, String clientName) + throws IOException; /** * Delete the given file or directory from the file system. * <p> - * same as delete but provides a way to avoid accidentally - * deleting non empty directories programmatically. + * same as delete but provides a way to avoid accidentally + * deleting non empty directories programmatically. * @param src existing name * @param recursive if true deletes a non empty directory recursively, * else throws an exception. - * @return true only if the existing file or directory was actually removed + * @return true only if the existing file or directory was actually removed * from the file system. - * + * * @throws AccessControlException If access is denied * @throws FileNotFoundException If file <code>src</code> is not found * @throws SafeModeException create not allowed in safemode @@ -573,10 +551,9 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @AtMostOnce - public boolean delete(String src, boolean recursive) - throws AccessControlException, FileNotFoundException, SafeModeException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; - + boolean delete(String src, boolean recursive) + throws IOException; + /** * Create a directory (or hierarchy of directories) with the given * name and permission. @@ -591,8 +568,9 @@ public interface ClientProtocol { * @throws FileAlreadyExistsException If <code>src</code> already exists * @throws FileNotFoundException If parent of <code>src</code> does not exist * and <code>createParent</code> is false - * @throws NSQuotaExceededException If file creation violates quota restriction - * @throws ParentNotDirectoryException If parent of <code>src</code> + * @throws NSQuotaExceededException If file creation violates quota + * restriction + * @throws ParentNotDirectoryException If parent of <code>src</code> * is not a directory * @throws SafeModeException create not allowed in safemode * @throws UnresolvedLinkException If <code>src</code> contains a symlink @@ -603,14 +581,11 @@ public interface ClientProtocol { * @throws InvalidPathException If <code>src</code> is invalid */ @Idempotent - public boolean mkdirs(String src, FsPermission masked, boolean createParent) - throws AccessControlException, FileAlreadyExistsException, - FileNotFoundException, NSQuotaExceededException, - ParentNotDirectoryException, SafeModeException, UnresolvedLinkException, - SnapshotAccessControlException, IOException; + boolean mkdirs(String src, FsPermission masked, boolean createParent) + throws IOException; /** - * Get a partial listing of the indicated directory + * Get a partial listing of the indicated directory. * * @param src the directory name * @param startAfter the name to start listing after encoded in java UTF8 @@ -624,20 +599,17 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public DirectoryListing getListing(String src, - byte[] startAfter, - boolean needLocation) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, IOException; - - /** - * Get listing of all the snapshottable directories - * + DirectoryListing getListing(String src, byte[] startAfter, + boolean needLocation) throws IOException; + + /** + * Get listing of all the snapshottable directories. + * * @return Information about all the current snapshottable directory * @throws IOException If an I/O error occurred */ @Idempotent - public SnapshottableDirectoryStatus[] getSnapshottableDirListing() + SnapshottableDirectoryStatus[] getSnapshottableDirListing() throws IOException; /////////////////////////////////////// @@ -646,7 +618,7 @@ public interface ClientProtocol { /** * Client programs can cause stateful changes in the NameNode - * that affect other clients. A client may obtain a file and + * that affect other clients. A client may obtain a file and * neither abandon nor complete it. A client might hold a series * of locks that prevent other clients from proceeding. * Clearly, it would be bad if a client held a bunch of locks @@ -664,29 +636,28 @@ public interface ClientProtocol { * @throws IOException If an I/O error occurred */ @Idempotent - public void renewLease(String clientName) throws AccessControlException, - IOException; + void renewLease(String clientName) throws IOException; /** * Start lease recovery. * Lightweight NameNode operation to trigger lease recovery - * + * * @param src path of the file to start lease recovery * @param clientName name of the current client * @return true if the file is already closed * @throws IOException */ @Idempotent - public boolean recoverLease(String src, String clientName) throws IOException; + boolean recoverLease(String src, String clientName) throws IOException; + + int GET_STATS_CAPACITY_IDX = 0; + int GET_STATS_USED_IDX = 1; + int GET_STATS_REMAINING_IDX = 2; + int GET_STATS_UNDER_REPLICATED_IDX = 3; + int GET_STATS_CORRUPT_BLOCKS_IDX = 4; + int GET_STATS_MISSING_BLOCKS_IDX = 5; + int GET_STATS_MISSING_REPL_ONE_BLOCKS_IDX = 6; - public int GET_STATS_CAPACITY_IDX = 0; - public int GET_STATS_USED_IDX = 1; - public int GET_STATS_REMAINING_IDX = 2; - public int GET_STATS_UNDER_REPLICATED_IDX = 3; - public int GET_STATS_CORRUPT_BLOCKS_IDX = 4; - public int GET_STATS_MISSING_BLOCKS_IDX = 5; - public int GET_STATS_MISSING_REPL_ONE_BLOCKS_IDX = 6; - /** * Get a set of statistics about the filesystem. * Right now, only seven values are returned. @@ -700,11 +671,11 @@ public interface ClientProtocol { * <li> [6] contains number of blocks which have replication factor * 1 and have lost the only replica. </li> * </ul> - * Use public constants like {@link #GET_STATS_CAPACITY_IDX} in place of + * Use public constants like {@link #GET_STATS_CAPACITY_IDX} in place of * actual numbers to index into the array. */ @Idempotent - public long[] getStats() throws IOException; + long[] getStats() throws IOException; /** * Get a report on the system's current datanodes. @@ -713,14 +684,14 @@ public interface ClientProtocol { * otherwise all datanodes if type is ALL. */ @Idempotent - public DatanodeInfo[] getDatanodeReport(HdfsConstants.DatanodeReportType type) + DatanodeInfo[] getDatanodeReport(HdfsConstants.DatanodeReportType type) throws IOException; /** * Get a report on the current datanode storages. */ @Idempotent - public DatanodeStorageReport[] getDatanodeStorageReport( + DatanodeStorageReport[] getDatanodeStorageReport( HdfsConstants.DatanodeReportType type) throws IOException; /** @@ -728,11 +699,11 @@ public interface ClientProtocol { * @param filename The name of the file * @return The number of bytes in each block * @throws IOException - * @throws UnresolvedLinkException if the path contains a symlink. + * @throws UnresolvedLinkException if the path contains a symlink. */ @Idempotent - public long getPreferredBlockSize(String filename) - throws IOException, UnresolvedLinkException; + long getPreferredBlockSize(String filename) + throws IOException; /** * Enter, leave or get safe mode. @@ -740,16 +711,17 @@ public interface ClientProtocol { * Safe mode is a name node state when it * <ol><li>does not accept changes to name space (read-only), and</li> * <li>does not replicate or delete blocks.</li></ol> - * + * * <p> * Safe mode is entered automatically at name node startup. * Safe mode can also be entered manually using - * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) setSafeMode(SafeModeAction.SAFEMODE_ENTER,false)}. + * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) + * setSafeMode(SafeModeAction.SAFEMODE_ENTER,false)}. * <p> * At startup the name node accepts data node reports collecting * information about block locations. * In order to leave safe mode it needs to collect a configurable - * percentage called threshold of blocks, which satisfy the minimal + * percentage called threshold of blocks, which satisfy the minimal * replication condition. * The minimal replication condition is that each block must have at least * <tt>dfs.namenode.replication.min</tt> replicas. @@ -760,37 +732,40 @@ public interface ClientProtocol { * Then the name node leaves safe mode. * <p> * If safe mode is turned on manually using - * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) setSafeMode(SafeModeAction.SAFEMODE_ENTER,false)} + * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) + * setSafeMode(SafeModeAction.SAFEMODE_ENTER,false)} * then the name node stays in safe mode until it is manually turned off - * using {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) setSafeMode(SafeModeAction.SAFEMODE_LEAVE,false)}. + * using {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) + * setSafeMode(SafeModeAction.SAFEMODE_LEAVE,false)}. * Current state of the name node can be verified using - * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) setSafeMode(SafeModeAction.SAFEMODE_GET,false)} + * {@link #setSafeMode(HdfsConstants.SafeModeAction,boolean) + * setSafeMode(SafeModeAction.SAFEMODE_GET,false)} * <h4>Configuration parameters:</h4> * <tt>dfs.safemode.threshold.pct</tt> is the threshold parameter.<br> * <tt>dfs.safemode.extension</tt> is the safe mode extension parameter.<br> * <tt>dfs.namenode.replication.min</tt> is the minimal replication parameter. - * + * * <h4>Special cases:</h4> - * The name node does not enter safe mode at startup if the threshold is + * The name node does not enter safe mode at startup if the threshold is * set to 0 or if the name space is empty.<br> - * If the threshold is set to 1 then all blocks need to have at least + * If the threshold is set to 1 then all blocks need to have at least * minimal replication.<br> - * If the threshold value is greater than 1 then the name node will not be + * If the threshold value is greater than 1 then the name node will not be * able to turn off safe mode automatically.<br> * Safe mode can always be turned off manually. - * + * * @param action <ul> <li>0 leave safe mode;</li> * <li>1 enter safe mode;</li> * <li>2 get safe mode state.</li></ul> * @param isChecked If true then action will be done only in ActiveNN. - * - * @return <ul><li>0 if the safe mode is OFF or</li> + * + * @return <ul><li>0 if the safe mode is OFF or</li> * <li>1 if the safe mode is ON.</li></ul> - * + * * @throws IOException */ @Idempotent - public boolean setSafeMode(HdfsConstants.SafeModeAction action, boolean isChecked) + boolean setSafeMode(HdfsConstants.SafeModeAction action, boolean isChecked) throws IOException; /** @@ -808,47 +783,45 @@ public interface ClientProtocol { * @throws IOException if image creation failed. */ @AtMostOnce - public boolean saveNamespace(long timeWindow, long txGap) throws IOException; + boolean saveNamespace(long timeWindow, long txGap) throws IOException; - /** * Roll the edit log. * Requires superuser privileges. - * + * * @throws AccessControlException if the superuser privilege is violated * @throws IOException if log roll fails * @return the txid of the new segment */ @Idempotent - public long rollEdits() throws AccessControlException, IOException; + long rollEdits() throws IOException; /** * Enable/Disable restore failed storage. * <p> * sets flag to enable restore of failed storage replicas - * + * * @throws AccessControlException if the superuser privilege is violated. */ @Idempotent - public boolean restoreFailedStorage(String arg) - throws AccessControlException, IOException; + boolean restoreFailedStorage(String arg) throws IOException; /** - * Tells the namenode to reread the hosts and exclude files. + * Tells the namenode to reread the hosts and exclude files. * @throws IOException */ @Idempotent - public void refreshNodes() throws IOException; + void refreshNodes() throws IOException; /** * Finalize previous upgrade. * Remove file system state saved during the upgrade. * The upgrade will become irreversible. - * + * * @throws IOException */ @Idempotent - public void finalizeUpgrade() throws IOException; + void finalizeUpgrade() throws IOException; /** * Rolling upgrade operations. @@ -857,7 +830,7 @@ public interface ClientProtocol { * progress, returns null. */ @Idempotent - public RollingUpgradeInfo rollingUpgrade(RollingUpgradeAction action) + RollingUpgradeInfo rollingUpgrade(RollingUpgradeAction action) throws IOException; /** @@ -871,9 +844,9 @@ public interface ClientProtocol { * cookie returned from the previous call. */ @Idempotent - public CorruptFileBlocks listCorruptFileBlocks(String path, String cookie) + CorruptFileBlocks listCorruptFileBlocks(String path, String cookie) throws IOException; - + /** * Dumps namenode data structures into specified file. If the file * already exists, then append. @@ -881,7 +854,7 @@ public interface ClientProtocol { * @throws IOException */ @Idempotent - public void metaSave(String filename) throws IOException; + void metaSave(String filename) throws IOException; /** * Tell all datanodes to use a new, non-persistent bandwidth value for @@ -891,8 +864,8 @@ public interface ClientProtocol { * @throws IOException */ @Idempotent - public void setBalancerBandwidth(long bandwidth) throws IOException; - + void setBalancerBandwidth(long bandwidth) throws IOException; + /** * Get the file info for a specific file or directory. * @param src The string representation of the path to the file @@ -901,29 +874,27 @@ public interface ClientProtocol { * or null if file not found * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>src</code> is not found - * @throws UnresolvedLinkException if the path contains a symlink. - * @throws IOException If an I/O error occurred + * @throws UnresolvedLinkException if the path contains a symlink. + * @throws IOException If an I/O error occurred */ @Idempotent - public HdfsFileStatus getFileInfo(String src) throws AccessControlException, - FileNotFoundException, UnresolvedLinkException, IOException; - + HdfsFileStatus getFileInfo(String src) throws IOException; + /** - * Get the close status of a file + * Get the close status of a file. * @param src The string representation of the path to the file * * @return return true if file is closed * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>src</code> is not found * @throws UnresolvedLinkException if the path contains a symlink. - * @throws IOException If an I/O error occurred + * @throws IOException If an I/O error occurred */ @Idempotent - public boolean isFileClosed(String src) throws AccessControlException, - FileNotFoundException, UnresolvedLinkException, IOException; - + boolean isFileClosed(String src) throws IOException; + /** - * Get the file info for a specific file or directory. If the path + * Get the file info for a specific file or directory. If the path * refers to a symlink then the FileStatus of the symlink is returned. * @param src The string representation of the path to the file * @@ -932,58 +903,55 @@ public interface ClientProtocol { * * @throws AccessControlException permission denied * @throws UnresolvedLinkException if <code>src</code> contains a symlink - * @throws IOException If an I/O error occurred + * @throws IOException If an I/O error occurred */ @Idempotent - public HdfsFileStatus getFileLinkInfo(String src) - throws AccessControlException, UnresolvedLinkException, IOException; - + HdfsFileStatus getFileLinkInfo(String src) throws IOException; + /** * Get {@link ContentSummary} rooted at the specified directory. * @param path The string representation of the path * * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>path</code> is not found - * @throws UnresolvedLinkException if <code>path</code> contains a symlink. + * @throws UnresolvedLinkException if <code>path</code> contains a symlink. * @throws IOException If an I/O error occurred */ @Idempotent - public ContentSummary getContentSummary(String path) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, IOException; + ContentSummary getContentSummary(String path) throws IOException; /** * Set the quota for a directory. * @param path The string representation of the path to the directory - * @param namespaceQuota Limit on the number of names in the tree rooted + * @param namespaceQuota Limit on the number of names in the tree rooted * at the directory - * @param storagespaceQuota Limit on storage space occupied all the files under - * this directory. + * @param storagespaceQuota Limit on storage space occupied all the files + * under this directory. * @param type StorageType that the space quota is intended to be set on. - * It may be null when called by traditional space/namespace quota. - * When type is is not null, the storagespaceQuota parameter is for - * type specified and namespaceQuota must be + * It may be null when called by traditional space/namespace + * quota. When type is is not null, the storagespaceQuota + * parameter is for type specified and namespaceQuota must be * {@link HdfsConstants#QUOTA_DONT_SET}. * * <br><br> - * - * The quota can have three types of values : (1) 0 or more will set + * + * The quota can have three types of values : (1) 0 or more will set * the quota to that value, (2) {@link HdfsConstants#QUOTA_DONT_SET} implies * the quota will not be changed, and (3) {@link HdfsConstants#QUOTA_RESET} * implies the quota will be reset. Any other value is a runtime error. - * + * * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>path</code> is not found - * @throws QuotaExceededException if the directory size + * @throws QuotaExceededException if the directory size * is greater than the given quota - * @throws UnresolvedLinkException if the <code>path</code> contains a symlink. + * @throws UnresolvedLinkException if the <code>path</code> contains + * a symlink. * @throws SnapshotAccessControlException if path is in RO snapshot * @throws IOException If an I/O error occurred */ @Idempotent - public void setQuota(String path, long namespaceQuota, long storagespaceQuota, - StorageType type) throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + void setQuota(String path, long namespaceQuota, long storagespaceQuota, + StorageType type) throws IOException; /** * Write all metadata for this file into persistent storage. @@ -992,39 +960,35 @@ public interface ClientProtocol { * @param inodeId The inode ID, or GRANDFATHER_INODE_ID if the client is * too old to support fsync with inode IDs. * @param client The string representation of the client - * @param lastBlockLength The length of the last block (under construction) - * to be reported to NameNode + * @param lastBlockLength The length of the last block (under construction) + * to be reported to NameNode * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>src</code> is not found - * @throws UnresolvedLinkException if <code>src</code> contains a symlink. + * @throws UnresolvedLinkException if <code>src</code> contains a symlink. * @throws IOException If an I/O error occurred */ @Idempotent - public void fsync(String src, long inodeId, String client, - long lastBlockLength) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, IOException; + void fsync(String src, long inodeId, String client, long lastBlockLength) + throws IOException; /** * Sets the modification and access time of the file to the specified time. * @param src The string representation of the path * @param mtime The number of milliseconds since Jan 1, 1970. - * Setting mtime to -1 means that modification time should not be set - * by this call. + * Setting mtime to -1 means that modification time should not + * be set by this call. * @param atime The number of milliseconds since Jan 1, 1970. * Setting atime to -1 means that access time should not be set * by this call. - * + * * @throws AccessControlException permission denied * @throws FileNotFoundException file <code>src</code> is not found - * @throws UnresolvedLinkException if <code>src</code> contains a symlink. + * @throws UnresolvedLinkException if <code>src</code> contains a symlink. * @throws SnapshotAccessControlException if path is in RO snapshot * @throws IOException If an I/O error occurred */ @Idempotent - public void setTimes(String src, long mtime, long atime) - throws AccessControlException, FileNotFoundException, - UnresolvedLinkException, SnapshotAccessControlException, IOException; + void setTimes(String src, long mtime, long atime) throws IOException; /** * Create symlink to a file or directory. @@ -1041,16 +1005,13 @@ public interface ClientProtocol { * and <code>createParent</code> is false * @throws ParentNotDirectoryException If parent of <code>link</code> is not a * directory. - * @throws UnresolvedLinkException if <code>link</target> contains a symlink. + * @throws UnresolvedLinkException if <code>link</code> contains a symlink. * @throws SnapshotAccessControlException if path is in RO snapshot * @throws IOException If an I/O error occurred */ @AtMostOnce - public void createSymlink(String target, String link, FsPermission dirPerm, - boolean createParent) throws AccessControlException, - FileAlreadyExistsException, FileNotFoundException, - ParentNotDirectoryException, SafeModeException, UnresolvedLinkException, - SnapshotAccessControlException, IOException; + void createSymlink(String target, String link, FsPermission dirPerm, + boolean createParent) throws IOException; /** * Return the target of the given symlink. If there is an intermediate @@ -1065,28 +1026,27 @@ public interface ClientProtocol { * or an I/O error occurred */ @Idempotent - public String getLinkTarget(String path) throws AccessControlException, - FileNotFoundException, IOException; - + String getLinkTarget(String path) throws IOException; + /** - * Get a new generation stamp together with an access token for + * Get a new generation stamp together with an access token for * a block under construction - * + * * This method is called only when a client needs to recover a failed * pipeline or set up a pipeline for appending to a block. - * + * * @param block a block * @param clientName the name of the client * @return a located block with a new generation stamp and an access token * @throws IOException if any error occurs */ @Idempotent - public LocatedBlock updateBlockForPipeline(ExtendedBlock block, + LocatedBlock updateBlockForPipeline(ExtendedBlock block, String clientName) throws IOException; /** - * Update a pipeline for a block under construction - * + * Update a pipeline for a block under construction. + * * @param clientName the name of the client * @param oldBlock the old block * @param newBlock the new block containing new generation stamp and length @@ -1094,104 +1054,104 @@ public interface ClientProtocol { * @throws IOException if any error occurs */ @AtMostOnce - public void updatePipeline(String clientName, ExtendedBlock oldBlock, + void updatePipeline(String clientName, ExtendedBlock oldBlock, ExtendedBlock newBlock, DatanodeID[] newNodes, String[] newStorageIDs) throws IOException; /** * Get a valid Delegation Token. - * + * * @param renewer the designated renewer for the token * @return Token<DelegationTokenIdentifier> * @throws IOException */ @Idempotent - public Token<DelegationTokenIdentifier> getDelegationToken(Text renewer) + Token<DelegationTokenIdentifier> getDelegationToken(Text renewer) throws IOException; /** * Renew an existing delegation token. - * + * * @param token delegation token obtained earlier * @return the new expiration time * @throws IOException */ @Idempotent - public long renewDelegationToken(Token<DelegationTokenIdentifier> token) + long renewDelegationToken(Token<DelegationTokenIdentifier> token) throws IOException; - + /** * Cancel an existing delegation token. - * + * * @param token delegation token * @throws IOException */ @Idempotent - public void cancelDelegationToken(Token<DelegationTokenIdentifier> token) + void cancelDelegationToken(Token<DelegationTokenIdentifier> token) throws IOException; - + /** * @return encryption key so a client can encrypt data sent via the * DataTransferProtocol to/from DataNodes. * @throws IOException */ @Idempotent - public DataEncryptionKey getDataEncryptionKey() throws IOException; - + DataEncryptionKey getDataEncryptionKey() throws IOException; + /** - * Create a snapshot + * Create a snapshot. * @param snapshotRoot the path that is being snapshotted * @param snapshotName name of the snapshot created * @return the snapshot path. * @throws IOException */ @AtMostOnce - public String createSnapshot(String snapshotRoot, String snapshotName) + String createSnapshot(String snapshotRoot, String snapshotName) throws IOException; /** - * Delete a specific snapshot of a snapshottable directory + * Delete a specific snapshot of a snapshottable directory. * @param snapshotRoot The snapshottable directory * @param snapshotName Name of the snapshot for the snapshottable directory * @throws IOException */ @AtMostOnce - public void deleteSnapshot(String snapshotRoot, String snapshotName) + void deleteSnapshot(String snapshotRoot, String snapshotName) throws IOException; - + /** - * Rename a snapshot - * @param snapshotRoot the directory path where the snapshot was taken + * Rename a snapshot. + * @param snapshotRoot the directory path where the snapshot was taken * @param snapshotOldName old name of the snapshot * @param snapshotNewName new name of the snapshot * @throws IOException */ @AtMostOnce - public void renameSnapshot(String snapshotRoot, String snapshotOldName, + void renameSnapshot(String snapshotRoot, String snapshotOldName, String snapshotNewName) throws IOException; - + /** * Allow snapshot on a directory. * @param snapshotRoot the directory to be snapped * @throws IOException on error */ @Idempotent - public void allowSnapshot(String snapshotRoot) + void allowSnapshot(String snapshotRoot) throws IOException; - + /** * Disallow snapshot on a directory. * @param snapshotRoot the directory to disallow snapshot * @throws IOException on error */ @Idempotent - public void disallowSnapshot(String snapshotRoot) + void disallowSnapshot(String snapshotRoot) throws IOException; - + /** * Get the difference between two snapshots, or between a snapshot and the * current tree of a directory. - * + * * @param snapshotRoot * full path of the directory where snapshots are taken * @param fromSnapshot @@ -1204,93 +1164,93 @@ public interface ClientProtocol { * @throws IOException on error */ @Idempotent - public SnapshotDiffReport getSnapshotDiffReport(String snapshotRoot, + SnapshotDiffReport getSnapshotDiffReport(String snapshotRoot, String fromSnapshot, String toSnapshot) throws IOException; /** * Add a CacheDirective to the CacheManager. - * + * * @param directive A CacheDirectiveInfo to be added * @param flags {@link CacheFlag}s to use for this operation. * @return A CacheDirectiveInfo associated with the added directive * @throws IOException if the directive could not be added */ @AtMostOnce - public long addCacheDirective(CacheDirectiveInfo directive, + long addCacheDirective(CacheDirectiveInfo directive, EnumSet<CacheFlag> flags) throws IOException; /** * Modify a CacheDirective in the CacheManager. - * + * * @param flags {@link CacheFlag}s to use for this operation. * @throws IOException if the directive could not be modified */ @AtMostOnce - public void modifyCacheDirective(CacheDirectiveInfo directive, + void modifyCacheDirective(CacheDirectiveInfo directive, EnumSet<CacheFlag> flags) throws IOException; /** * Remove a CacheDirectiveInfo from the CacheManager. - * + * * @param id of a CacheDirectiveInfo * @throws IOException if the cache directive could not be removed */ @AtMostOnce - public void removeCacheDirective(long id) throws IOException; + void removeCacheDirective(long id) throws IOException; /** * List the set of cached paths of a cache pool. Incrementally fetches results * from the server. - * + * * @param prevId The last listed entry ID, or -1 if this is the first call to * listCacheDirectives. - * @param filter Parameters to use to filter the list results, + * @param filter Parameters to use to filter the list results, * or null to display all directives visible to us. * @return A batch of CacheDirectiveEntry objects. */ @Idempotent - public BatchedEntries<CacheDirectiveEntry> listCacheDirectives( + BatchedEntries<CacheDirectiveEntry> listCacheDirectives( long prevId, CacheDirectiveInfo filter) throws IOException; /** * Add a new cache pool. - * + * * @param info Description of the new cache pool * @throws IOException If the request could not be completed. */ @AtMostOnce - public void addCachePool(CachePoolInfo info) throws IOException; + void addCachePool(CachePoolInfo info) throws IOException; /** * Modify an existing cache pool. * * @param req * The request to modify a cache pool. - * @throws IOException + * @throws IOException * If the request could not be completed. */ @AtMostOnce - public void modifyCachePool(CachePoolInfo req) throws IOException; - + void modifyCachePool(CachePoolInfo req) throws IOException; + /** * Remove a cache pool. - * + * * @param pool name of the cache pool to remove. * @throws IOException if the cache pool did not exist, or could not be * removed. */ @AtMostOnce - public void removeCachePool(String pool) throws IOException; + void removeCachePool(String pool) throws IOException; /** * List the set of cache pools. Incrementally fetches results from the server. - * - * @param prevPool name of the last pool listed, or the empty string if this is - * the first invocation of listCachePools + * + * @param prevPool name of the last pool listed, or the empty string if this + * is the first invocation of listCachePools * @return A batch of CachePoolEntry objects. */ @Idempotent - public BatchedEntries<CachePoolEntry> listCachePools(String prevPool) + BatchedEntries<CachePoolEntry> listCachePools(String prevPool) throws IOException; /** @@ -1300,7 +1260,7 @@ public interface ClientProtocol { * changes. (Modifications are merged into the current ACL.) */ @Idempotent - public void modifyAclEntries(String src, List<AclEntry> aclSpec) + void modifyAclEntries(String src, List<AclEntry> aclSpec) throws IOException; /** @@ -1308,14 +1268,14 @@ public interface ClientProtocol { * retained. */ @Idempotent - public void removeAclEntries(String src, List<AclEntry> aclSpec) + void removeAclEntries(String src, List<AclEntry> aclSpec) throws IOException; /** * Removes all default ACL entries from files and directories. */ @Idempotent - public void removeDefaultAcl(String src) throws IOException; + void removeDefaultAcl(String src) throws IOException; /** * Removes all but the base ACL entries of files and directories. The entries @@ -1323,33 +1283,33 @@ public interface ClientProtocol { * bits. */ @Idempotent - public void removeAcl(String src) throws IOException; + void removeAcl(String src) throws IOException; /** * Fully replaces ACL of files and directories, discarding all existing * entries. */ @Idempotent - public void setAcl(String src, List<AclEntry> aclSpec) throws IOException; + void setAcl(String src, List<AclEntry> aclSpec) throws IOException; /** * Gets the ACLs of files and directories. */ @Idempotent - public AclStatus getAclStatus(String src) throws IOException; - + AclStatus getAclStatus(String src) throws IOException; + /** - * Create an encryption zone + * Create an encryption zone. */ @AtMostOnce - public void createEncryptionZone(String src, String keyName) + void createEncryptionZone(String src, String keyName) throws IOException; /** * Get the encryption zone for a path. */ @Idempotent - public EncryptionZone getEZForPath(String src) + EncryptionZone getEZForPath(String src) throws IOException; /** @@ -1360,7 +1320,7 @@ public interface ClientProtocol { * @return Batch of encryption zones. */ @Idempotent - public BatchedEntries<EncryptionZone> listEncryptionZones( + BatchedEntries<EncryptionZone> listEncryptionZones( long prevId) throws IOException; /** @@ -1376,9 +1336,9 @@ public interface ClientProtocol { * @throws IOException */ @AtMostOnce - public void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag) + void setXAttr(String src, XAttr xAttr, EnumSet<XAttrSetFlag> flag) throws IOException; - + /** * Get xattrs of a file or directory. Values in xAttrs parameter are ignored. * If xAttrs is null or empty, this is the same as getting all xattrs of the @@ -1389,11 +1349,11 @@ public interface ClientProtocol { * * @param src file or directory * @param xAttrs xAttrs to get - * @return List<XAttr> <code>XAttr</code> list + * @return List<XAttr> <code>XAttr</code> list * @throws IOException */ @Idempotent - public List<XAttr> getXAttrs(String src, List<XAttr> xAttrs) + List<XAttr> getXAttrs(String src, List<XAttr> xAttrs) throws IOException; /** @@ -1408,9 +1368,9 @@ public interface ClientProtocol { * @throws IOException */ @Idempotent - public List<XAttr> listXAttrs(String src) + List<XAttr> listXAttrs(String src) throws IOException; - + /** * Remove xattr of a file or directory.Value in xAttr parameter is ignored. * The name must be prefixed with the namespace followed by ".". For example, @@ -1423,7 +1383,7 @@ public interface ClientProtocol { * @throws IOException */ @AtMostOnce - public void removeXAttr(String src, XAttr xAttr) throws IOException; + void removeXAttr(String src, XAttr xAttr) throws IOException; /** * Checks if the user can access a path. The mode specifies which access @@ -1441,7 +1401,7 @@ public interface ClientProtocol { * @throws IOException see specific implementation */ @Idempotent - public void checkAccess(String path, FsAction mode) throws IOException; + void checkAccess(String path, FsAction mode) throws IOException; /** * Get the highest txid the NameNode knows has been written to the edit @@ -1449,12 +1409,12 @@ public interface ClientProtocol { * the starting point for the inotify event stream. */ @Idempotent - public long getCurrentEditLogTxid() throws IOException; + long getCurrentEditLogTxid() throws IOException; /** * Get an ordered list of batches of events corresponding to the edit log * transactions for txids equal to or greater than txid. */ @Idempotent - public EventBatchList getEditsFromTxid(long txid) throws IOException; + EventBatchList getEditsFromTxid(long txid) throws IOException; } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c0b8e4e5/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 1e1e6bb..db77d0b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -704,6 +704,9 @@ Release 2.8.0 - UNRELEASED HDFS-8711. setSpaceQuota command should print the available storage type when input storage type is wrong. (Brahma Reddy Battula via xyao) + HDFS-8620. Clean up the checkstyle warinings about ClientProtocol. + (Takanobu Asanuma via wheat9) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than