[weld-issues] [JBoss JIRA] Created: (WELD-904) Observer method inheritance broken

Christian Bauer (JIRA) jira-events at lists.jboss.org
Tue May 10 08:59:23 EDT 2011


Observer method inheritance broken
----------------------------------

                 Key: WELD-904
                 URL: https://issues.jboss.org/browse/WELD-904
             Project: Weld
          Issue Type: Bug
    Affects Versions: 1.1.1.Final
            Reporter: Christian Bauer
            Priority: Minor


/*
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">

    <alternatives>
        <class>Foo$Bar</class>
    </alternatives>

</beans>
 */
@ApplicationScoped
public class Foo {

    public static void main(String[] args) {
        WeldContainer weld = new Weld().initialize();
        weld.event().select(MyEvent.class).fire(new MyEvent());
    }

    static class MyEvent {
    }

    @Qualifier
    @Target({FIELD, PARAMETER})
    @Retention(RUNTIME)
    public @interface SomeQualifier {
    }

    @PostConstruct
    void init() {
        System.out.println("INIT FOO");
    }

    void onEvent(@Observes MyEvent e) {
        System.out.println("EVENT FOO");
    }

    @Alternative
    @Specializes
    static public class Bar extends Foo {

        @Override
        void init() {
            System.out.println("INIT BAR");
        }

        @Override
        void onEvent(@Observes @SomeQualifier MyEvent e) {
            System.out.println("EVENT BAR");
        }
    }

}

The expected output is:

INIT BAR

The actual output is:

INIT BAR
EVENT BAR

Removing the @SomeQualifier annotation on the Bar#onEvent() method results in:

INIT BAR
EVENT BAR
EVENT BAR

Removing also the @Observes annotation on the Bar#onEvent() method results in:



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the weld-issues mailing list