@Inject'ed protected base class member access problem
-----------------------------------------------------

                 Key: WELD-1027
                 URL: https://issues.jboss.org/browse/WELD-1027
             Project: Weld
          Issue Type: Bug
    Affects Versions: 1.1.2.Final
         Environment: Glassfish 3.1.1 Chrome browser.
            Reporter: Brendan Healey


In the following code I'm trying to inject a SessionScoped bean into a 
stateless EJB,
but I want to do the @Inject in an abstract base class of the EJB. According to 
the
CDI spec it seems to suggest that this should work:

"4.2. Inheritance of member-level metadata 

Suppose a class X is extended directly or indirectly by the bean class of a 
managed bean or session bean Y. 

If X declares an injected field x then Y inherits x." 

What happens is that I can access the inherited protected member sessionView 
from TestEjb,
but not from code within the base class. When I say "can access", I mean that 
the injected
member is accessible at runtime and is not null.

@Named 
@ViewAccessScoped 
public class JsfBean extends implements Serializable { 
  @Inject private TestEjb ejb; 

  SessionView s1 = ejb.getSessionViewChild();  // sessionView injected ok 
  SessionView s2 = ejb.getSessionViewBase();   // s2 is null
} 

@Named 
@SessionScoped 
public class SessionView implements Serializable {} 

@Stateless 
public class TestEjb extends BaseClass implements Serializable { 

  public SessionView getSessionViewChild() { 
    return sessionView; 
  } 
} 

public abstract class BaseClass implements Serializable { 
    @Inject 
    protected SessionView sessionView; 

    public SessionView getSessionViewBase() { 
      return sessionView; 
  } 
} 

What happens is that s1 is a valid SessionView reference, but s2 is null. It now
turns out that if I change the access of sessionView in BaseClass to private, it
works, but only if I clean & build before re-deployment. It will then 
consistently
work - unless I change it back to protected, in which case it will consistently 
not
work. 

I am using MyFaces CODI 1.0.1 in conjunction with Weld from Glassfish 3.1.1
(v20110404-1554). I am also using JDK 7u1. I reported this on the MyFaces 
mailing
list but Gerhard said this looked like a weld issue.

Thanks.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to