[ 
https://issues.apache.org/jira/browse/HBASE-15706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15258511#comment-15258511
 ] 

huaxiang sun commented on HBASE-15706:
--------------------------------------

Hi [~anoop.hbase], I briefly looked at the change TagUtil#getValueAsString's 
use of toStringBinary() from toString. There are some impacts which need more 
thoughts. For example, VisibilityController.java#preBatchMutate(), there is one 
line
            cellVisibility = new CellVisibility(TagUtil.getValueAsString(tag));

If the encoding changes, this will set CellVisibility#expression as an invalid 
string. I am making the following change, in case I misunderstood what you 
said, thanks.

{code}
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/TagUtil.java 
b/hbase-common/src/main/java/org/apache/hadoop/hbase/TagUtil.java
index 65f0cad..cd30249 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/TagUtil.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/TagUtil.java
@@ -161,9 +161,9 @@ public final class TagUtil {
    */
   public static String getValueAsString(Tag tag){
     if(tag.hasArray()){
-      return Bytes.toString(tag.getValueArray(), tag.getValueOffset(), 
tag.getValueLength());
+      return Bytes.toStringBinary(tag.getValueArray(), tag.getValueOffset(), 
tag.getValueLength());
     }
-    return Bytes.toString(cloneValue(tag));
+    return Bytes.toStringBinary(cloneValue(tag));
   }
 
   /**
{code}

> HFilePrettyPrinter should print out nicely formatted tags
> ---------------------------------------------------------
>
>                 Key: HBASE-15706
>                 URL: https://issues.apache.org/jira/browse/HBASE-15706
>             Project: HBase
>          Issue Type: Improvement
>          Components: HFile
>    Affects Versions: 2.0.0
>            Reporter: huaxiang sun
>            Priority: Minor
>         Attachments: HBASE-15706-v001.patch
>
>
> When I was using HFile to print out a rows with tags, the output is like:
> {code}
> hsun-MBP:hbase-2.0.0-SNAPSHOT hsun$ hbase 
> org.apache.hadoop.hbase.io.hfile.HFile -f 
> /tmp/71afa45b1cb94ea1858a99f31197274f -p
> 2016-04-25 11:40:40,409 WARN  [main] util.NativeCodeLoader: Unable to load 
> native-hadoop library for your platform... using builtin-java classes where 
> applicable
> 2016-04-25 11:40:40,580 INFO  [main] hfile.CacheConfig: CacheConfig:disabled
> K: b/b:b/1461608231279/Maximum/vlen=0/seqid=0 V: 
> K: b/b:b/1461608231278/Put/vlen=1/seqid=0 V: b T[0]: �
> Scanned kv count -> 2
> {code}
> With attached patch, the print is now like:
> {code}
> 2016-04-25 11:57:05,849 INFO  [main] hfile.CacheConfig: CacheConfig:disabled
> K: b/b:b/1461609876838/Maximum/vlen=0/seqid=0 V: 
> K: b/b:b/1461609876837/Put/vlen=1/seqid=0 V: b T[0]: [Tag type : 8, value : 
> \x00\x0E\xEE\xEE]
> Scanned kv count -> 2
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to