public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		// Extract attributes we will need
		Locale locale = getLocale(request);
		HttpSession session = request.getSession();
		// Is there a logged in user?
		User user = (User) session.getAttribute("user");
		if ((user == null) || (!user.getIs_validated())) {
			if (logger.isDebugEnabled()) {
				logger.debug("User is not logged on in session "
						+ session.getId());
			}
			return mapping.findForward(GLOBAL_FORWARD_login);
		}

		// Was this transaction cancelled?
		if (isCancelled(request)) {
			logger.debug("Transaction was cancelled");
			if (mapping.getAttribute() != null)
				session.removeAttribute(mapping.getAttribute());
			if (user.isStudent()) {
				return mapping.findForward(GLOBAL_FORWARD_logoff);
			}
			return mapping.findForward(FORWARD_cancel);
		}

		// Get the ServletContext for later use!
		ServletContext context = servlet.getServletContext();

		// Get the DataSource for later use!
		DataSource ds = (DataSource) context.getAttribute("cloverDB");

		// Set up the application and session objects
		try {
			PrepareSession.checkSessionObjects(session, servlet
					.getServletContext(), ds);
		} catch (AppException ae) {
			session.setAttribute("AppException", ae);
			return mapping.findForward(GLOBAL_FORWARD_exception);
		}

		try {
			StudentsDA sda = new StudentsDA(ds);
			StudentBean sb;
			CheckBoxes2 cb2;
			EntryForm2 seform;
			List students = sda.getStudentsToFix();
			for (int i = 0; i < students.size(); i++) {
				int sid = ((Integer) students.get(i)).intValue();
				sb = sda.getStudent(sid);
				cb2 = (CheckBoxes2) sb.getCheckBoxes();
				seform = new EntryForm2();
				cb2.loadToEntryForm(seform);
				//FormToStudent fts = new FormToStudent(ds);
				FormToInterests fti = new FormToInterests();
				Vector interestsV;
				InterestsTallyBean tally = (InterestsTallyBean) session
						.getAttribute("tally");
				TopicsLookup lookup = (TopicsLookup) context
						.getAttribute("lookup");

				interestsV = fti.getInterests(seform, tally);
				//sb = fts.convert(seform);
				sb.setInterests(interestsV);
				sda.updateStudent(sb);
			}
		} catch (Exception e) {
			AppException ae = new AppException("Update Failed!!", e);
			session.setAttribute("AppException", ae);
			return (mapping.findForward(GLOBAL_FORWARD_exception));
		}

		return mapping.findForward(FORWARD_success);
	}