[ https://issues.apache.org/jira/browse/CXF-8824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Maplesden updated CXF-8824: --------------------------------- Summary: CDI beans produced by @Produces methods are generated twice (was: CDI beans produced by {{@Produces}} methods are generated twice) > CDI beans produced by @Produces methods are generated twice > ----------------------------------------------------------- > > Key: CXF-8824 > URL: https://issues.apache.org/jira/browse/CXF-8824 > Project: CXF > Issue Type: Bug > Components: Integration, JAX-RS > Affects Versions: 3.2.0, 3.5.5 > Environment: CXF 3.5.5 running in Tomcat 9.0.70 using JBoss Weld > 3.1.9 as the CDI implementation. Using cxf-integration-cdi and CXFCdiServlet > Reporter: David Maplesden > Priority: Major > > We recently upgraded from CXF 3.1.9 to 3.5.5 and after upgrade encountered > this bug. > Specifically we have some {{javax.ws.rs.container.ContainerRequestFilter}} > implementations that are built using {{@Produces}} methods on our base > {{javax.ws.rs.core.Application}} class. Since the upgrade we have discovered > that these filters are being added to the request interceptor chain twice. > After debugging I found that all CDI managed beans built by {{@Produces}} > methods that use the {{@Provider}} annotation for discovery are now processed > twice. > It appears to me that the problem is in the current implementation of > {{{}JAXRSCdiResourceExtension{}}}. This implementation has {{@Observes}} > methods for both {{ProcessProducerMethod}} events and {{ProcessBean}} events > - but {{ProcessProducerMethod}} extends {{ProcessBean}} so both of these > handlers get called for each {{ProcessProducerMethod}} event fired by the CDI > implementation. This means both handlers add the producer method to the list > of {{providerBeans}} and the producer method is subsequently called twice > when {{loadProviders()}} is called and two instances of the provider are > passed to the {{{}JAXRSServerFactoryBean{}}}. > I believe this behaviour was introduced by this commit: > [https://github.com/apache/cxf/commit/4b96a222aea61f9fe80083c4c4bb1519955890ab] -- This message was sent by Atlassian Jira (v8.20.10#820010)