session.removeAttribute(Constants.PROXY_ATTRNAME);
  public ActionForward execute  	(ActionMapping				mapping,     ActionForm 					form,     HttpServletRequest 	request,     HttpServletResponse  response)  throws Exception  {    // Setup message array in case there are errors    ArrayList messages = new ArrayList();    // Confirm message resources loaded    MessageResources resources = getResources(request);    if (resources==null)    {      messages.add(Constants.ERROR_MESSAGES_NOT_LOADED);    }    // If there were errors, forward to our failure page    if (messages.size()>0)    {      request.setAttribute(Constants.ERROR_KEY,messages);      return findFailure(mapping);    }        HttpSession session = request.getSession();     Proxy proxy    = (Proxy)(session.getAttribute(Constants.PROXY_ATTRNAME));      Signet signet = (Signet)(session.getAttribute("signet"));      if ((signet == null) || (proxy == null))    {      return (mapping.findForward("notInitialized"));    }        PrivilegedSubject loggedInPrivilegedSubject      = (PrivilegedSubject)          (request.getSession().getAttribute("loggedInPrivilegedSubject"));            // Find the Proxies specified by the multi-valued "revoke" parameter,    // and revoke them.    String[] proxyIDs = request.getParameterValues("revoke");    if (proxyIDs == null)    {      proxyIDs = new String[0];    }        signet.beginTransaction();        for (int i = 0; i < proxyIDs.length; i++)    {      Proxy proxyToRevoke      	= signet.getProxy(Integer.parseInt(proxyIDs[i]));      proxyToRevoke.revoke(loggedInPrivilegedSubject);      proxyToRevoke.save();    }        // Now, save the not-yet-persisted Proxy.        proxy.save();    signet.commit();    // Forward to our success page    return findSuccess(mapping);  }