RFR: 8273026: Slow LoginContext.login() on multi threading application [v5]

Weijun Wang weijun at openjdk.java.net
Thu Oct 28 16:05:13 UTC 2021


On Wed, 27 Oct 2021 20:08:34 GMT, Larry-N <duke at openjdk.java.net> wrote:

>> This fix adds a cache of service provider classes to LoginContext (in particular, it's a cache of LoginModules classes). The approach helps to increase the performance of the LoginContext.login() method significantly, especially in a multi-threading environment. Service Loader is used for polling on Service Provider classes, without instantiating LoginModules object if Service Provider name doesn't match record in .config file. The set of service providers is cached for each Context Loader separately.
>> This code passed successfully tier1 and tier2 tests on mac os.
>
> Larry-N has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Trailing spaces

On my machine, the 1st `@run` fails as expected with "java.util.ServiceConfigurationError: javax.security.auth.spi.LoginModule: Provider SecondLoginModule not found". When it passed on your machine, can you find SecondLoginModule.class in jtreg's working directory? If I stop at the first `@run` I only see Loader.class and FirstLoginModule.class. Maybe you need to clean up the working directory first?

-------------

PR: https://git.openjdk.java.net/jdk/pull/5748



More information about the security-dev mailing list