The more important question in this thread is not the use of the final keyword but why you pass gl in each method, and I think this has been answered well.
Responding to the comments regarding the use of ‘final’:
Some people believe it is good programming practice (myself included) to mark local variables as final when they should not be changed. This includes method signatures, e.g. “myMethod(final String foo, final int bar)”. This is a separate issue to optimisation (which as you say is no longer a benefit).
If you follow this technique then you are prevented from accidently overwriting variables you shouldn’t. This means you turn a potential time wasting logic error into a nice clean compiler one
I don’t believe people who employ this technique deserve to be criticised.
Will.