PortletInvocation invocation) throws IllegalArgumentException, PortletInvokerException
{
invocation.setRequestAttributes(conversation.getAttributes());
// Set the id parameter
ParametersStateString inNS = (ParametersStateString)invocation.getNavigationalState();
if (inNS == null)
{
inNS = ParametersStateString.create();
invocation.setNavigationalState(inNS);
}
inNS.setValue("javax.portlet.as", conversation.id);
//
PortletInvocationResponse response = super.invoke(invocation);
//
if (response instanceof UpdateNavigationalStateResponse)
{
UpdateNavigationalStateResponse update = (UpdateNavigationalStateResponse)response;
//
Map<String, Object> attributes = update.getAttributes();
//
if (attributes != null && attributes.size() > 0)
{
ParametersStateString outNS = (ParametersStateString)update.getNavigationalState();
outNS.setValue("javax.portlet.as", conversation.id);
//
conversation.setAttributes(attributes);
//