Title:
deserializeJSON() invokes java.lang.System.getProperty() which is slow with sandbox security enabled
| View in TrackerStatus/Resolution/Reason: Closed/Fixed/
Reporter/Name(from Bugbase): Henry Ho / Henry Ho (Henry Ho)
Created: 07/19/2016
Components: Performance
Versions: 11.0
Failure Type: Performance Issue
Found In Build/Fixed In Build: CF11_Final /
Priority/Frequency: Major / All users will encounter
Locale/System: English / Win All
Vote Count: 0
Problem Description:
When a cfm/cfc invokes deserializeJSON(), coldfusion.runtime.JSONUtils.parseNumber() invokes java.lang.System.getProperty() with sandbox security enabled because getProperty() will trigger a SecurityManager.checkPropertyAccess() which will ultimately call sun.security.provider.PolicyFile.getPermissions() which is slow.
Steps to Reproduce:
Turn on sandbox security, and use deserializeJSON() and profile the code.
Actual Result:
Will end up invoking sun.security.provider.PolicyFile.getPermissions()
Expected Result:
DeserializeJSON should be fast without security check
Any Workarounds:
Turn OFF sandbox security
----------------------------- Additional Watson Details -----------------------------
Watson Bug ID: 4173670
External Customer Info:
External Company:
External Customer Name: Henry Ho
External Customer Email:
External Test Config: My Hardware and Environment details:
Attachments:
Comments: