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

hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 037139be58 Fix The component User defined Java class cannot be saved 
(#6877)
037139be58 is described below

commit 037139be587e0090f78804e9ea641ef181b50ccc
Author: lance <[email protected]>
AuthorDate: Fri Mar 27 03:00:15 2026 +0800

    Fix The component User defined Java class cannot be saved (#6877)
    
    Signed-off-by: lance <[email protected]>
---
 .../UserDefinedJavaClassMeta.java                  | 70 +++++++++++-----------
 1 file changed, 35 insertions(+), 35 deletions(-)

diff --git 
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassMeta.java
 
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassMeta.java
index c6142725b7..b8c876e193 100644
--- 
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassMeta.java
+++ 
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/UserDefinedJavaClassMeta.java
@@ -66,16 +66,18 @@ public class UserDefinedJavaClassMeta
 
   static {
     IVariables vs = new Variables();
-    vs.initializeFrom(null); // sets up the default variables
+    // sets up the default variables
+    vs.initializeFrom(null);
     String maxSizeStr = 
vs.getVariable(UserDefinedJavaClass.HOP_DEFAULT_CLASS_CACHE_SIZE, "100");
-    int maxCacheSize = -1;
+    int maxCacheSize;
     try {
       maxCacheSize = Integer.parseInt(maxSizeStr);
     } catch (Exception ignored) {
-      maxCacheSize = 100; // default to 100 if property not set
+      // default to 100 if property not set
+      maxCacheSize = 100;
     }
     // Initialize Class ICache
-    classCache = CacheBuilder.newBuilder().maximumSize(maxCacheSize).build();
+    CLASS_CACHE = CacheBuilder.newBuilder().maximumSize(maxCacheSize).build();
   }
 
   @Getter
@@ -134,8 +136,8 @@ public class UserDefinedJavaClassMeta
   //
   private Class<TransformClassBase> cookedTransformClass;
   private List<Exception> cookErrors;
-  private static final Cache<String, Class<?>> classCache;
-  private boolean changed;
+  private static final Cache<String, Class<?>> CLASS_CACHE;
+  private boolean hasChanged;
 
   @HopMetadataProperty(
       key = "field",
@@ -180,7 +182,7 @@ public class UserDefinedJavaClassMeta
 
   public UserDefinedJavaClassMeta() {
     super();
-    changed = true;
+    hasChanged = true;
     cookErrors = new ArrayList<>();
     infoTransformDefinitions = new ArrayList<>();
     targetTransformDefinitions = new ArrayList<>();
@@ -201,11 +203,11 @@ public class UserDefinedJavaClassMeta
   }
 
   @VisibleForTesting
-  Class<?> cookClass(UserDefinedJavaClassDef def, ClassLoader clsloader)
-      throws CompileException, IOException, RuntimeException, 
HopTransformException {
+  Class<?> cookClass(UserDefinedJavaClassDef def, ClassLoader clsLoader)
+      throws CompileException, IOException, HopTransformException {
 
     String checksum = def.getChecksum();
-    Class<?> rtn = UserDefinedJavaClassMeta.classCache.getIfPresent(checksum);
+    Class<?> rtn = UserDefinedJavaClassMeta.CLASS_CACHE.getIfPresent(checksum);
     if (rtn != null) {
       return rtn;
     }
@@ -215,10 +217,10 @@ public class UserDefinedJavaClassMeta
     }
 
     ClassBodyEvaluator cbe = new ClassBodyEvaluator();
-    if (clsloader == null) {
+    if (clsLoader == null) {
       cbe.setParentClassLoader(Thread.currentThread().getContextClassLoader());
     } else {
-      cbe.setParentClassLoader(clsloader);
+      cbe.setParentClassLoader(clsLoader);
     }
 
     cbe.setClassName(def.getClassName());
@@ -232,23 +234,21 @@ public class UserDefinedJavaClassMeta
     }
 
     cbe.setDefaultImports(
-        new String[] {
-          "org.apache.hop.pipeline.transforms.userdefinedjavaclass.*",
-          "org.apache.hop.pipeline.transform.*",
-          "org.apache.hop.core.row.*",
-          "org.apache.hop.core.*",
-          "org.apache.hop.core.exception.*",
-          "org.apache.hop.pipeline.*",
-          "org.apache.hop.workflow.*",
-          "org.apache.hop.workflow.action.*",
-          "org.apache.hop.core.plugins.*",
-          "org.apache.hop.core.variables.*",
-          "java.util.*",
-        });
+        "org.apache.hop.pipeline.transforms.userdefinedjavaclass.*",
+        "org.apache.hop.pipeline.transform.*",
+        "org.apache.hop.core.row.*",
+        "org.apache.hop.core.*",
+        "org.apache.hop.core.exception.*",
+        "org.apache.hop.pipeline.*",
+        "org.apache.hop.workflow.*",
+        "org.apache.hop.workflow.action.*",
+        "org.apache.hop.core.plugins.*",
+        "org.apache.hop.core.variables.*",
+        "java.util.*");
 
     cbe.cook(new Scanner(null, sr));
     rtn = cbe.getClazz();
-    UserDefinedJavaClassMeta.classCache.put(checksum, rtn);
+    UserDefinedJavaClassMeta.CLASS_CACHE.put(checksum, rtn);
     return rtn;
   }
 
@@ -275,7 +275,7 @@ public class UserDefinedJavaClassMeta
         cookErrors.add(exception);
       }
     }
