Most jogl functions accept both direct and indirect data buffers, and in the indirect case simply passes the wrapped array to the native function 'dispatch_gl...........' (which accepts a java.lang.Object).
How does the C implementation of 'dispatch_gl...........' handle this? 
 - Do you pin the java array in memory and then call the appropriate C gl function?
 - Or do you copy the indirect data into a direct buffer? 
 - Do you have some kind of memory management strategy for this when it comes to potentially asynchronous read behavour?
I've read 
http://jogamp.org/jogl/doc/userguide/ but I don't see any details there.
Is the jogl C code generated by gluegen available somewhere to browse, or do we need to build jogl ourselves?