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 2535a24d55ac9ef70837b151dc50c0682ba225eb Author: Mark Struberg <strub...@apache.org> AuthorDate: Thu May 4 21:31:00 2023 +0200 OPENJPA-2909 fix ClassLoading if proxy cannot be loaded --- openjpa-integration/tck/pom.xml | 4 ++-- .../java/org/apache/openjpa/util/GeneratedClasses.java | 7 ++++++- .../java/org/apache/openjpa/util/TestProxyManager.java | 16 ++++++++++++++++ .../openjpa-maven-plugin/src/it/default_settings/pom.xml | 9 ++++----- .../src/it/dependingArtifact/pom.xml | 11 +++++------ .../src/it/enhanceIncludesExcludes/pom.xml | 9 ++++----- .../src/it/nonDefaultPersistenceXml/pom.xml | 9 ++++----- .../src/it/sqlActionDropSchema/pom.xml | 9 ++++----- .../openjpa-maven-plugin/src/it/testDependencies/pom.xml | 9 ++++----- 9 files changed, 49 insertions(+), 34 deletions(-) diff --git a/openjpa-integration/tck/pom.xml b/openjpa-integration/tck/pom.xml index d50e4b447..5d9bcb98b 100644 --- a/openjpa-integration/tck/pom.xml +++ b/openjpa-integration/tck/pom.xml @@ -445,8 +445,8 @@ databaseName=${db.name} <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> <scope>compile</scope> </dependency> <dependency> diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/GeneratedClasses.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/GeneratedClasses.java index 47e5961d2..b6ddf2565 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/GeneratedClasses.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/GeneratedClasses.java @@ -73,7 +73,12 @@ public class GeneratedClasses { public static Class loadAsmClass(String className, byte[] classBytes, Class<?> proxiedClass, ClassLoader loader) { ClassLoaderProxyService pcls = new ClassLoaderProxyService(null, loader); - return pcls.defineAndLoad(className, classBytes, proxiedClass); + try { + return pcls.defineAndLoad(className, classBytes, proxiedClass); + } catch (Throwable t) { + // this happens e.g when trying to create a proxy for a class with private access. + throw new GeneralException(className).setCause(t); + } } /** diff --git a/openjpa-kernel/src/test/java/org/apache/openjpa/util/TestProxyManager.java b/openjpa-kernel/src/test/java/org/apache/openjpa/util/TestProxyManager.java index 4ee67be86..f3c13e606 100644 --- a/openjpa-kernel/src/test/java/org/apache/openjpa/util/TestProxyManager.java +++ b/openjpa-kernel/src/test/java/org/apache/openjpa/util/TestProxyManager.java @@ -1017,6 +1017,8 @@ public class TestProxyManager { public static class CustomBean { private String _string; private int _number; + private double d1; + private double d2; public String getString() { return _string; @@ -1033,6 +1035,20 @@ public class TestProxyManager { public void setNumber(int number) { _number = number; } + + public void setLocation(double d1, double d2) { + this.d1 = d1; + this.d2 = d2; + } + + public double getD1() { + return d1; + } + + public double getD2() { + return d2; + } + } /** diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml index 7d12270dc..5aef44c9c 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/default_settings/pom.xml @@ -36,15 +36,14 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> </dependency> - <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa-kernel</artifactId> diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml index 2970cdc0d..aa9c7e90c 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/dependingArtifact/pom.xml @@ -42,14 +42,13 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> - </dependency> - </dependencies> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> + </dependency> </dependencies> <build> <plugins> diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/enhanceIncludesExcludes/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/enhanceIncludesExcludes/pom.xml index 04703a0d9..5e9028c76 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/enhanceIncludesExcludes/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/enhanceIncludesExcludes/pom.xml @@ -36,14 +36,13 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> </dependency> - <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa-kernel</artifactId> diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml index 3d0aa0689..dc5381b97 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/nonDefaultPersistenceXml/pom.xml @@ -35,14 +35,13 @@ <version>1.0-SNAPSHOT</version> <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> </dependency> - <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa-kernel</artifactId> diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml index f4ab5433e..43ec91b7d 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/sqlActionDropSchema/pom.xml @@ -35,15 +35,14 @@ <version>1.0-SNAPSHOT</version> <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> </dependency> - <dependency> <groupId>org.apache.openjpa</groupId> <artifactId>openjpa-kernel</artifactId> diff --git a/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml b/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml index 34f9d826e..4aacbdb1e 100644 --- a/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml +++ b/openjpa-tools/openjpa-maven-plugin/src/it/testDependencies/pom.xml @@ -35,14 +35,13 @@ <dependencies> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-jpa_2.2_spec</artifactId> + <groupId>jakarta.persistence</groupId> + <artifactId>jakarta.persistence-api</artifactId> </dependency> <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-validation_1.1_spec</artifactId> + <groupId>jakarta.validation</groupId> + <artifactId>jakarta.validation-api</artifactId> </dependency> - </dependencies> <build>