You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by so...@apache.org on 2026/10/09 09:39:57 UTC
(openjpa) branch OPENJPA-3012 updated: [OPENJPA-3012] some comments are addressed
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch OPENJPA-3012
in repository https://gitbox.apache.org/repos/asf/openjpa.git
The following commit(s) were added to refs/heads/OPENJPA-3012 by this push:
new 374edfa45 [OPENJPA-3012] some comments are addressed
374edfa45 is described below
commit 374edfa458e34121d4ed5fd43afe089119d1cbaa
Author: Maxim Solodovnik <so...@apache.org>
AuthorDate: Fri Oct 9 16:39:48 2026 +0700
[OPENJPA-3012] some comments are addressed
---
.../src/main/java/org/apache/openjpa/util/Serialization.java | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
index 4ea1dce73..5eb37ff74 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/Serialization.java
@@ -27,6 +27,8 @@ import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.io.OutputStream;
import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Objects;
import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.kernel.StoreContext;
@@ -108,6 +110,10 @@ public class Serialization {
/**
* Candidate loaders, in the same order the original MultiClassLoader
* used them; resolved lazily once per stream.
+ * The lazy initialisation cannot move into the constructor:
+ * PersistentObjectInputStream assigns _ctx after super(delegate), and its
+ * addContextClassLoaders override dereferences it, so eager initialisation
+ * would throw an NPE. A comment would prevent a later simplification.
*/
private ClassLoader[] _loaders;
@@ -125,6 +131,8 @@ public class Serialization {
} catch (ClassNotFoundException e) {
if (notFound == null) {
notFound = e;
+ } else {
+ notFound.addSuppressed(e);
}
}
}
@@ -147,8 +155,8 @@ public class Serialization {
addContextClassLoaders(holder);
holder.addClassLoader(getClass().getClassLoader());
holder.addClassLoader(MultiClassLoader.SYSTEM_LOADER);
- _loaders = java.util.Arrays.stream(holder.getClassLoaders())
- .filter(java.util.Objects::nonNull)
+ _loaders = Arrays.stream(holder.getClassLoaders())
+ .filter(Objects::nonNull)
.distinct()
.toArray(ClassLoader[]::new);
}