RuntimeProperties use of System properties becomes a contention point when
creating query translators
------------------------------------------------------------------------------------------------------
Key: CAY-1669
URL: https://issues.apache.org/jira/browse/CAY-1669
Project: Cayenne
Issue Type: Improvement
Components: Core Library
Affects Versions: 3.1M3
Reporter: Andrus Adamchik
Assignee: Andrus Adamchik
Priority: Minor
Turns out System.getProperty(String) is synchronized internally, and can create
a global contention point for the app. DefaultRuntimeProperties is calling
System.getProperty every time, so if we want to minimize the impact of this
lock, we need to cache property values when we read them. A specific case where
this happened a lot was JdbcAdapter (and subclasses)
createEJBQLTranslatorFactory and getQualifierTranslator methods. Both of these
methods checked for whether we have a case-insensitive collation. These 2
methods are used a lot, so will cache the value of the property in the adapter
instance.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira