public String perform(HttpServletRequest request) {
		List<String> errors = new ArrayList<String>();
		request.setAttribute("errors", errors);
		try {
			CustomerBean cb = (CustomerBean) request.getSession().getAttribute(
					"customer");
			request.setAttribute("user", cb);
			Transaction.begin();
			PositionBean[] pBean = positionDAO
					.getAllPositionsByCustomerIdBeans(cb.getCustomer_id());
			ArrayList<LastFundBean> list = new ArrayList<LastFundBean>();
			if (pBean != null && pBean.length != 0) {
				for (int i = 0; i < pBean.length; i++) {
					LastFundBean lfb = new LastFundBean();
					int fundID = pBean[i].getFund_id();
					FundPriceHistoryBean fphBean = fundPriceHistoryDAO
							.getLastDateBeanByFundId(fundID);
					if (fphBean != null) {
						FundBean fundBean = fundDAO.getFundByFundId(fundID);
						lfb.setName(fundBean.getName());
						lfb.setFund_id(fundBean.getFund_id());
						lfb.setSymbol(fundBean.getSymbol());
						lfb.setShares(pBean[i].getShares());
						lfb.setPrice_date(fphBean.getDate());
						lfb.setPrice(fphBean.getPrice());
						list.add(lfb);
					}
				}
			}
			request.setAttribute("userFundList", list);
			Transaction.commit();

			return "c_sellFundAll.jsp";
		} catch (RollbackException e) {
			errors.add(e.toString());
			return "c_sellFundAll.jsp";
		} catch (NumberFormatException e) {
			System.out.print("catched");
			errors.add("Input Amount is too large");
			return "c_sellFundAll.jsp";
		} catch (ParseException e) {
			e.printStackTrace();
			errors.add(e.toString());
			return "c_sellFundAll.jsp";
		} catch (Exception e) {
			errors.add(e.getMessage());
			return "c_sellFundAll.jsp";
		} finally {
			if (Transaction.isActive())
				Transaction.rollback();
		}
	}