package com.tandbergtv.watchpoint.pmm.web.util;

import java.util.GregorianCalendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ExceptionHandler;
import org.apache.struts.config.ExceptionConfig;
/**
 * Handles uncaught exceptions thrown by the system by logging the 
 * exception and redirecting to a generic error page.
 *  
 * @author Imran Naqvi
 */
public class TTVExceptionHandler extends ExceptionHandler {

	public TTVExceptionHandler() {
		super();
	}
	private static final Logger logger = Logger
		.getLogger(TTVExceptionHandler.class);
	
	@Override
	public ActionForward execute(Exception exception, ExceptionConfig config,
			ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		logger.error(exception.getMessage(), exception);
		request.setAttribute("ErrorMessage", exception.getMessage());
		request.setAttribute("timeStamp", new GregorianCalendar().getTime().toString());
		return super.execute(exception, config, mapping, form, request,
				response);
	}

}
