[ 
https://issues.apache.org/jira/browse/HDFS-9252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14962134#comment-14962134
 ] 

Colin Patrick McCabe commented on HDFS-9252:
--------------------------------------------

Thanks, [~eddyxu].

{code}
+             if (blockFile.equals(listdir[j])) {
{code}

It seems like 
{{blockFile.getCanonicalPath().equals(listdir[j].getCanonicalPath())}} would be 
better. See http://stackoverflow.com/questions/8930859/java-file-equals

{code}
140     
141       /**
142        * Get the length of the underlying data file.
143        */
144       long getDataLength(ExtendedBlock eb) throws IOException;
145     
146       /**
147        * Get the generation stamp from the persistent stored metadata file.
148        */
149       long getPersistentGenerationStamp(ExtendedBlock block) throws 
IOException;
{code}

The {{ExtendedBlock}} structure has both a length and a genstamp field.  Maybe 
it would be clearer if these methods were named {{getStoredDataLength}} and 
{{getStoredGenerationStamp}}?  Also the Javadoc should make it clear that they 
are getting the stored length and genstamp, and probably avoid references to 
"the underlying file" (some {{FSDatasetSpi}} implementations don't use files)

{code}
820    assertEquals(utils.getPersistentGenerationStamp(newBlock.getBlock()),
821             newBlock.getBlock().getGenerationStamp());
{code}
Hmm.  It seems like the order is reversed here, right?  In {{assertEquals}}, 
the thing that we "expect" to see should come first, not second.

> Change TestFileTruncate to use FsDatasetTestUtils to get block file size and 
> genstamp.
> --------------------------------------------------------------------------------------
>
>                 Key: HDFS-9252
>                 URL: https://issues.apache.org/jira/browse/HDFS-9252
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>    Affects Versions: 2.7.1
>            Reporter: Lei (Eddy) Xu
>            Assignee: Lei (Eddy) Xu
>         Attachments: HDFS-9252.00.patch
>
>
> {{TestFileTruncate}} verifies block size and genstamp by directly accessing 
> the  local filesystem, e.g.:
> {code}
> assertTrue(cluster.getBlockMetadataFile(dn0,
>    newBlock.getBlock()).getName().endsWith(
>    newBlock.getBlock().getGenerationStamp() + ".meta"));
> {code}
> Lets abstract the fsdataset-special logic behind FsDatasetTestUtils.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to