[
https://issues.jboss.org/browse/WELD-904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ales Justin updated WELD-904:
-----------------------------
Assignee: Ales Justin
Fix Version/s: 1.1.4.Final
> Observer method inheritance broken
> ----------------------------------
>
> Key: WELD-904
> URL: https://issues.jboss.org/browse/WELD-904
> Project: Weld
> Issue Type: Bug
> Components: Events
> Affects Versions: 1.1.1.Final
> Reporter: Christian Bauer
> Assignee: Ales Justin
> Priority: Minor
> Fix For: 1.1.4.Final
>
>
> {code}
> /*
> <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");
> }
> }
> }
> {code}
> 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:
> INIT BAR
> EVENT BAR
> One or several of these outcomes is wrong. Also, section 4.2 of the spec says
> that observer methods are only inherited if the subclass doesn't override the
> method. I'm confused why everyone (e.g.
> https://issues.jboss.org/browse/CDITCK-186) seems to assume the exact
> opposite.
--
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