diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java
index 059b21b..6241d10 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/client/Result.java
@@ -61,19 +61,17 @@ import org.apache.hadoop.hbase.util.Bytes;
* Each KeyValue can then be accessed through
* {@link KeyValue#getRow()}, {@link KeyValue#getFamily()}, {@link KeyValue#getQualifier()},
* {@link KeyValue#getTimestamp()}, and {@link KeyValue#getValue()}.
- *
- * If you need to overwrite a Result with another Result instance -- as in the old 'mapred' RecordReader next
- * invocations -- then create an empty Result with the null constructor and in then use {@link #copyFrom(Result)}
+ * Immutable
*/
@InterfaceAudience.Public
@InterfaceStability.Stable
public class Result {
- private KeyValue [] kvs;
+ protected KeyValue [] kvs;
// We're not using java serialization. Transient here is just a marker to say
// that this is where we cache row if we're ever asked for it.
- private transient byte [] row = null;
+ protected transient byte [] row = null;
// Ditto for familyMap. It can be composed on fly from passed in kvs.
- private transient NavigableMap>> familyMap = null;
+ protected transient NavigableMap>> familyMap = null;
// never use directly
private static byte [] buffer = null;
@@ -81,9 +79,7 @@ public class Result {
/**
* Creates an empty Result w/ no KeyValue payload; returns null if you call {@link #raw()}.
- * Use this to represent no results if null won't do or in old 'mapred' as oppposed to 'mapreduce' package
- * MapReduce where you need to overwrite a Result
- * instance with a {@link #copyFrom(Result)} call.
+ * Use this to represent no results if null won't do.
*/
public Result() {
super();
@@ -696,14 +692,4 @@ public class Result {
}
}
}
-
- /**
- * Copy another Result into this one. Needed for the old Mapred framework
- * @param other
- */
- public void copyFrom(Result other) {
- this.row = null;
- this.familyMap = null;
- this.kvs = other.kvs;
- }
}
\ No newline at end of file
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java
index af81f0e..17a0feb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java
@@ -65,7 +65,7 @@ import org.apache.hadoop.mapred.Reporter;
@Deprecated
public abstract class TableInputFormatBase
-implements InputFormat {
+implements InputFormat {
final Log LOG = LogFactory.getLog(TableInputFormatBase.class);
private byte [][] inputColumns;
private HTable table;
@@ -79,7 +79,7 @@ implements InputFormat {
* @see org.apache.hadoop.mapred.InputFormat#getRecordReader(InputSplit,
* JobConf, Reporter)
*/
- public RecordReader getRecordReader(
+ public RecordReader getRecordReader(
InputSplit split, JobConf job, Reporter reporter)
throws IOException {
TableSplit tSplit = (TableSplit) split;
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java
index 5dec23d..e047313 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReader.java
@@ -31,7 +31,7 @@ import org.apache.hadoop.mapred.RecordReader;
* Iterate over an HBase table data, return (Text, RowResult) pairs
*/
public class TableRecordReader
-implements RecordReader {
+implements RecordReader {
private TableRecordReaderImpl recordReaderImpl = new TableRecordReaderImpl();
@@ -108,7 +108,7 @@ implements RecordReader {
*
* @see org.apache.hadoop.mapred.RecordReader#createValue()
*/
- public Result createValue() {
+ public MutableResult createValue() {
return this.recordReaderImpl.createValue();
}
@@ -130,7 +130,7 @@ implements RecordReader {
* @return true if there was more data
* @throws IOException
*/
- public boolean next(ImmutableBytesWritable key, Result value)
+ public boolean next(ImmutableBytesWritable key, MutableResult value)
throws IOException {
return this.recordReaderImpl.next(key, value);
}
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java
index 36e00e6..c856606 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapred/TableRecordReaderImpl.java
@@ -166,8 +166,8 @@ public class TableRecordReaderImpl {
*
* @see org.apache.hadoop.mapred.RecordReader#createValue()
*/
- public Result createValue() {
- return new Result();
+ public MutableResult createValue() {
+ return new MutableResult();
}
public long getPos() {
@@ -187,7 +187,7 @@ public class TableRecordReaderImpl {
* @return true if there was more data
* @throws IOException
*/
- public boolean next(ImmutableBytesWritable key, Result value)
+ public boolean next(ImmutableBytesWritable key, MutableResult value)
throws IOException {
Result result;
try {
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java
index 14f0f8a..d3c00d6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mapred/TestTableInputFormat.java
@@ -136,7 +136,7 @@ public class TestTableInputFormat {
trr.init();
ImmutableBytesWritable key = new ImmutableBytesWritable();
- Result r = new Result();
+ MutableResult r = new MutableResult();
boolean more = trr.next(key, r);
assertTrue(more);
checkResult(r, key, "aaa".getBytes(), "value aaa".getBytes());