OgnlRuntime.getCompiler and thread-safety. ------------------------------------------
Key: OGNL-34 URL: https://issues.apache.org/jira/browse/OGNL-34 Project: OGNL Issue Type: Bug Reporter: Maurizio Cucchiara Priority: Minor As you can see, {{getCompiler}} is not thread safe. I recently added a new performance benchmark to test its 3d-safety and performance: during my tests I have experienced a fast execution on unsafe version vs the safe one (though every concurrent test instantiated a new compiler). I have not yet investigated and I still don't know what can cause running more than one instance of the compiler in the same jvm. If necessary we can consider to make compiler a singleton in order to enforce this concept. What do you think guys? {code} public static OgnlExpressionCompiler getCompiler( OgnlContext ognlContext ) { if ( _compiler == null ) { try { OgnlRuntime.classForName( ognlContext, "javassist.ClassPool" ); _compiler = new ExpressionCompiler(); } catch ( ClassNotFoundException e ) { throw new IllegalArgumentException( "Javassist library is missing in classpath! Please add missed dependency!", e ); } } return _compiler; } {code} -- 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