Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-577

Blueprint container cannot proxy beans marked with tx:transaction

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: fuse-esb-7.1.0
    • Fix Version/s: jboss-fuse-6.2
    • Component/s: None
    • Labels:
      None
    • Environment:

      fuse-esb-7.1.0.fuse-047

      Description

      See similar ARIES bug for more details https://issues.apache.org/jira/browse/ARIES-703

      Steps to reproduce.
      1.) There is a class com.pb.osgitest.provider.jbpm.JbpmApiInteraction which implements single
      interface com.pb.osgitest.provider.jbpm.IJbpmApiInteraction

      2.) Declare bean of that class in blueprint.xml with tx:transaction annotation. For example,

      <bean id="osgitest.provider.jbpm.api.interaction" class="com.pb.osgitest.provider.jbpm.JbpmApiInteraction"
      init-method="setup" scope="prototype">
      ....
      <tx:transaction method="*" value="Required"/>
      </bean>

      3.) Request component from blueprint container

      JbpmApiInteraction jbpmApiInteraction = (IJbpmApiInteraction) blueprintContainer.getComponentInstance("osgitest.provider.jbpm.api.interaction");

      This call lead to exception below:

      getComponentInstance threw exception: Unable to convert instance osgitest.provider.jbpm.api.interaction
      org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to convert instance osgitest.provider.jbpm.api.interaction
      at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:138)
      at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:146)
      at org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:727)
      at com.pb.osgitest.provider.jbpm.BPMProviderImpl.createJbpmApiInteraction(BPMProviderImpl.java:179)
      at com.pb.osgitest.provider.jbpm.BPMProviderImpl.deployProcess(BPMProviderImpl.java:65)
      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.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
      at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
      at $Proxy103.deployProcess(Unknown Source)
      at com.pb.osgitest.ws.OsgiServiceTestImpl.deployProcessDefinition(OsgiServiceTestImpl.java:55)
      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.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)
      at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
      at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:178)
      at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:64)
      at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
      at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:236)
      at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
      at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)
      at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:221)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:141)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
      at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:197)
      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.ops4j.pax.web.service.internal.HttpServiceStarted$1.invoke(HttpServiceStarted.java:182)
      at org.ops4j.pax.web.service.internal.$Proxy37.service(Unknown Source)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:447)
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:534)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
      at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      at org.eclipse.jetty.server.Server.handle(Server.java:359)
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
      at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:931)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:992)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      at java.lang.Thread.run(Thread.java:662)
      Caused by: org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to create proxy for bean osgitest.provider.jbpm.api.interaction in bundle com.pb.test.pb-osgi-test-providers-jbpm version 1.0.0.SNAPSHOT
      at org.apache.aries.blueprint.container.BeanRecipe.addInterceptors(BeanRecipe.java:771)
      at org.apache.aries.blueprint.container.BeanRecipe.wrap(BeanRecipe.java:841)
      at org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:149)
      at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:402)
      at org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:136)
      ... 69 more
      Caused by: org.apache.aries.proxy.UnableToProxyException: The class com.pb.osgitest.provider.jbpm.JbpmApiInteraction is not an interface and therefore a proxy cannot be generated.
      at org.apache.aries.proxy.impl.JdkProxyManager.getInterfaces(JdkProxyManager.java:43)
      at org.apache.aries.proxy.impl.JdkProxyManager.createNewProxy(JdkProxyManager.java:36)
      at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)
      at org.apache.aries.proxy.impl.AbstractProxyManager.createInterceptingProxy(AbstractProxyManager.java:53)
      at org.apache.aries.blueprint.container.BeanRecipe.addInterceptors(BeanRecipe.java:767)
      ... 73 more

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                janstey Jonathan Anstey
                Reporter:
                amatusev Andrew Matusevich
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: