Make extension identifiers final.  This improves security when untrusted code is present in the same class loader.  In order to get around initialization ordering issues, I simply made the constructor for extension identifiers take no arguments and deferred initialization to an internalInit() method, which generated code will always call during init.
3 files changed