Hi,

I'm going through the identity.provider source and found a possible
performance issue. (However this has to be verified with some tool like
JProfiler)


turing/components/identity/org.wso2.carbon.identity.provider/4.2.2/src/main/java/org/wso2/carbon/identity/provider/openid/cache/OpenIDAssociationCache.java


    /**
     * Add the entry to the cache.
     *
     * @param association
     */
    public void addToCache(Association association) {
        if (log.isDebugEnabled()) {
            log.debug("Trying to add to cache.");
        }
        if (association != null && association.getHandle() != null) {
            OpenIDIdentityCacheKey cacheKey = new OpenIDIdentityCacheKey(0,
association.getHandle());
            OpenIDIdentityCacheEntry cacheEntry =
                                            new
OpenIDIdentityCacheEntry(association.getType(),

association.getMacKey(),

association.getExpiry());
            associationCache.addToCache(cacheKey, cacheEntry);
            if (log.isDebugEnabled()) {
                log.debug("New entry is added to cache  : " +
association.getHandle());
            }
        }
    }


The addToCache method is frequently called when creating OpenID
associations. Every time a new association is created, it checks two times
whether the debug log is enabled (shown in red above) by calling
isDebugEnabled() method. (Assuming that the method call is costly than
reading a local boolean variable)

My suggestion is since the enabling or disabling the debug log is not
happening during the runtime of the server, we keep a boolean variable
inside the OpenIDAssociationCache class and assign value to that in the
constructor of the class. Then each time the addToCache method is called,
it will check that boolean value instead of always calling the
log.isDebugEnabled() method.

Any thoughts ??
-- 

Thanks & Best Regards,

Tharindu Edirisinghe
Software Engineer

*WSO2 Inc*
*email   : [email protected] <[email protected]> *
*mobile : +94 775 181586*
*www: :http://wso2.com <http://wso2.com/> *lean . enterprise . middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to