Sola-ris created CXF-9185:
-----------------------------
Summary: NPE after removing a property from a JAX-RS Client
Key: CXF-9185
URL: https://issues.apache.org/jira/browse/CXF-9185
Project: CXF
Issue Type: Bug
Components: JAX-RS
Affects Versions: 4.1.4
Reporter: Sola-ris
Removing a property from a JAX-RS Client via property("name", nulll) causes a
NullPointerException when calling the request method on a WebTarget created
from the client.
*To Reproduce:*
{code:java}
try (Client client = ClientBuilder.newClient()) {
client.property("greeting", "hello");
client.property("greeting", null);
client.target("").request().get().close();
}
{code}
*Stacktrace:*
{code:java}
java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWebClient(JAXRSClientFactoryBean.java:242)
at
org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.initTargetClientIfNeeded(ClientImpl.java:363)
at
org.apache.cxf.jaxrs.client.spec.ClientImpl$WebTargetImpl.request(ClientImpl.java:259)
at
org.example.RemovePropertyReproducerTest.testRemoveProperty(RemovePropertyReproducerTest.java:16)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.NullPointerException
at
java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at
java.base/java.util.concurrent.ConcurrentHashMap.putAll(ConcurrentHashMap.java:1089)
at
org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.createEndpoint(AbstractJAXRSFactoryBean.java:224)
at
org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWebClient(JAXRSClientFactoryBean.java:229)
... 6 more
{code}
[Executable
Reproducer|https://github.com/Sola-ris/cxf-reproducers/blob/master/src/test/java/org/example/RemovePropertyReproducerTest.java]
>From looking at it the Debugger, the property isn't actually removed but the
>value is set to null instead. The reason seems to be in [ConfigurationImpl
>Line
>170|https://github.com/apache/cxf/blob/main/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ConfigurationImpl.java#L170]
> where the name is checked for null instead of the value
--
This message was sent by Atlassian Jira
(v8.20.10#820010)