-
Bug
-
Resolution: Done
-
Major
-
1.1.10.Final
-
None
-
None
The equals() implementation is incorrect
@Override public boolean equals(Object obj) { //my fix if (obj !=null && obj instanceof ForwardingMethodExpression){ obj=((ForwardingMethodExpression)obj).delegate(); } //my fix end return this == obj || delegate().equals(obj); }
If the obj is a WeldMethodExpression, it returns false which cause add duplicated listener in Mojarra 2.1
Please see Mojarra javax.faces.component.UIComponentBase
public void subscribeToEvent(Class<? extends SystemEvent> eventClass, ComponentSystemEventListener componentListener) { ... if (!listenersForEventClass.contains(facesLifecycleListener)) { // see here listenersForEventClass.add(facesLifecycleListener); } }
- is related to
-
WELD-1037 IllegalStateException when redirecting from system event in JSF managed bean
- Resolved