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

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

commit 7bc11053e56c3e046226185136a0700cbac31e2f
Author: Danny Thomas <dan...@netflix.com>
AuthorDate: Mon Oct 24 17:19:15 2022 +1100

    Avoid JavaClass.dump when there are no changes
---
 src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java 
b/src/main/java/org/apache/tomcat/jakartaee/ClassConverter.java
index decb208..e07814f 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.commons.io.IOUtils;
 
 public class ClassConverter implements Converter, ClassFileTransformer {
 
@@ -80,7 +81,8 @@ public class ClassConverter implements Converter, 
ClassFileTransformer {
 
     protected boolean convertInternal(String path, InputStream src, 
OutputStream dest, EESpecProfile profile, ClassLoader loader)
             throws IOException {
-        ClassParser parser = new ClassParser(src, "unknown");
+        byte[] classBytes = IOUtils.toByteArray(src);
+        ClassParser parser = new ClassParser(new 
ByteArrayInputStream(classBytes), "unknown");
         JavaClass javaClass = parser.parse();
 
         boolean converted = false;
@@ -145,7 +147,11 @@ public class ClassConverter implements Converter, 
ClassFileTransformer {
             }
         }
 
-        javaClass.dump(dest);
+        if (converted) {
+            javaClass.dump(dest);
+        } else {
+            IOUtils.writeChunked(classBytes, dest);
+        }
 
         return converted;
     }


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

Reply via email to