You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2025/04/29 16:35:36 UTC
(cxf) branch main updated: [CXF-9130]NPE guard for WrapperClassLoader
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new 8015d56fb2 [CXF-9130]NPE guard for WrapperClassLoader
8015d56fb2 is described below
commit 8015d56fb2046679f12e6ce4dca343b1c0e779bc
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Tue Apr 29 12:35:25 2025 -0400
[CXF-9130]NPE guard for WrapperClassLoader
---
.../apache/cxf/jaxws/spi/WrapperClassLoader.java | 43 +++++++++++++++-------
1 file changed, 30 insertions(+), 13 deletions(-)
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/WrapperClassLoader.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/WrapperClassLoader.java
index 9a993272ac..97f08935bc 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/WrapperClassLoader.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/WrapperClassLoader.java
@@ -21,8 +21,12 @@ package org.apache.cxf.jaxws.spi;
import java.lang.reflect.Method;
import java.util.LinkedHashSet;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import org.apache.cxf.Bus;
+import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.common.spi.GeneratedClassClassLoader;
import org.apache.cxf.common.util.StringUtils;
import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
@@ -39,8 +43,12 @@ import org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean;
* @author olivier dufour
*/
public class WrapperClassLoader extends GeneratedClassClassLoader implements WrapperClassCreator {
+
+ protected static final Logger LOG = LogUtils.getL7dLogger(WrapperClassLoader.class);
+
private final WrapperClassNamingConvention wrapperClassNaming;
-
+
+
public WrapperClassLoader(Bus bus) {
super(bus);
wrapperClassNaming = bus.getExtension(WrapperClassNamingConvention.class);
@@ -58,23 +66,29 @@ public class WrapperClassLoader extends GeneratedClassClassLoader implements Wra
MessagePartInfo inf = opInfo.getInput().getFirstMessagePart();
if (inf.getTypeClass() == null) {
MessageInfo messageInfo = opInfo.getUnwrappedOperation().getInput();
- wrapperBeans.add(createWrapperClass(inf,
- messageInfo,
- opInfo,
- method,
- true,
- factory));
+ Class<?> wrapperClass = createWrapperClass(inf,
+ messageInfo,
+ opInfo,
+ method,
+ true,
+ factory);
+ if (wrapperClass != null) {
+ wrapperBeans.add(wrapperClass);
+ }
}
MessageInfo messageInfo = opInfo.getUnwrappedOperation().getOutput();
if (messageInfo != null) {
inf = opInfo.getOutput().getFirstMessagePart();
if (inf.getTypeClass() == null) {
- wrapperBeans.add(createWrapperClass(inf,
- messageInfo,
- opInfo,
- method,
- false,
- factory));
+ Class<?> wrapperClass = createWrapperClass(inf,
+ messageInfo,
+ opInfo,
+ method,
+ false,
+ factory);
+ if (wrapperClass != null) {
+ wrapperBeans.add(wrapperClass);
+ }
}
}
}
@@ -112,6 +126,9 @@ public class WrapperClassLoader extends GeneratedClassClassLoader implements Wra
}
}
//throw new ClassNotFoundException(origClassName);
+ LOG.log(Level.WARNING, "Failed to find or generate wrapper class for operation '{}', "
+ + " method '{}'. This may lead to runtime errors.",
+ new Object[] {op.getName(), method.getName()});
return null;
}
}