Need to encode for render only renderable portlets following event distribution
-------------------------------------------------------------------------------

                 Key: PLUTO-602
                 URL: https://issues.apache.org/jira/browse/PLUTO-602
             Project: Pluto
          Issue Type: Bug
          Components: portal driver
    Affects Versions: 2.0.2
            Reporter: Michael Freedman


Currently Pluto distributes events to all portlets in the portal registered to 
receive the event whether they are visible/renderable or not. ( I.e. whether 
they are on the current tab or not).  When doEvent() is finished and calls 
close() the portlet that received the event is encoded (merged) into the render 
url that pluto redirects to at the end of the (action/event) request.  If you 
have N (where N is greater than 6 or so)  portlets all that raise/receive the 
same event, each on a separate tab then each of these portlets breaks when its 
action raises the event.  Apache throws an ArrayOutOfBounds exception as we 
seemingly write beyond the 8k response header buffer limit.

So, the fix is that Pluto should only encode the portlet in this url if its in 
fact currently renderable/visible/on the current tabbed page.

FYI ... my use case is running the 329 Bridge TCK which has many tens of event 
tests that each uses the same event (name).  Each test is on a different 
tab/page but things still fail because of the above.

In looking at the code this may take a little jiggering to get implemented .  
Might a I suggest that you add a second close() method to 
PortletStateAwareResponseImpl that takes a boolean indicating whether the 
portlet is renderable or not (and hence whether to encode the info in the 
render url) and then have PortletContainerImpl.doEvent() call this close with 
the appropriate value.  This assumes of course that you can figure out whether 
the portlet is visible/renderable and the code here can have access to this 
information.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to