You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2023/05/06 07:18:40 UTC
[openjpa] 15/17: OPENJPA-2909 fix ClassLoading if proxy cannot be loaded
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 <st...@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>