The only guarantee the JRE makes on this matter is that this will happen before Java runs out of heap-space
I already mentioned that several times here and on Ardor3D's forum, it's up to you to manage the native memory, you can run out of memory on the native heap if there is still enough memory on the Java heap. I quoted a documentation of IBM about that several months ago
I solved the problem by explicitly removing buffers that I know are no longer required from the GPU
I have done the same in TUER about a month
, I call glDeleteBuffers and I release the native memory of the direct NIO buffer.
you shouldn’t try to to be too smart around resources allocated out of sight of the garbage collector
Actually, you can't be smart, you have to track those resources by yourself.