} finally { }}
public void service(IEngineServiceView engine, IRequestCycle cycle, ResponseOutputStream output)
throws ServletException, IOException
{try { __CLOVER_73_0.M[3023]++;
__CLOVER_73_0.S[12423]++;IAction action = null;
__CLOVER_73_0.S[12424]++;String componentPageName;
__CLOVER_73_0.S[12425]++;int count = 0;
__CLOVER_73_0.S[12426]++;String[] serviceContext = getServiceContext(cycle.getRequestContext());
__CLOVER_73_0.S[12427]++;if ((((serviceContext != null) && (++__CLOVER_73_0.CT[2130] != 0)) || (++__CLOVER_73_0.CF[2130] == 0))){
__CLOVER_73_0.S[12428]++;count = serviceContext.length;}
__CLOVER_73_0.S[12429]++;if ((((count != 4 && count != 5) && (++__CLOVER_73_0.CT[2131] != 0)) || (++__CLOVER_73_0.CF[2131] == 0))){
__CLOVER_73_0.S[12430]++;throw new ApplicationRuntimeException(Tapestry
.getMessage("ActionService.context-parameters"));}
__CLOVER_73_0.S[12431]++;boolean complex = count == 5;
__CLOVER_73_0.S[12432]++;int i = 0;
__CLOVER_73_0.S[12433]++;String stateful = serviceContext[i++];
__CLOVER_73_0.S[12434]++;String pageName = serviceContext[i++];
__CLOVER_73_0.S[12435]++;String targetActionId = serviceContext[i++];
__CLOVER_73_0.S[12436]++;if ((((complex) && (++__CLOVER_73_0.CT[2132] != 0)) || (++__CLOVER_73_0.CF[2132] == 0))){
__CLOVER_73_0.S[12437]++;componentPageName = serviceContext[i++];}
else{
__CLOVER_73_0.S[12438]++;componentPageName = pageName;}
__CLOVER_73_0.S[12439]++;String targetIdPath = serviceContext[i++];
__CLOVER_73_0.S[12440]++;IPage page = cycle.getPage(pageName);
// Setup the page for the rewind, then do the rewind.
__CLOVER_73_0.S[12441]++;cycle.activate(page);
__CLOVER_73_0.S[12442]++;IPage componentPage = cycle.getPage(componentPageName);
__CLOVER_73_0.S[12443]++;IComponent component = componentPage.getNestedComponent(targetIdPath);
__CLOVER_73_0.S[12444]++;try
{
__CLOVER_73_0.S[12445]++;action = (IAction) component;
}
catch (ClassCastException ex)
{
__CLOVER_73_0.S[12446]++;throw new ApplicationRuntimeException(Tapestry.format(
"ActionService.component-wrong-type",
component.getExtendedId()), component, null, ex);
}
// Only perform the stateful check if the application was stateful
// when the URL was rendered.
__CLOVER_73_0.S[12447]++;if ((((stateful.equals(STATEFUL_ON) && action.getRequiresSession()) && (++__CLOVER_73_0.CT[2133] != 0)) || (++__CLOVER_73_0.CF[2133] == 0))){
{
__CLOVER_73_0.S[12448]++;HttpSession session = cycle.getRequestContext().getSession();
__CLOVER_73_0.S[12449]++;if ((((session == null || session.isNew()) && (++__CLOVER_73_0.CT[2134] != 0)) || (++__CLOVER_73_0.CF[2134] == 0))){
__CLOVER_73_0.S[12450]++;throw new StaleSessionException();}