[jboss-jira] [JBoss JIRA] (AS7-6500) Wrong injection made by container
Scott Marlow (JIRA)
jira-events at lists.jboss.org
Mon Feb 11 14:45:56 EST 2013
[ https://issues.jboss.org/browse/AS7-6500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12753501#comment-12753501 ]
Scott Marlow commented on AS7-6500:
-----------------------------------
Luan, I see similar output, thanks for pasting your log. Regarding your question about the Hibernate (persistence provider) component, no, Hibernate is not causing the incorrect injection to be made by the container.
Regarding ComponentDescription.mergeInjectionsForClass, I think the question is whether that is the right place to fix this issue for all EE deployments. I don't think this is limited to JPA, so finding a central place to resolve could be nice (instead of inside each EE deployment processor).
> Wrong injection made by container
> ---------------------------------
>
> Key: AS7-6500
> URL: https://issues.jboss.org/browse/AS7-6500
> Project: Application Server 7
> Issue Type: Bug
> Components: EE, EJB, JPA / Hibernate
> Affects Versions: 7.1.2.Final (EAP), 7.1.3.Final (EAP), 7.1.4.Final (EAP)
> Reporter: Luan Cestari
> Assignee: Scott Marlow
>
> Description of problem:
> I got an issue in a salesforce case [1] about an incorrect injection.
> [1] https://c.na7.visual.force.com/apex/Case_View?id=500A000000CRqDG&sfdc.override=1
> Version-Release number of selected component (if applicable):
> How reproducible:
> To reproduce the case is required to have two PersistentUnit (PU), a Abstract class with a setter method to inject one PU and others classes inheriting the Abstract class and overriding the setter method to inject a different PU. In the runtime, the container inject twice the PU, first the correct PU and then the PU described in super class.
> I talked with the client (who is a Red Hat consultant) and we made the attached project based on a very simple JBoss example to reproduce the issue which happens in EAP6. I put a lot of 'println' to be very clear (even printing stacktrace to show who is calling). The most important files are:
> -> hibernate4Test/src/main/java/org/jboss/as/quickstart/hibernate4/data/BaseDAO.java -- The abstract class with the default PU injection
> -> hibernate4Test/src/main/java/org/jboss/as/quickstart/hibernate4/data/MemberRepository.java -- BaseDAO subclass
> -> hibernate4Test/src/main/java/org/jboss/as/quickstart/hibernate4/data/SecondaryMemberRepository.java -- BaseDAO subclass
> -> hibernate4Test/src/main/java/org/jboss/as/quickstart/hibernate4/data/MemberListProducer.java -- The class which inject the MemberListProducer and SecondaryMemberRepository
> -> hibernate4Test/src/main/resources/META-INF/persistence.xml -- We changed the configuration here to each PU have a different entity mapped
> Steps to Reproduce:
>
> Actual results:
> The EM injection occurs twice, which the last one the wrong EM.
> Expected results:
> Just one injection occurs.
> Additional info:
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list