Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-25708

Bytes.toInt(byte[] bytes)-why set default offset as zero

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Blocker
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: community
    • Labels:
      None

      Description

      As we know, when using Bytes.tobytes(int), the method convert the int value to byte-array with big endian.

      So, when we try to extract the right int-value from byte-array, we use method 'Bytes.toInt(byte[] bytes)',  and int the method, it sets the offset as zero.

       

      it shows like this 

      /**

      • Converts a byte array to an int value
      • @param bytes byte array
      • @return the int value
        */
        public static int toInt(byte[] bytes) { return toInt(bytes, 0, SIZEOF_INT); }

      My question is : 

      why don't we set the offset as (bytes.length - SIZEOF_INT)?

       

      Recently, we have long-value stored in hbase, as we try to extract, we decode the byte-array as int-value, it leads some incorrect-value like 0.

       

      The usage of decoding-int-value from long-value-byte-array is wrong, I'm just curious about the start point of setting offset as 0

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              cctoken larry chen
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: