git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Resolved] (ARIES-1793) Blueprint interceptors do not work anymore


     [ https://issues.apache.org/jira/browse/ARIES-1793?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guillaume Nodet resolved ARIES-1793.
------------------------------------
    Resolution: Fixed

Committing to https://svn.apache.org/repos/asf/aries/trunk ...
	A	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/intercept/BeanA.java
	A	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/intercept/BeanB.java
	A	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/intercept/BeanItf.java
	A	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/intercept/TheInterceptor.java
	A	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/intercept/TheProcessor.java
	A	blueprint/blueprint-core/src/test/resources/test-interceptors.xml
	M	blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BeanRecipe.java
	M	blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/utils/ReflectionUtils.java
	M	blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java
Committed r1832703


> Blueprint interceptors do not work anymore
> ------------------------------------------
>
>                 Key: ARIES-1793
>                 URL: https://issues.apache.org/jira/browse/ARIES-1793
>             Project: Aries
>          Issue Type: Bug
>          Components: Blueprint
>    Affects Versions: blueprint-core-1.9.0
>         Environment: Karaf 4.2.0
>            Reporter: Nicolas Dutertry
>            Assignee: Guillaume Nodet
>            Priority: Major
>             Fix For: blueprint-core-1.9.1
>
>         Attachments: aries-interceptor.patch
>
>
> I have committed a project on Github to illustrate the issue : [https://github.com/nicolas-dutertry/test-jpa]
> This project contains a blueprint bundle with a bean TestRepository annotated with @PersistenceContext. This bean is then injected into another bean TestServiceImpl which is then published as an osgi service :
> {code:xml}
>     <jpa:enable/>
>     <tx:enable/>
>     <!-- This bean contains a @PersistenceContext EntityManager -->
>     <bean id="testRepository" class="com.dutertry.test.karaf.jpa.service.impl.TestRepository"/>
>     <bean id="testService" class="com.dutertry.test.karaf.jpa.service.impl.TestServiceImpl">
>         <property name="testRepository" ref="testRepository"/>
>     </bean>
>     <service interface="com.dutertry.test.karaf.jpa.service.TestService" ref="testService"/>
> {code}
> With Karaf 4.1.5 the instance of TestRepository injected in testService is an aries proxy managing JPA stuff, but with Karaf 4.2.0 the injected instance is not a proxy. Thus when using testService, the following error occurs:
> {code:java}
> java.lang.IllegalStateException: Need active coordination
>     at org.apache.aries.jpa.support.impl.EMSupplierImpl.get(EMSupplierImpl.java:81) ~[?:?]
>     at org.apache.aries.jpa.support.osgi.impl.EmProxy.invoke(EmProxy.java:38) ~[?:?]
>     at com.sun.proxy.$Proxy77.createQuery(Unknown Source) ~[?:?]
>     at Proxy4c2993b8_dc6f_46b4_8e62_524dc0ad05f5.createQuery(Unknown Source) ~[?:?]
>     at com.dutertry.test.karaf.jpa.service.impl.TestRepository.list(TestRepository.java:26) ~[?:?]
>     at com.dutertry.test.karaf.jpa.service.impl.TestServiceImpl.list(TestServiceImpl.java:25) ~[?:?]
>     at com.dutertry.test.karaf.jpa.cmd.ListPersonCommand.execute(ListPersonCommand.java:24) ~[?:?]
>     at org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) ~[?:?]
>     at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68) ~[?:?]
>     at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86) ~[?:?]
>     at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:571) ~[?:?]
>     at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:497) ~[?:?]
>     at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:386) ~[?:?]
>     at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:417) ~[?:?]
>     at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?]
>     at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59) ~[?:?]
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:?]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:?]
>     at java.lang.Thread.run(Thread.java:748) [?:?]{code}
>  
> After some investigation, I have found that this bug is due to the resolution of issue ARIES-1544. I have done a patch (see attached file) which solve the issue I think.
> [^aries-interceptor.patch]
> Can you please integrate my patch or correct the issue another way ?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-aries-development/msg01826.html on line 152
Call Stack
#TimeMemoryFunctionLocation
10.0008368696{main}( ).../msg01826.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-aries-development/msg01826.html on line 152
Call Stack
#TimeMemoryFunctionLocation
10.0008368696{main}( ).../msg01826.html:0