Details
Description
Using CXF with Aries Blueprint Core 0.3.1 may get the following exception at
org.apache.cxf.bus.blueprint.ConfigurerImpl's configureBean method:
Caused by: java.lang.IllegalStateException: Execution container has not been set
at org.apache.aries.blueprint.di.ExecutionContext$Holder.getContext(ExecutionContext.java:34)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:52)
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:799)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:773)
at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:754)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.cxf.bus.blueprint.ConfigurerImpl.configureBean(ConfigurerImpl.java:139)
at org.apache.cxf.bus.blueprint.ConfigurerImpl.configureWithWildCard(ConfigurerImpl.java:165)
at org.apache.cxf.bus.blueprint.ConfigurerImpl.configureBean(ConfigurerImpl.java:111)
at org.apache.cxf.bus.blueprint.ConfigurerImpl.configureBean(ConfigurerImpl.java:100)
at org.apache.cxf.transport.http.HTTPTransportFactory.configure(HTTPTransportFactory.java:186)
at org.apache.cxf.transport.http.HTTPTransportFactory.getConduit(HTTPTransportFactory.java:260)
at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:228)
at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:235)
...
Note that this problem is caused by an interoperability issue between CXF and Aries Blueprint Core 0.3.1. The problem does not occur with BP 0.3.2 or a newer version.
This patch adds a workaround in CXF to avoid having this problem for those who are using BP 0.3.1.