private Exception ExecuteState (IStateHandler state, ref bool readysync) { Exception lasterror = null; try { if (state.PossibleToTimeout) { _app.Context.BeginTimeoutPossible (); } try { state.Execute (); } finally { if (state.PossibleToTimeout) { _app.Context.EndTimeoutPossible (); } } #if TARGET_J2EE //Catch case of aborting by timeout if (_app.Context.TimedOut) { _app.CompleteRequest (); return null; } #endif if (state.PossibleToTimeout) { // Async Execute _app.Context.TryWaitForTimeout (); } readysync = state.CompletedSynchronously; #if TARGET_J2EE // Finishing execution for End without error }catch ([email protected]){ lasterror = null; _app.CompleteRequest (); #endif } catch (ThreadAbortException obj) { object o = obj.ExceptionState; Type type = (o != null) ? o.GetType () : null; if (type == typeof (StepTimeout)) { Thread.ResetAbort (); lasterror = new HttpException ("The request timed out."); _app.CompleteRequest (); } else if (type == typeof (StepCompleteRequest)) { Thread.ResetAbort (); _app.CompleteRequest (); } } catch (Exception obj) { #if TARGET_J2EE lasterror = HandleJavaException(obj); #else lasterror = obj; #endif } return lasterror; }