This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new 3745be2 CXF-8587: Don't check the validation flag and get the schema
on every iteration for SoapHeader. (#839)
3745be2 is described below
commit 3745be28d15cac185ff7dbde0aa0749a183ed852
Author: Ilya Mikhailov <[email protected]>
AuthorDate: Mon Aug 30 16:05:24 2021 +0300
CXF-8587: Don't check the validation flag and get the schema on every
iteration for SoapHeader. (#839)
* CXF-8587: Don't check the validation flag and get the schema on every
iteration for SoapHeader.
* CXF-8587: SoapHeader validation call moved back to main cycle.
Co-authored-by: Ilya Mikhailov <[email protected]>
---
.../binding/soap/interceptor/SoapHeaderInterceptor.java | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git
a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
index d2ab75c..5e9d91f 100644
---
a/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
+++
b/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
@@ -107,12 +107,19 @@ public class SoapHeaderInterceptor extends
AbstractInDatabindingInterceptor {
boolean supportsNode = this.supportsDataReader(message, Node.class);
Service service = ServiceModelUtil.getService(message.getExchange());
+
+ Schema schema = null;
+ final boolean schemaValidationEnabled
+ =
ServiceUtils.isSchemaValidationEnabled(SchemaValidationType.IN, message);
+ if (schemaValidationEnabled) {
+ schema =
EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0),
+ message.getExchange().getBus());
+ }
+
for (SoapHeaderInfo header : headers) {
MessagePartInfo mpi = header.getPart();
try {
- if
(ServiceUtils.isSchemaValidationEnabled(SchemaValidationType.IN, message)) {
- Schema schema =
EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0), message
-
.getExchange().getBus());
+ if (schemaValidationEnabled && schema != null) {
validateHeader(message, mpi, schema);
}
} catch (Fault f) {
@@ -121,6 +128,7 @@ public class SoapHeaderInterceptor extends
AbstractInDatabindingInterceptor {
}
throw f;
}
+
if (mpi.getTypeClass() != null) {
Header param = findHeader(message, mpi);