I was looking at glPushAttrib and glPushClientAttrib() and noticed that glPushClientAttrib() takes an int, but GL.GL_CLIENT_ALL_ATTRIB_BITS is a long. Will it still work properly if it is cast to an int and given to glPushClientAttrib(), or is this a bug? The rest of the client bits and server bits are int’s (including ALL_ATTRIB_BITS, used for glPushAttrib).
It will work properly. This is an artifact of how GlueGen decides which integer type to use when converting constant #defines in C headers. The value (0xFFFFFFFF) will fit in a Java int (though since the high bit is set GlueGen decides that it needs a long for it – I believe there are similar rules for how C decides the implicit type of enum values).