This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
     new 7e94be408b backport from Groovy 5 for better parallel support
7e94be408b is described below

commit 7e94be408b2264e6ea6f1068123bc2ff725a0e9a
Author: Paul King <pa...@asert.com.au>
AuthorDate: Wed Sep 25 21:57:55 2024 +1000

    backport from Groovy 5 for better parallel support
---
 src/main/java/groovy/lang/GroovyClassLoader.java | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/main/java/groovy/lang/GroovyClassLoader.java 
b/src/main/java/groovy/lang/GroovyClassLoader.java
index fc3c1bfde4..397eafd9e7 100644
--- a/src/main/java/groovy/lang/GroovyClassLoader.java
+++ b/src/main/java/groovy/lang/GroovyClassLoader.java
@@ -77,6 +77,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * A ClassLoader which can load Groovy classes. The loaded classes are cached,
@@ -104,8 +105,7 @@ public class GroovyClassLoader extends URLClassLoader {
     private final CompilerConfiguration config;
     private String sourceEncoding;
     private Boolean recompile;
-    // use 1000000 as offset to avoid conflicts with names from the GroovyShell
-    private static int scriptNameCounter = 1000000;
+    private static final AtomicInteger scriptNameCounter = new 
AtomicInteger(1_000_000); // 1,000,000 avoids conflicts with names from the 
GroovyShell
 
     static {
         registerAsParallelCapable();
@@ -282,8 +282,7 @@ public class GroovyClassLoader extends URLClassLoader {
     }
 
     public synchronized String generateScriptName() {
-        scriptNameCounter++;
-        return "script" + scriptNameCounter + ".groovy";
+        return "script" + scriptNameCounter.getAndIncrement() + ".groovy";
     }
 
     public Class parseClass(final Reader reader, final String fileName) throws 
CompilationFailedException {

Reply via email to