OpenGL functions that read from or write to a buffer usually have 2 forms:
a) When an OpenGL buffer object IS NOT bound to the corresponding target (e.g. PIXEL_PACK_BUFFER in your case), data is read from or written to client memory, i.e. a java.nio Buffer.
b) When an OpenGL buffer object IS bound, data is read from or written to the corresponding buffer object's memory store (which the driver allocates and manages). In this case, you should not use the version of the function that accepts a java.nio Buffer and use the one that accepts a long offset instead.
Since this is a common bug in user code, LWJGL checks for the above invariants and throws the exception you're seeing. Please note that in both cases the OpenGL driver receives a pointer value, which is interpreted as a memory address in the first case and as an offset (from the buffer object start) in the second. That's why this bug usually leads to a JVM crash without the check.