private void resolveRename(long originalSymbolID, int chosenConflictOption)
			throws DuplicateNameException, InvalidInputException, CircularDependencyException {
		Symbol original = originalSymTab.getSymbol(originalSymbolID);
		Symbol latest = latestSymTab.getSymbol(originalSymbolID);
		Symbol my = mySymTab.getSymbol(originalSymbolID);
		long resultID;
		Symbol result = null;
		try {
			resultID = getResultIDFromOriginalID(originalSymbolID);
			result = resultSymTab.getSymbol(resultID);
		}
		catch (NoValueException e) {
			String msg = "Failed to rename symbol '" + original.getName(true) + "'.";
			Msg.showError(this, null, "Rename Symbol Error", msg);
		}
		if ((chosenConflictOption & KEEP_LATEST) != 0) {
			renameSymbol(resultPgm, result, latestPgm, latest);
		}
		else if ((chosenConflictOption & KEEP_MY) != 0) {
			renameSymbol(resultPgm, result, myPgm, my);
		}
	}
Checks to see if there is a symbol in the otherProgram that conflicts
with the indicated symbol. A conflict can be one of these types:
1) a symbol other than label or function that has the same name and 
namespace as another non label or function.
2) a symbol at the same address with the same name and namespace.

@param program the program that contains the specified symbol
@param symbol the symbol (Can be original, latest, or my.)
@param otherProgram the program to be checked for a conflicting symbol
@param saveConflict if true this will also save the conflict for processing or in
some cases automatically process the conflict.
@return true if there is a symbol name conflict
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java