Author: hairong
Date: Wed Nov 17 05:29:00 2010
New Revision: 1035923
URL: http://svn.apache.org/viewvc?rev=1035923&view=rev
Log:
HADOOP-7013. Add boolean field isCorrupt to BlockLocation. Contributed by
Patrick Kling.
Modified:
hadoop/common/trunk/CHANGES.txt
hadoop/common/trunk/src/java/org/apache/hadoop/fs/BlockLocation.java
Modified: hadoop/common/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=1035923&r1=1035922&r2=1035923&view=diff
==============================================================================
--- hadoop/common/trunk/CHANGES.txt (original)
+++ hadoop/common/trunk/CHANGES.txt Wed Nov 17 05:29:00 2010
@@ -38,6 +38,9 @@ Trunk (unreleased changes)
HADOOP-6996. Allow CodecFactory to return a codec object given a codec'
class name. (hairong)
+ HADOOP-7013. Add boolean field isCorrupt to BlockLocation.
+ (Patrick Kling via hairong)
+
IMPROVEMENTS
HADOOP-6644. util.Shell getGROUPS_FOR_USER_COMMAND method name
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/fs/BlockLocation.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/BlockLocation.java?rev=1035923&r1=1035922&r2=1035923&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/BlockLocation.java
(original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/BlockLocation.java Wed
Nov 17 05:29:00 2010
@@ -50,6 +50,7 @@ public class BlockLocation implements Wr
private String[] topologyPaths; // full path name in network topology
private long offset; //offset of the of the block in the file
private long length;
+ private boolean corrupt;
/**
* Default Constructor
@@ -63,6 +64,14 @@ public class BlockLocation implements Wr
*/
public BlockLocation(String[] names, String[] hosts, long offset,
long length) {
+ this(names, hosts, offset, length, false);
+ }
+
+ /**
+ * Constructor with host, name, offset, length and corrupt flag
+ */
+ public BlockLocation(String[] names, String[] hosts, long offset,
+ long length, boolean corrupt) {
if (names == null) {
this.names = new String[0];
} else {
@@ -76,6 +85,7 @@ public class BlockLocation implements Wr
this.offset = offset;
this.length = length;
this.topologyPaths = new String[0];
+ this.corrupt = corrupt;
}
/**
@@ -83,7 +93,16 @@ public class BlockLocation implements Wr
*/
public BlockLocation(String[] names, String[] hosts, String[] topologyPaths,
long offset, long length) {
- this(names, hosts, offset, length);
+ this(names, hosts, topologyPaths, offset, length, false);
+ }
+
+ /**
+ * Constructor with host, name, network topology, offset, length
+ * and corrupt flag
+ */
+ public BlockLocation(String[] names, String[] hosts, String[] topologyPaths,
+ long offset, long length, boolean corrupt) {
+ this(names, hosts, offset, length, corrupt);
if (topologyPaths == null) {
this.topologyPaths = new String[0];
} else {
@@ -138,7 +157,14 @@ public class BlockLocation implements Wr
public long getLength() {
return length;
}
-
+
+ /**
+ * Get the corrupt flag.
+ */
+ public boolean isCorrupt() {
+ return corrupt;
+ }
+
/**
* Set the start offset of file associated with this block
*/
@@ -154,6 +180,13 @@ public class BlockLocation implements Wr
}
/**
+ * Set the corrupt flag.
+ */
+ public void setCorrupt(boolean corrupt) {
+ this.corrupt = corrupt;
+ }
+
+ /**
* Set the hosts hosting this block
*/
public void setHosts(String[] hosts) throws IOException {
@@ -192,6 +225,7 @@ public class BlockLocation implements Wr
public void write(DataOutput out) throws IOException {
out.writeLong(offset);
out.writeLong(length);
+ out.writeBoolean(corrupt);
out.writeInt(names.length);
for (int i=0; i < names.length; i++) {
Text name = new Text(names[i]);
@@ -215,6 +249,7 @@ public class BlockLocation implements Wr
public void readFields(DataInput in) throws IOException {
this.offset = in.readLong();
this.length = in.readLong();
+ this.corrupt = in.readBoolean();
int numNames = in.readInt();
this.names = new String[numNames];
for (int i = 0; i < numNames; i++) {
@@ -245,6 +280,9 @@ public class BlockLocation implements Wr
result.append(offset);
result.append(',');
result.append(length);
+ if (corrupt) {
+ result.append("(corrupt)");
+ }
for(String h: hosts) {
result.append(',');
result.append(h);