Currently I am deleting a element buffer after storing data in it and then using it to store data in a VAO attribute 'slot' (glVertexAttribPointer()). This leads to a JVM crash from the native code when I attempt to draw using the VAO. Do I need to take some other step, like waiting until the VAO is unbound, or until the VAO is deleted in order to solve this problem? To my understanding, when the method glVertexAttribPointer() is called, the data in the currently bound array buffer is copied to the VAO attribute 'slot', which would mean the VBO would be safe to delete, however it seems this is not the case. If anyone could explain what my issue is, that would help greatly. Thanks in advance.