public void listProducts() {
		products = new ArrayList<Product>();

		try {
			ResultSet results;

			if (listAllProducts) {
				results = listAllProductsStatement.executeQuery();
			} else {
				listByCustomerStatement.setString(1, customerLogin);
				results = listByCustomerStatement.executeQuery();
			}
			while (results.next()) {
				int auctionId = results.getInt("auction_id");
				Product product = new Product(session.getDb(), auctionId);
				products.add(product);
			} 

		} catch(SQLException e) {
			while (e != null) {
				debug.println(e.toString());
				debug.flush();
				e = e.getNextException();
			}
		}

		if (products.size() <= 0) {
			productsBox.setLine(0, "");
			productsBox.setLine(1, " No products to show.");
			for (int i = 2; i < 13; i++){
				productsBox.setLine(i, "");
			}
		} else {
			productsBox.setLine(0, "      Name | Status | Highest Bid Amount | Buyer or Highest Bidder");
			productsBox.setLine(1, "");
			ArrayList<Product> productsOnPage = paginator.paginate(products, curPage, 5);
			int lineOffset = 0;
			for (int i = 0; i < productsOnPage.size(); i++) {
				Product product = productsOnPage.get(i);
				//lineOffset works now
				lineOffset = i * 2;
				productsBox.setLine(lineOffset + 3, " " + product.name + " | "
												  + product.status+ " | $" 
												  + product.amount + " | "
												  + product.getHighestBidder());
			}
			//clear the lines of productBox if there are not as many products as before
			int lastLine = productsOnPage.size() * 2 + 2;
			for (int i = lastLine; i< 12; i++){
				productsBox.setLine(i, "");
			}
			productsBox.setLine(12, paginator.getPageMenu(products, curPage, 5));

		}

	}