If a portlet renders in multiple threads concurrently for a single user there is potential for the request and response to get mixed up as a portlet channel adapter per portlet per user exists and each adapter tracks the current portal control structures as an instance variable.
Fixed by tracking PortalControlStructures in a ThreadLocal in the portlet adapter class.