Hi
Look at the source code of the classes Texture and TextureData to understand how JOGL handles NPOT. The support of NPOT depends on the support of extensions about NPOT. If NPOT is unsupported, you can use a larger texture whose size is a power of two (which is done in Ardor3D for example, I don't remember whether JOGL does that too) which forces you to send useless data but it's better than nothing.