Index: hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java (revision 1537831) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java (working copy) @@ -717,6 +717,9 @@ increment.setTimeRange(minStamp, maxStamp); } increment.setDurability(toDurability(proto.getDurability())); + for (NameBytesPair attribute : proto.getAttributeList()) { + increment.setAttribute(attribute.getName(), attribute.getValue().toByteArray()); + } return increment; } @@ -959,7 +962,7 @@ } ColumnValue.Builder columnBuilder = ColumnValue.newBuilder(); QualifierValue.Builder valueBuilder = QualifierValue.newBuilder(); - for (Map.Entry> family: increment.getFamilyCellMap().entrySet()) { + for (Map.Entry> family: increment.getFamilyCellMap().entrySet()) { columnBuilder.setFamily(ZeroCopyLiteralByteString.wrap(family.getKey())); columnBuilder.clearQualifierValue(); List values = family.getValue(); @@ -973,6 +976,15 @@ } builder.addColumnValue(columnBuilder.build()); } + Map attributes = increment.getAttributesMap(); + if (!attributes.isEmpty()) { + NameBytesPair.Builder attributeBuilder = NameBytesPair.newBuilder(); + for (Map.Entry attribute : attributes.entrySet()) { + attributeBuilder.setName(attribute.getKey()); + attributeBuilder.setValue(ZeroCopyLiteralByteString.wrap(attribute.getValue())); + builder.addAttribute(attributeBuilder.build()); + } + } return builder.build(); }