[
https://issues.jboss.org/browse/AS7-6500?page=com.atlassian.jira.plugin.s...
]
Stuart Douglas commented on AS7-6500:
-------------------------------------
This is a general EE compliance issue, it is not specific to persistence contexts.
The correct way to solve it is to keep track of methods in
ComponentDescription.mergeInjectionsForClass(), making sure that you take things like
method visibility into account.
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...
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