List of usage examples for com.liferay.portal.kernel.servlet PersistentHttpServletRequestWrapper clone
@Override
public PersistentHttpServletRequestWrapper clone()
From source file:com.liferay.nested.portlets.web.internal.display.context.NestedPortletsDisplayContext.java
License:Open Source License
/** * @see com.liferay.portal.util.PortalImpl#getOriginalServletRequest *///from ww w.j av a 2s . co m public HttpServletRequest getLastForwardRequest() { HttpServletRequest currentRequest = _request; HttpServletRequestWrapper currentRequestWrapper = null; HttpServletRequest originalRequest = null; HttpServletRequest nextRequest = null; while (currentRequest instanceof HttpServletRequestWrapper) { if (currentRequest instanceof PersistentHttpServletRequestWrapper) { PersistentHttpServletRequestWrapper persistentHttpServletRequestWrapper = (PersistentHttpServletRequestWrapper) currentRequest; persistentHttpServletRequestWrapper = persistentHttpServletRequestWrapper.clone(); if (originalRequest == null) { originalRequest = persistentHttpServletRequestWrapper; } if (currentRequestWrapper != null) { currentRequestWrapper.setRequest(persistentHttpServletRequestWrapper); } currentRequestWrapper = persistentHttpServletRequestWrapper; } HttpServletRequestWrapper httpServletRequestWrapper = (HttpServletRequestWrapper) currentRequest; nextRequest = (HttpServletRequest) httpServletRequestWrapper.getRequest(); if ((currentRequest.getDispatcherType() == DispatcherType.FORWARD) && (nextRequest.getDispatcherType() == DispatcherType.REQUEST)) { break; } currentRequest = nextRequest; } if (currentRequestWrapper != null) { currentRequestWrapper.setRequest(currentRequest); } if (originalRequest != null) { return originalRequest; } return currentRequest; }