title: BufferUnderflowException exception while doing getLong when buffer is allocated 14 bytes
body: <p>Very small piece of code but i am completely surprised with the behavior. I have a 14 byte key which is in a byte array.I put this byte array into a ByteBuffer then doing a getLong gives me a BufferUnderflowException. Can't understand why?</p>
  
  <pre><code>    byte key[] = new byte[14];
  
      key[13] = (byte) 3;
      key[12] = (byte) 21;
      key[11] = (byte) 1;
      key[10] = (byte) 15;
      key[9]  = (byte) 66;
      key[8]  = (byte) 64;
  
      key[7]  = (byte) 3;
      key[6]  = (byte) 65;
      key[5]  = (byte) -10;
      key[4]  = (byte) -65;
      key[3]  = (byte) 3;
      key[2]  = (byte) 65;
      key[1]  = (byte) -10;
      key[0]  = (byte) -65;
  
  
      ByteBuffer b = ByteBuffer.allocate(14);
      b.put(key);
      long l = b.getLong();
  </code></pre>