A fix is available
APAR status
Closed as program error.
Error description
A method annotated with @ProcessEvent within a class extending FacesPortlet isn't called if the particular event is published Step to reproduce: 1. Create a JSR286 portlet project Event of type Faces portlet with portlet Sender 2. Create a new portlet of type Faces portlet Receiver 3. Open the portlet deployment descriptor, open section Event definitions, press Add... and specify Event name PublishEvent. Leave the default name space and event value type. Open tab Portlets, select portlet Sender and open section Support Publishing Events and select the event PublishEvent. Select portlet Receiver, open section Support Processing Events and select the event PublishEvent 4. Open Sender.jsp. Drag from the Palette the component Input and a Button - Command to the .jsp 5. Create a new class bean.Message with a field message of type String and accessor methods for that field 6. Create a new Faces Managed Bean messageBean for bean.MessageBean in request scope. Bind the inputText to the field message in bean message. 7. Code an action for the command above with the following code PortletResponseWrapper responseWrapper = (PortletResponseWrapper)(getFacesContext().getExternalContext(). getResponse()); ActionResponse actionResponse = (ActionResponse)(responseWrapper.getPortletResponse()); String message = getMessageBean().getMessage(); actionResponse.setEvent('PublishEvent',message); 8. Create a new class bean.Receive with a field message of type String and accessor methods for that field 9. Create a new Faces Managed Bean receiveBean for bean.ReceiveBean in session scope. 10. Open Receiver.jsp. Add an outputText and bind the outputText to the field message in bean receiveBean. 11. Create a new class portlet.ReceiverPortlet deriving from com.ibm.faces.portlet.FacesPortlet and add the following method @ProcessEvent(qname = '{http://Event/}PublishEvent') public void method(EventRequest request, EventResponse response) throws PortletException, java.io.IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); Event event = request.getEvent(); if (event.getName().toString().equals('PublishEvent')) { try { String message = request.getEvent().getValue().toString(); TestBean bean = (TestBean) facesContext.getApplication() .createValueBinding('#{receiveBean}') .getValue(facesContext); bean.setMessage(message); } catch (Exception e) { e.printStackTrace(); } } facesContext.release(); } 12. Open the portlet deployment descriptor and specify as portlet class for Receiver the ReceiverPortlet 13. Add the EAR EventEAR to the Portal server 14. Open Portal on the page Event, open the Edit Page Layout, tab Wires. Select source portlet Sender, sending PublishEvent, target page take the default, target portlet Receiver, receiving PublishEvent, wire type public, Hit the '+' sign at the end of the line to add the Wire and press Done. Once Done, make sure that the wire added is listed in the wires tab. 15. Open the portlet Sender, enter a text and press the button to send the JSR286 event to the Receiver portlet Result: The message is NOT shown within the Receiver portlet Expected result: The message is shown within the Receiver portlet Workaround: None
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * **************************************************************** * PROBLEM DESCRIPTION: * **************************************************************** * RECOMMENDATION: * **************************************************************** A method annotated with @ProcessEvent within a class extending FacesPortlet isn't called if the particular event is published.
Problem conclusion
Fixed by invoking processEvent() of GenericPortlet from the portlet bridge. The fix for this APAR is included in Rational Application Developer v7.5.5.5.
Temporary fix
Comments
APAR Information
APAR number
PM43205
Reported component name
RATL APP DEV WI
Reported component ID
5724J1901
Reported release
755
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-07-07
Closed date
2011-11-03
Last modified date
2011-11-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RATL APP DEV WI
Fixed component ID
5724J1901
Applicable component levels
R755 PSN
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSRTLW","label":"Rational Application Developer for WebSphere Software"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
03 November 2011