title: "java.lang.ArrayIndexOutOfBoundsException" with System.arraycopy()
body: <p>These few lines of code are giving me a "java.lang.ArrayIndexOutOfBoundsException" exception, could someone please take a look and point out why (the exception is caused in the second arraycopy() call):</p>
  
  <pre><code>byte [] newContentBytes = EntityUtils.toByteArray((serverResponse.getEntity()));
    newContent = new String(newContentBytes);
    System.out.println( newContent);
    byte [] headerBytes = headers.getBytes();
    byte[] res = new byte[newContentBytes.length + headerBytes.length];
    //headerBytes.
    System.arraycopy(headerBytes, 0, res, 0, headerBytes.length);
    System.out.println( "length: " + newContentBytes.length);
    System.arraycopy(newContentBytes, 0, res, newContentBytes.length , newContentBytes.length);
  </code></pre>
  
  <p>The problem is in allocating res size, for example if I write 
  new byte[newContentBytes.length + headerBytes.length+ 2000] instead the exception doesn't occur, so what should the accurate size be?</p>