No need to apologize.

It's good that you review changes and point out potential problems. :)

Thanks!

Am 06.01.2016 um 00:27 schrieb John Wagenleitner:
My mistake, I didn't know there was a PR associated that Jochen had already reviewed. Sorry about that.

On Tue, Jan 5, 2016 at 2:45 PM, Pascal Schumacher <[email protected] <mailto:[email protected]>> wrote:

    Yes, I agree the change most likely reduces performance, but
    increases thread-safety  (prevent that different Threads may work
    with different Metaclasses etc.)

    I do not know enough about this area of the code to judge if the
    lack of thread-safety is really a concern.

    I just merged the pull request because of Jochens +1 vote.


    Am 05.01.2016 um 20:31 schrieb John Wagenleitner:
    Not sure but wonder if HandleMetaClass#myMetaClass was static to
    avoid having to perform a lookup for each HMC instance.  Probably
    not a issue but thought I'd bring attention to it.

    On Tue, Jan 5, 2016 at 10:13 AM, <[email protected]
    <mailto:[email protected]>> wrote:

        Repository: groovy
        Updated Branches:
          refs/heads/master 586a316da -> c5f17abbe


        Fixing squid:S2444 - Lazy initialization of "static" fields
        should be "synchronized"

        <snip>

        
http://git-wip-us.apache.org/repos/asf/groovy/blob/c5f17abb/src/main/org/codehaus/groovy/runtime/HandleMetaClass.java
        ----------------------------------------------------------------------
        diff --git
        a/src/main/org/codehaus/groovy/runtime/HandleMetaClass.java
        b/src/main/org/codehaus/groovy/runtime/HandleMetaClass.java
        index f421131..9167f5c 100644
        --- a/src/main/org/codehaus/groovy/runtime/HandleMetaClass.java
        +++ b/src/main/org/codehaus/groovy/runtime/HandleMetaClass.java
        @@ -24,7 +24,7 @@ import java.lang.reflect.Method;

         public class HandleMetaClass extends DelegatingMetaClass {
             private Object object;
        -    private static MetaClass myMetaClass;
        +    private MetaClass myMetaClass;
             private static final Object NONE = new Object();

             public HandleMetaClass(MetaClass mc) {

        <snip>




Reply via email to