You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by at...@apache.org on 2013/01/09 23:29:41 UTC
svn commit: r1431117 - in
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java
Author: atm
Date: Wed Jan 9 22:29:41 2013
New Revision: 1431117
URL: http://svn.apache.org/viewvc?rev=1431117&view=rev
Log:
HDFS-4306. PBHelper.convertLocatedBlock miss convert BlockToken. Contributed by Binglin Chang.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1431117&r1=1431116&r2=1431117&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Jan 9 22:29:41 2013
@@ -679,6 +679,9 @@ Release 2.0.3-alpha - Unreleased
HDFS-3970. Fix bug causing rollback of HDFS upgrade to result in bad
VERSION file. (Vinay and Andrew Wang via atm)
+ HDFS-4306. PBHelper.convertLocatedBlock miss convert BlockToken. (Binglin
+ Chang via atm)
+
BREAKDOWN OF HDFS-3077 SUBTASKS
HDFS-3077. Quorum-based protocol for reading and writing edit logs.
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java?rev=1431117&r1=1431116&r2=1431117&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocolPB/PBHelper.java Wed Jan 9 22:29:41 2013
@@ -884,25 +884,14 @@ public class PBHelper {
// Located Block Arrays and Lists
public static LocatedBlockProto[] convertLocatedBlock(LocatedBlock[] lb) {
if (lb == null) return null;
- final int len = lb.length;
- LocatedBlockProto[] result = new LocatedBlockProto[len];
- for (int i = 0; i < len; ++i) {
- result[i] = PBHelper.convert(lb[i]);
- }
- return result;
+ return convertLocatedBlock2(Arrays.asList(lb)).toArray(
+ new LocatedBlockProto[lb.length]);
}
public static LocatedBlock[] convertLocatedBlock(LocatedBlockProto[] lb) {
if (lb == null) return null;
- final int len = lb.length;
- LocatedBlock[] result = new LocatedBlock[len];
- for (int i = 0; i < len; ++i) {
- result[i] = new LocatedBlock(
- PBHelper.convert(lb[i].getB()),
- PBHelper.convert(lb[i].getLocsList()),
- lb[i].getOffset(), lb[i].getCorrupt());
- }
- return result;
+ return convertLocatedBlock(Arrays.asList(lb)).toArray(
+ new LocatedBlock[lb.length]);
}
public static List<LocatedBlock> convertLocatedBlock(
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java?rev=1431117&r1=1431116&r2=1431117&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/protocolPB/TestPBHelper.java Wed Jan 9 22:29:41 2013
@@ -405,30 +405,74 @@ public class TestPBHelper {
assertEquals(expected.getKind(), actual.getKind());
assertEquals(expected.getService(), actual.getService());
}
-
- @Test
- public void testConvertLocatedBlock() {
- DatanodeInfo [] dnInfos = {
- DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h1", AdminStates.DECOMMISSION_INPROGRESS),
- DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h2", AdminStates.DECOMMISSIONED),
- DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h3", AdminStates.NORMAL)
+
+ private void compare(LocatedBlock expected, LocatedBlock actual) {
+ assertEquals(expected.getBlock(), actual.getBlock());
+ compare(expected.getBlockToken(), actual.getBlockToken());
+ assertEquals(expected.getStartOffset(), actual.getStartOffset());
+ assertEquals(expected.isCorrupt(), actual.isCorrupt());
+ DatanodeInfo [] ei = expected.getLocations();
+ DatanodeInfo [] ai = actual.getLocations();
+ assertEquals(ei.length, ai.length);
+ for (int i = 0; i < ei.length ; i++) {
+ compare(ei[i], ai[i]);
+ }
+ }
+
+ private LocatedBlock createLocatedBlock() {
+ DatanodeInfo[] dnInfos = {
+ DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h1",
+ AdminStates.DECOMMISSION_INPROGRESS),
+ DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h2",
+ AdminStates.DECOMMISSIONED),
+ DFSTestUtil.getLocalDatanodeInfo("127.0.0.1", "h3",
+ AdminStates.NORMAL)
};
LocatedBlock lb = new LocatedBlock(
new ExtendedBlock("bp12", 12345, 10, 53), dnInfos, 5, false);
+ lb.setBlockToken(new Token<BlockTokenIdentifier>(
+ "identifier".getBytes(), "password".getBytes(), new Text("kind"),
+ new Text("service")));
+ return lb;
+ }
+
+ @Test
+ public void testConvertLocatedBlock() {
+ LocatedBlock lb = createLocatedBlock();
LocatedBlockProto lbProto = PBHelper.convert(lb);
LocatedBlock lb2 = PBHelper.convert(lbProto);
- assertEquals(lb.getBlock(), lb2.getBlock());
- compare(lb.getBlockToken(), lb2.getBlockToken());
- assertEquals(lb.getStartOffset(), lb2.getStartOffset());
- assertEquals(lb.isCorrupt(), lb2.isCorrupt());
- DatanodeInfo [] dnInfos2 = lb2.getLocations();
- assertEquals(dnInfos.length, dnInfos2.length);
- for (int i = 0; i < dnInfos.length ; i++) {
- compare(dnInfos[i], dnInfos2[i]);
+ compare(lb,lb2);
+ }
+
+ @Test
+ public void testConvertLocatedBlockList() {
+ ArrayList<LocatedBlock> lbl = new ArrayList<LocatedBlock>();
+ for (int i=0;i<3;i++) {
+ lbl.add(createLocatedBlock());
+ }
+ List<LocatedBlockProto> lbpl = PBHelper.convertLocatedBlock2(lbl);
+ List<LocatedBlock> lbl2 = PBHelper.convertLocatedBlock(lbpl);
+ assertEquals(lbl.size(), lbl2.size());
+ for (int i=0;i<lbl.size();i++) {
+ compare(lbl.get(i), lbl2.get(2));
}
}
@Test
+ public void testConvertLocatedBlockArray() {
+ LocatedBlock [] lbl = new LocatedBlock[3];
+ for (int i=0;i<3;i++) {
+ lbl[i] = createLocatedBlock();
+ }
+ LocatedBlockProto [] lbpl = PBHelper.convertLocatedBlock(lbl);
+ LocatedBlock [] lbl2 = PBHelper.convertLocatedBlock(lbpl);
+ assertEquals(lbl.length, lbl2.length);
+ for (int i=0;i<lbl.length;i++) {
+ compare(lbl[i], lbl2[i]);
+ }
+ }
+
+ @Test
public void testConvertDatanodeRegistration() {
DatanodeID dnId = DFSTestUtil.getLocalDatanodeID();
BlockKey[] keys = new BlockKey[] { getBlockKey(2), getBlockKey(3) };