diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataDefaults.java b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataDefaults.java
index 8c8f89ca5..6108d7daa 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataDefaults.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/AbstractMetaDataDefaults.java
@@ -350,9 +350,11 @@ public abstract class AbstractMetaDataDefaults
* user-defined.
*/
protected static boolean isUserDefined(Class> cls) {
- return cls != null && !cls.getName().startsWith("java.")
- && !cls.getName().startsWith ("javax.");
- }
+ return cls != null
+ && !cls.getName().startsWith("java.")
+ && !cls.getName().startsWith ("javax.")
+ && !cls.getName().startsWith ("jakarta.");
+ }
/**
* Affirms if the given method matches the following signature
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java
index bef35b699..9a8bcc48e 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java
@@ -25,6 +25,7 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -406,6 +407,14 @@ public class DelayedArrayListProxy extends ArrayList implements ProxyCollection,
return super.toArray(array);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public boolean equals(Object paramObject) {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java
index d15fedfbf..cb142f56d 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java
@@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -276,6 +277,14 @@ public class DelayedHashSetProxy extends HashSet implements DelayedProxy, ProxyC
return super.toArray(a);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public boolean containsAll(Collection c) {
if (!_directAccess && isDelayLoad()) {
@@ -284,6 +293,7 @@ public class DelayedHashSetProxy extends HashSet implements DelayedProxy, ProxyC
return super.containsAll(c);
}
+
@Override
public String toString() {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java
index 15e6b1dac..a15618771 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java
@@ -23,6 +23,7 @@ import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -275,6 +276,14 @@ public class DelayedLinkedHashSetProxy extends LinkedHashSet implements DelayedP
return super.toArray(a);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public boolean containsAll(Collection c) {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java
index 8df82db6b..77562c628 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java
@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -568,6 +569,14 @@ public class DelayedLinkedListProxy extends LinkedList implements ProxyCollectio
return super.toArray(array);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public boolean contains(Object object) {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java
index 10f07da33..54283b9ec 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java
@@ -24,6 +24,7 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.PriorityQueue;
import java.util.SortedSet;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -330,6 +331,14 @@ public class DelayedPriorityQueueProxy extends PriorityQueue implements ProxyCol
return super.toArray(array);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public boolean containsAll(Collection c) {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java
index 281bf9aa8..0bdbb4b24 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java
@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.NavigableSet;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -315,6 +316,14 @@ public class DelayedTreeSetProxy extends TreeSet implements ProxyCollection, Del
return super.toArray(array);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public Comparator comparator() {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java
index ee2ea87ea..d71495030 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Vector;
+import java.util.function.IntFunction;
import org.apache.openjpa.kernel.AutoDetach;
import org.apache.openjpa.kernel.Broker;
@@ -525,6 +526,14 @@ public class DelayedVectorProxy extends Vector implements ProxyCollection, Delay
return super.toArray(array);
}
+ @Override
+ public Object[] toArray(IntFunction generator) {
+ if (!_directAccess && isDelayLoad()) {
+ load();
+ }
+ return super.toArray(generator);
+ }
+
@Override
public synchronized boolean equals(Object paramObject) {
if (!_directAccess && isDelayLoad()) {
diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
index b0acd1399..8c97b3978 100644
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/conf/ConfigurationImpl.java
@@ -769,7 +769,7 @@ public class ConfigurationImpl
/**
* Adds a prefix "openjpa."
to the given key, if necessary. A key is
* considered without prefix if it starts neither of "openjpa."
,
- * "java."
and "javax."
.
+ * "java."
, "javax."
and {@code "jakarta."}.
*/
String fixPrefix(String key) {
return (key == null || hasKnownPrefix(key)) ? key : "openjpa."+key;
diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java
index 246ea3b49..1b104dc75 100644
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/meta/ClassMetaDataIterator.java
@@ -66,6 +66,7 @@ public class ClassMetaDataIterator implements MetaDataIterator {
ClassLoader loader, boolean topDown) {
// skip classes that can't have metadata
if (cls != null && (cls.isPrimitive()
+ || cls.getName().startsWith("jakarta.")
|| cls.getName().startsWith("java.")
|| cls.getName().startsWith("javax."))) {
_loader = null;
diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/TemporaryClassLoader.java b/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/TemporaryClassLoader.java
index f56f2fc46..1c3881790 100644
--- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/TemporaryClassLoader.java
+++ b/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/TemporaryClassLoader.java
@@ -55,7 +55,8 @@ public class TemporaryClassLoader extends ClassLoader {
// "sun." is required for JDK 1.4, which has an access check for
// sun.reflect.GeneratedSerializationConstructorAccessor1
if (name.startsWith("java.") || name.startsWith("javax.")
- || name.startsWith("sun.") || name.startsWith("jdk.")) {
+ || name.startsWith("sun.") || name.startsWith("jdk.")
+ || name.startsWith("jakarta.") ) {
return Class.forName(name, resolve, getClass().getClassLoader());
}