What I can think of improving is:Show stack on screen to fail gracefully i.e. improved catch part of try..catchMake the try part shorter to improve readabilityMake imports with * to improve readability so you don't have to import the same package twiceSource code://source is probably public domain since prv.se is a public authority:package se.prv.pandora.arendeprocess.actionhandler;import java.util.List;import org.apache.log4j.Logger;import se.prv.framework.forms.IFormData;import se.prv.framework.forms.IFormPattern;import se.prv.framework.general.Action;import se.prv.framework.general.ISessionHandler;import se.prv.pandora.arendeprocess.daos.AnsokanDAO;import se.prv.pandora.arendeprocess.entity.Ansokan;import se.prv.pandora.arendeprocess.exceptions.PandoraDAOException;import se.prv.pandora.arendeprocess.forms.NamnsokningFormPattern;import se.prv.pandora.arendeprocess.general.PandoraActionHandler;import se.prv.pandora.arendeprocess.obj.AnsokanInfo;import se.prv.pandora.arendeprocess.obj.ArendeProcessSessionData;import se.prv.pandora.arendeprocess.obj.ArendeSearchAdmin;import se.prv.pandora.arendeprocess.obj.ArendesokInfo;import se.prv.pandora.arendeprocess.util.ArendeComparatorManager;import se.prv.pandora.arendeprocess.util.ArendeProcessListComparator;import se.prv.pandora.arendeprocess.util.ArendeSokListComparator;import se.prv.pandora.arendeprocess.util.LookupHelper;import se.prv.pandora.arendeprocess.util.MenuManager;import se.prv.pandora.arendeprocess.util.PandoraAnsokanHandler;import se.prv.pandora.arendeprocess.util.PandoraFieldConstants;/**  * @author Niklas Rosencrantz (adbnro)  *   */public class ArendesokningActionHandler extends PandoraActionHandler {   private ArendeProcessSessionData sessionData;   private AnsokanDAO ansokanDAO;   private int initialSort = ArendeProcessListComparator.INKOM_FIRST;   private final static Logger logger = Logger.getLogger(ArendesokningActionHandler.class);   protected IFormData getFormData() {      return null;   }   protected IFormPattern getPattern() {      return NamnsokningFormPattern.getInstance();   }   public ArendesokningActionHandler(){      ansokanDAO = LookupHelper.lookup(se.prv.pandora.arendeprocess.daos.AnsokanDAO.class);   }   protected void performAction(ISessionHandler sessionHandler, Action action) {      String returnPage = null;      List<AnsokanInfo> ansokanInfoList = null;      List<AnsokanInfo> sortedList = null;      ArendesokInfo arendesokInfo = null;      ArendeComparatorManager compManager = null;      ArendeSearchAdmin admin = new ArendeSearchAdmin();      PandoraAnsokanHandler ansokanHandler = new PandoraAnsokanHandler();      try {         sessionData = (ArendeProcessSessionData) sessionHandler.getSessionData();         MenuManager menuManager = sessionData.getMenuManager();         returnPage = menuManager.getLatestDestination(action.getActionTarget());            arendesokInfo = sessionData.getArendesokInfo();             if(arendesokInfo != null) {            if(arendesokInfo.getArendeComparatorManager() != null) {               compManager = arendesokInfo.getArendeComparatorManager();            } else {               compManager = new ArendeComparatorManager();            }            } else {            arendesokInfo = new ArendesokInfo();            compManager = new ArendeComparatorManager();         }           IFormData formData = sessionData.getFormData();         //ansokanInfo.setEditPersonInfo(null);          if(action.getActionCommand().equalsIgnoreCase(choose)){              // TODO: Ska valideras            //saveGrunduppgifter(formData, ansokanInfo, ansokan);               returnPage = sessionData.getLatestAction().getCurrPage();            //arendeprocess_grunduppgifter.jsp         } else if(action.getActionCommand().equalsIgnoreCase(search)){            logger.info(i search);            String search_arende = formData.getValue(PandoraFieldConstants.FIELD_SEARCH_ARENDE);            List<Ansokan> ansokningar = ansokanDAO.search(search_arende);            sessionData.setArendesokningLista(ansokanHandler.getAnsokanInfoFromAnsokan(ansokningar));            returnPage = sessionData.getLatestAction().getCurrPage();         }         compManager.setLastSortNr(initialSort);         ArendeSokListComparator comp = new ArendeSokListComparator(initialSort);            sortedList = sortFormList(sessionData.getArendesokningLista(), comp);         admin.setResultList(sortedList);         admin.setNbOfHits(sortedList.size());           arendesokInfo.setArendeSearchAdmin(admin);          arendesokInfo.setAnsokanInfoList(ansokanInfoList);         arendesokInfo.setArendeComparatorManager(compManager);          sessionData.setArendesokInfo(arendesokInfo);         action.setReturnPage(returnPage);      } catch (Exception e) {         logger.error(ArendesokningActionHandler: performAction() , e);         throw new PandoraDAOException(e, performAction(), Error. Transaction must be rolled back:  + e.getMessage());      }   }   List<AnsokanInfo> sortFormList(List<AnsokanInfo> resultList1, ArendeSokListComparator comp) {      java.util.Collections.sort(resultList1, comp);      return resultList1;   }}
Kindly review this class
java;search