-    changed = false;
+    hasChanged = false;
   }
 
   public TransformClassBase newChildInstance(
@@ -310,7 +310,7 @@ public class UserDefinedJavaClassMeta
 
   public void replaceFields(List<FieldInfo> fields) {
     this.fields = fields;
-    changed = true;
+    hasChanged = true;
   }
 
   /**
@@ -345,7 +345,7 @@ public class UserDefinedJavaClassMeta
   public void replaceDefinitions(List<UserDefinedJavaClassDef> definitions) {
     this.definitions.clear();
     this.definitions = orderDefinitions(definitions);
-    changed = true;
+    hasChanged = true;
   }
 
   @Override
@@ -355,7 +355,7 @@ public class UserDefinedJavaClassMeta
 
   private boolean checkClassCooked(ILogChannel logChannel) {
     boolean ok = cookedTransformClass != null && cookErrors.isEmpty();
-    if (changed) {
+    if (hasChanged) {
       try {
         cookClasses();
       } catch (HopException e) {
@@ -383,9 +383,9 @@ public class UserDefinedJavaClassMeta
     }
 
     try {
-      Method getTransformIOMeta =
+      Method getTransformIoMeta =
           cookedTransformClass.getMethod("getTransformIOMeta", 
UserDefinedJavaClassMeta.class);
-      ITransformIOMeta transformIoMeta = (ITransformIOMeta) 
getTransformIOMeta.invoke(null, this);
+      ITransformIOMeta transformIoMeta = (ITransformIOMeta) 
getTransformIoMeta.invoke(null, this);
       if (transformIoMeta == null) {
         return super.getTransformIOMeta();
       } else {
@@ -455,7 +455,7 @@ public class UserDefinedJavaClassMeta
   public void check(
       List<ICheckResult> remarks,
       PipelineMeta pipelineMeta,
-      TransformMeta transforminfo,
+      TransformMeta transformInfo,
       IRowMeta prev,
       String[] input,
       String[] output,
@@ -471,14 +471,14 @@ public class UserDefinedJavaClassMeta
               ICheckResult.TYPE_RESULT_OK,
               BaseMessages.getString(
                   PKG, 
"UserDefinedJavaClassMeta.CheckResult.ConnectedTransformOK2"),
-              transforminfo);
+              transformInfo);
       remarks.add(cr);
     } else {
       cr =
           new CheckResult(
               ICheckResult.TYPE_RESULT_ERROR,
               BaseMessages.getString(PKG, 
"UserDefinedJavaClassMeta.CheckResult.NoInputReceived"),
-              transforminfo);
+              transformInfo);
       remarks.add(cr);
     }
   }

Reply via email to