This is an automated email from the ASF dual-hosted git repository.
rzo1 pushed a commit to branch tomee-8.x
in repository https://gitbox.apache.org/repos/asf/tomee.git
The following commit(s) were added to refs/heads/tomee-8.x by this push:
new cdcdacadf4 TOMEE-4126 - CXF 3.4.10
cdcdacadf4 is described below
commit cdcdacadf46bce4cd108333126902cbff9abe090
Author: Richard Zowalla <[email protected]>
AuthorDate: Thu Dec 15 08:05:25 2022 +0100
TOMEE-4126 - CXF 3.4.10
---
.../cxf/jaxrs/provider/AbstractJAXBProvider.java | 19 ++++++++++++++-----
.../org/apache/cxf/jaxrs/utils/GenericsUtils.java | 4 ++++
pom.xml | 2 +-
3 files changed, 19 insertions(+), 6 deletions(-)
diff --git
a/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
b/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
index b94760ab33..165d9120d6 100644
---
a/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
+++
b/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
@@ -97,13 +97,14 @@ public abstract class AbstractJAXBProvider<T> extends
AbstractConfigurableProvid
protected static final String NS_MAPPER_PROPERTY_RI_INT =
"com.sun.xml.internal.bind.namespacePrefixMapper";
private static final String JAXB_DEFAULT_NAMESPACE = "##default";
private static final String JAXB_DEFAULT_NAME = "##default";
- private static final Set<Class<?>> UNSUPPORTED_CLASSES =
+ private static final Set<Class<?>> UNSUPPORTED_CLASSES =
new HashSet<Class<?>>(Arrays.asList(InputStream.class,
OutputStream.class,
StreamingOutput.class));
protected Set<Class<?>> collectionContextClasses =
ConcurrentHashMap.newKeySet();
protected Map<String, String> jaxbElementClassMap = Collections.emptyMap();
+ protected Map<String, Boolean> objectFactoryOrIndexMap = new
ConcurrentHashMap<>();
protected boolean unmarshalAsJaxbElement;
protected boolean marshalAsJaxbElement;
protected boolean xmlTypeAsJaxbElementOnly;
@@ -146,7 +147,7 @@ public abstract class AbstractJAXBProvider<T> extends
AbstractConfigurableProvid
private DocumentDepthProperties depthProperties;
private String namespaceMapperPropertyName;
- private static JAXBContext newJAXBContextInstance(Class<?>[] classes,
Map<String, Object> cProperties)
+ private static JAXBContext newJAXBContextInstance(Class<?>[] classes,
Map<String, Object> cProperties)
throws JAXBException {
try {
@@ -552,7 +553,7 @@ public abstract class AbstractJAXBProvider<T> extends
AbstractConfigurableProvid
final String packageName = PackageUtils.getPackageName(type);
return packageContexts.computeIfAbsent(packageName, p -> {
try {
- final ClassLoader loader =
AccessController.doPrivileged((PrivilegedAction<ClassLoader>)
+ final ClassLoader loader =
AccessController.doPrivileged((PrivilegedAction<ClassLoader>)
() -> {
return type.getClassLoader();
});
@@ -597,8 +598,15 @@ public abstract class AbstractJAXBProvider<T> extends
AbstractConfigurableProvid
}
protected boolean objectFactoryOrIndexAvailable(Class<?> type) {
- return type.getResource("ObjectFactory.class") != null
- || type.getResource("jaxb.index") != null;
+ if (this.objectFactoryOrIndexMap.get(type.getName()) != null) {
+ return this.objectFactoryOrIndexMap.get(type.getName());
+ } else {
+ boolean ret = type.getResource("ObjectFactory.class") != null
+ || type.getResource("jaxb.index") != null;
+ this.objectFactoryOrIndexMap.put(type.getName(), ret);
+ return ret;
+ }
+
}
private boolean objectFactoryForType(Type genericType) {
@@ -707,6 +715,7 @@ public abstract class AbstractJAXBProvider<T> extends
AbstractConfigurableProvid
public void clearContexts() {
classContexts.clear();
packageContexts.clear();
+ objectFactoryOrIndexMap.clear();
}
//TODO: move these methods into the dedicated utility class
diff --git
a/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/utils/GenericsUtils.java
b/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/utils/GenericsUtils.java
index ad7cca8550..d3aae0b669 100644
---
a/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/utils/GenericsUtils.java
+++
b/deps/cxf-shade/src/patch/java/org/apache/cxf/jaxrs/utils/GenericsUtils.java
@@ -27,6 +27,10 @@ import java.util.Objects;
import java.util.Optional;
import java.util.stream.Stream;
+/**
+ * Note: This class isn't contained in the official CXF release series. <p></p>
+ * It is only present in the cxf-shade of the TomEE project.
+ */
public final class GenericsUtils {
private GenericsUtils() {
diff --git a/pom.xml b/pom.xml
index 99d8eab33a..8c7bc37167 100644
--- a/pom.xml
+++ b/pom.xml
@@ -207,7 +207,7 @@
<version.activemq>5.16.5</version.activemq>
<version.batchee>1.0.2</version.batchee>
<version.bval>2.0.5</version.bval>
- <version.cxf>3.4.9</version.cxf>
+ <version.cxf>3.4.10</version.cxf>
<version.woodstox>6.4.0</version.woodstox>
<version.geronimo.components>3.1.5</version.geronimo.components>
<version.geronimo-javamail_1.6_mail>1.0.1</version.geronimo-javamail_1.6_mail>