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

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit d13b85b13940726dc1faae89ba1f8807a24b0f49
Author: Mark Struberg <strub...@apache.org>
AuthorDate: Tue May 30 12:19:30 2023 +0200

    OPENJPA-2911 remove Serp from PCSubclassValidator
---
 .../org/apache/openjpa/enhance/PCEnhancer.java     |  2 +-
 .../openjpa/enhance/PCSubclassValidator.java       | 23 +++-------------------
 .../openjpa/enhance/TestSubclassValidator.java     |  5 ++---
 3 files changed, 6 insertions(+), 24 deletions(-)

diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
index 0d1f17766..9a0cb32b0 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
@@ -619,7 +619,7 @@ public class PCEnhancer {
             }
 
             if (getCreateSubclass()) {
-                PCSubclassValidator val = new PCSubclassValidator(_meta, 
classNode, _managedType, _log, _fail);
+                PCSubclassValidator val = new PCSubclassValidator(_meta, 
classNode, _log, _fail);
                 val.assertCanSubclass();
 
                 _pc = 
_managedType.getProject().loadClass(toPCSubclassName(_managedType.getType()));
diff --git 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java
 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java
index 33303a843..714b11e96 100644
--- 
a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java
+++ 
b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCSubclassValidator.java
@@ -39,9 +39,6 @@ import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.util.UserException;
 import org.apache.xbean.asm9.tree.ClassNode;
 
-import serp.bytecode.BCClass;
-import serp.bytecode.BCField;
-import serp.bytecode.BCMethod;
 
 /**
  * <p>Validates that a given type meets the JPA contract, plus a few
@@ -86,18 +83,15 @@ public class PCSubclassValidator {
 
     private final ClassMetaData meta;
     private final ClassNode classNode;
-    private final BCClass bc;
     private final Log log;
     private final boolean failOnContractViolations;
 
     private Collection errors;
     private Collection contractViolations;
 
-    public PCSubclassValidator(ClassMetaData meta, ClassNode classNode, 
BCClass bc, Log log,
-                               boolean enforceContractViolations) {
+    public PCSubclassValidator(ClassMetaData meta, ClassNode classNode, Log 
log, boolean enforceContractViolations) {
         this.meta = meta;
         this.classNode = classNode;
-        this.bc = bc;
         this.log = log;
         this.failOnContractViolations = enforceContractViolations;
     }
@@ -205,11 +199,8 @@ public class PCSubclassValidator {
      */
     private Field checkGetterIsSubclassable(Method meth, FieldMetaData fmd) {
         checkMethodIsSubclassable(meth, fmd);
-        BCField bcField = PCEnhancer.getReturnedField_old(getBCMethod(meth));
-        Field field = PCEnhancer.getReturnedField(classNode, meth);
 
-        //X TODO remove
-        PCEnhancer.assertSameField(field, bcField);
+        Field field = PCEnhancer.getReturnedField(classNode, meth);
 
         if (field == null) {
             addContractViolation(loc.get("subclasser-invalid-getter", 
fmd.getName()), fmd);
@@ -227,11 +218,8 @@ public class PCSubclassValidator {
      */
     private Field checkSetterIsSubclassable(Method meth, FieldMetaData fmd) {
         checkMethodIsSubclassable(meth, fmd);
-        BCField bcField = PCEnhancer.getAssignedField_old(getBCMethod(meth));
-        Field field = PCEnhancer.getAssignedField(classNode, meth);
 
-        //X TODO remove
-        PCEnhancer.assertSameField(field, bcField);
+        Field field = PCEnhancer.getAssignedField(classNode, meth);
 
         if (field == null) {
             addContractViolation(loc.get("subclasser-invalid-setter", 
fmd.getName()), fmd);
@@ -242,11 +230,6 @@ public class PCSubclassValidator {
         }
     }
 
-    private BCMethod getBCMethod(Method meth) {
-        BCClass bc = this.bc.getProject().loadClass(meth.getDeclaringClass());
-        return bc.getDeclaredMethod(meth.getName(), meth.getParameterTypes());
-    }
-
     private void checkMethodIsSubclassable(Method meth, FieldMetaData fmd) {
         String className = fmd.getDefiningMetaData().
                 getDescribedType().getName();
diff --git 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java
 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java
index 70c1fb1c0..04d43ca1c 100644
--- 
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java
+++ 
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestSubclassValidator.java
@@ -34,7 +34,6 @@ import jakarta.persistence.AccessType;
 import jakarta.persistence.Basic;
 import jakarta.persistence.Entity;
 import jakarta.persistence.Id;
-import jakarta.persistence.MappedSuperclass;
 import serp.bytecode.BCClass;
 import serp.bytecode.Project;
 
@@ -84,7 +83,7 @@ public class TestSubclassValidator extends SingleEMFTestCase {
             ClassNode classNode = 
AsmHelper.readClassNode(EnhanceableGetterEntity.class.getClassLoader(), 
EnhanceableGetterEntity.class.getName());
             final BCClass bcClass = 
project.loadClass(EnhanceableGetterEntity.class.getName(), tempCl);
             final ClassMetaData meta = 
repos.getMetaData(tempCl.loadClass(EnhanceableGetterEntity.class.getName()), 
tempCl, false);
-            PCSubclassValidator subclassValidator = new 
PCSubclassValidator(meta, classNode, bcClass, log, true);
+            PCSubclassValidator subclassValidator = new 
PCSubclassValidator(meta, classNode, log, true);
             subclassValidator.assertCanSubclass();
         }
 
@@ -92,7 +91,7 @@ public class TestSubclassValidator extends SingleEMFTestCase {
             ClassNode classNode = 
AsmHelper.readClassNode(UnenhancedPropertyAccess.class.getClassLoader(), 
UnenhancedPropertyAccess.class.getName());
             final BCClass bcClass = 
project.loadClass(UnenhancedPropertyAccess.class.getName(), tempCl);
             final ClassMetaData meta = 
repos.getMetaData(tempCl.loadClass(UnenhancedPropertyAccess.class.getName()), 
tempCl, false);
-            PCSubclassValidator subclassValidator = new 
PCSubclassValidator(meta, classNode, bcClass, log, true);
+            PCSubclassValidator subclassValidator = new 
PCSubclassValidator(meta, classNode, log, true);
             subclassValidator.assertCanSubclass();
         }
     }

Reply via email to