You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "BELUGA BEHR (JIRA)" <ji...@apache.org> on 2019/03/01 20:47:00 UTC

[jira] [Created] (HIVE-21371) Make NonSyncByteArrayOutputStream Overflow Conscious

BELUGA BEHR created HIVE-21371:
----------------------------------

             Summary: Make NonSyncByteArrayOutputStream Overflow Conscious 
                 Key: HIVE-21371
                 URL: https://issues.apache.org/jira/browse/HIVE-21371
             Project: Hive
          Issue Type: Improvement
    Affects Versions: 4.0.0, 3.2.0
            Reporter: BELUGA BEHR
         Attachments: HIVE-21371.1.patch

{code:java|title=NonSyncByteArrayOutputStream}
  private int enLargeBuffer(int increment) {
    int temp = count + increment;
    int newLen = temp;
    if (temp > buf.length) {
      if ((buf.length << 1) > temp) {
        newLen = buf.length << 1;
      }
      byte newbuf[] = new byte[newLen];
      System.arraycopy(buf, 0, newbuf, 0, count);
      buf = newbuf;
    }
    return newLen;
  }
{code}

This will fail if the array is 2GB or larger because it will double the size every time without consideration for the 4GB limit on arrays.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)