As I use Ardor3D, I know the root node of the game “state” (Fettle API), I visit all its children. When I find a leaf node, I look at its mesh data which contain several direct NIO buffers for vertices, colors, texture coordinates, fog, … Then I have to destroy the both parts of these resources, i.e the data stores on the GPU (by using glDeleteBuffers) and the direct NIO buffers not allocated on the GPU (I don’t use glMapBuffer/glUnmapBuffer). I use the cleaner of each direct NIO buffer to release its native memory in the meantime (a public API will be added into Java 1.9 to do that without relying on classes that might be removed).
References:
http://ardor3d.forumatic.com/viewtopic.php?f=10&t=5182&hilit=NIO&start=10#p25407