public void goCompare() {

	try {
	    
	    HashMap<String, ArrayList> tableInfoOne = appState.getDbOperationManagerOne().getTableInfo(tComparatorOne.getSelectedTable());
	    HashMap<String, ArrayList> tableInfoTwo = appState.getDbOperationManagerTwo().getTableInfo(tComparatorTwo.getSelectedTable());

	    if(compareTwoArrayListVals(tableInfoOne.get("COL_NAMES"), tableInfoTwo.get("COL_NAMES")) && compareTwoArrayListVals(tableInfoOne.get("COL_TYPES"), tableInfoTwo.get("COL_TYPES"))) {
		
		ArrayList<String[]> dataTableOne = appState.getDbOperationManagerOne().getAllDataFromTable(tComparatorOne.getSelectedTable(), tableInfoOne.get("COL_NAMES").size(), tComparatorOne.getWherePart());
		ArrayList<String[]> dataTableTwo = appState.getDbOperationManagerTwo().getAllDataFromTable(tComparatorTwo.getSelectedTable(), tableInfoTwo.get("COL_NAMES").size(), tComparatorTwo.getWherePart());

		compareThread = new TableComparatorRunner(this, dataTableOne, dataTableTwo, tableInfoOne.get("COL_NAMES"), tComparatorOne.getSelectedTable(), compData.getSelectedCols(), compData.getCheckServerOne(), compData.getCheckServerTwo());
		compareThread.start();
	    }
	    else {
		
		JOptionPane.showMessageDialog(this, tComparatorOne.getSelectedTable() + " and " + tComparatorTwo.getSelectedTable() + " have differnet columns. Can not compare them!");
	    }
	}
	catch (SQLException sqlEx) {
	    
	    JOptionPane.showMessageDialog(this, "Error getting information from database! \nError : " + sqlEx.getMessage());
	}
	catch(NumberFormatException nfEx) {
	    
	    JOptionPane.showMessageDialog(this, "Please enter a valid number! \nError : " + nfEx);
	}
	catch(NullPointerException nullEx) {
	    
	    JOptionPane.showMessageDialog(this, "Null Exception, make sure all fileds are completed! \nError : " + nullEx.getMessage());
	}
	catch(Exception ex) {
	    
	    JOptionPane.showMessageDialog(this, "An error occured! \nError : " + ex.getMessage());
	}
    }