commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maurizio Cucchiara (Created) (JIRA)" <>
Subject [jira] [Created] (OGNL-34) OgnlRuntime.getCompiler and thread-safety.
Date Sat, 29 Oct 2011 06:19:32 GMT
OgnlRuntime.getCompiler and thread-safety.

                 Key: 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?

public static OgnlExpressionCompiler getCompiler( OgnlContext ognlContext )              
    if ( _compiler == null )                                                             
            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;                                                                    

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message