You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2022/12/02 08:45:42 UTC

[tomcat-jakartaee-migration] branch main updated: Allow parallel use of ClassConverter

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

remm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-jakartaee-migration.git


The following commit(s) were added to refs/heads/main by this push:
     new 781453d  Allow parallel use of ClassConverter
781453d is described below

commit 781453d466fb6b749359885ae0477c930074a0cb
Author: remm <re...@apache.org>
AuthorDate: Fri Dec 2 09:45:31 2022 +0100

    Allow parallel use of ClassConverter
    
    Initialize map in BCEL.
    PR#41 submitted by Danny Thomas
---
 CHANGES.md                                                    | 1 +
 src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/CHANGES.md b/CHANGES.md
index 21e85b9..8b31d08 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,7 @@
 ## 1.0.6
 
 - Fix handling of javax.annotation package in 1.0.5. PR [#40](https://github.com/apache/tomcat-jakartaee-migration/pull/40) provided by Danny Thomas (remm)
+- Allow parallel use of ClassConverter. PR [#41](https://github.com/apache/tomcat-jakartaee-migration/pull/41) provided by Danny Thomas (remm)
 
 ## 1.0.5
 
diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index 47fae3c..46e1a02 100644
--- a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
+++ b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
@@ -31,6 +31,7 @@ import org.apache.bcel.classfile.ClassParser;
 import org.apache.bcel.classfile.Constant;
 import org.apache.bcel.classfile.ConstantUtf8;
 import org.apache.bcel.classfile.JavaClass;
+import org.apache.bcel.util.SyntheticRepository;
 import org.apache.commons.io.IOUtils;
 
 /**
@@ -38,6 +39,11 @@ import org.apache.commons.io.IOUtils;
  */
 public class ClassConverter implements Converter, ClassFileTransformer {
 
+    static {
+        // Avoid ConcurrentModificationException from SyntheticRepository when migrations are run concurrently
+        SyntheticRepository.getInstance();
+    }
+
     private static final Logger logger = Logger.getLogger(ClassConverter.class.getCanonicalName());
     private static final StringManager sm = StringManager.getManager(ClassConverter.class);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org