[ https://issues.apache.org/jira/browse/GROOVY-11712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
btpka3 updated GROOVY-11712: ---------------------------- Description: org.codehaus.groovy.runtime.callsite.CallSiteClassLoader#[loadClass|https://github.com/apache/groovy/blob/GROOVY_4_0_27/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java#L47](String,boolean) is using `synchronized` keyword at method level, this can be improved by using className level lock, such as JDK's java.lang.ClassLoader#[loadClass|https://github.com/openjdk/jdk/blob/jdk-11%2B28/src/java.base/share/classes/java/lang/ClassLoader.java#L565C24-L565C33](String,boolean) ```java protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { // ... } } ``` was: org.codehaus.groovy.runtime.callsite.CallSiteClassLoader#loadClass is using `synchronized` keyword,this can be improved by using className level lock, such as JDK's java.lang.ClassLoader#[loadClass|https://github.com/openjdk/jdk/blob/jdk-11%2B28/src/java.base/share/classes/java/lang/ClassLoader.java#L565C24-L565C33](String,boolean) ```java protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { // ... } } ``` > CallSiteClassLoader loadClass using className level lock > -------------------------------------------------------- > > Key: GROOVY-11712 > URL: https://issues.apache.org/jira/browse/GROOVY-11712 > Project: Groovy > Issue Type: Improvement > Affects Versions: 4.0.27 > Reporter: btpka3 > Priority: Major > > > org.codehaus.groovy.runtime.callsite.CallSiteClassLoader#[loadClass|https://github.com/apache/groovy/blob/GROOVY_4_0_27/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java#L47](String,boolean) > is using `synchronized` keyword at method level, > this can be improved by using className level lock, > such as JDK's > java.lang.ClassLoader#[loadClass|https://github.com/openjdk/jdk/blob/jdk-11%2B28/src/java.base/share/classes/java/lang/ClassLoader.java#L565C24-L565C33](String,boolean) > > ```java > protected Class<?> loadClass(String name, boolean resolve) > throws ClassNotFoundException { > synchronized (getClassLoadingLock(name)) { > // ... > } > } > ``` -- This message was sent by Atlassian Jira (v8.20.10#820010)