HBASE-20710 extra cloneFamily() in Mutation.add(Cell)
Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
parent
eb67404cef
commit
633bab0c7b
|
@ -37,6 +37,7 @@ import org.apache.hadoop.hbase.CellScanner;
|
||||||
import org.apache.hadoop.hbase.CellUtil;
|
import org.apache.hadoop.hbase.CellUtil;
|
||||||
import org.apache.hadoop.hbase.ExtendedCell;
|
import org.apache.hadoop.hbase.ExtendedCell;
|
||||||
import org.apache.hadoop.hbase.HConstants;
|
import org.apache.hadoop.hbase.HConstants;
|
||||||
|
import org.apache.hadoop.hbase.IndividualBytesFieldCell;
|
||||||
import org.apache.hadoop.hbase.KeyValue;
|
import org.apache.hadoop.hbase.KeyValue;
|
||||||
import org.apache.hadoop.hbase.PrivateCellUtil;
|
import org.apache.hadoop.hbase.PrivateCellUtil;
|
||||||
import org.apache.hadoop.hbase.RawCell;
|
import org.apache.hadoop.hbase.RawCell;
|
||||||
|
@ -115,10 +116,9 @@ public abstract class Mutation extends OperationWithAttributes implements Row, C
|
||||||
this.row = clone.getRow();
|
this.row = clone.getRow();
|
||||||
this.ts = clone.getTimestamp();
|
this.ts = clone.getTimestamp();
|
||||||
this.familyMap = clone.getFamilyCellMap().entrySet().stream()
|
this.familyMap = clone.getFamilyCellMap().entrySet().stream()
|
||||||
.collect(Collectors.toMap(e -> e.getKey(), e -> new ArrayList<>(e.getValue()),
|
.collect(Collectors.toMap(e -> e.getKey(), e -> new ArrayList<>(e.getValue()), (k, v) -> {
|
||||||
(k, v) -> {
|
throw new RuntimeException("collisions!!!");
|
||||||
throw new RuntimeException("collisions!!!");
|
}, () -> new TreeMap<>(Bytes.BYTES_COMPARATOR)));
|
||||||
}, () -> new TreeMap<>(Bytes.BYTES_COMPARATOR)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -788,11 +788,18 @@ public abstract class Mutation extends OperationWithAttributes implements Row, C
|
||||||
" doesn't match the original one " + Bytes.toStringBinary(this.row));
|
" doesn't match the original one " + Bytes.toStringBinary(this.row));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cell.getFamilyArray() == null || cell.getFamilyLength() == 0) {
|
byte[] family;
|
||||||
|
|
||||||
|
if (cell instanceof IndividualBytesFieldCell) {
|
||||||
|
family = cell.getFamilyArray();
|
||||||
|
} else {
|
||||||
|
family = CellUtil.cloneFamily(cell);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (family == null || family.length == 0) {
|
||||||
throw new IllegalArgumentException("Family cannot be null");
|
throw new IllegalArgumentException("Family cannot be null");
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] family = CellUtil.cloneFamily(cell);
|
|
||||||
if (cell instanceof ExtendedCell) {
|
if (cell instanceof ExtendedCell) {
|
||||||
getCellList(family).add(cell);
|
getCellList(family).add(cell);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue