static void commitAssumingTransactionsOpen(DataTypeManager sourceDTM, DataType refDT) {

		// Must refresh associations of refDt and its dependencies to ensure that any
		// non-sourced datatype is properly associated to the sourceDTM
		DataTypeManager refDTM = refDT.getDataTypeManager();
		SourceArchive sourceArchive = refDTM.getSourceArchive(sourceDTM.getUniversalID());
		refDTM.associateDataTypeWithArchive(refDT, sourceArchive);

		// Perform commit of changes by re-resolving and performing additional updates
		// not handled by resolve.
		long lastChangeTime = refDT.getLastChangeTime();
		DataType sourceDT = sourceDTM.resolve(refDT, DataTypeConflictHandler.REPLACE_HANDLER);
		if (!isPointerOrArray(refDT)) {
			if (!namesAreEquivalent(refDT, sourceDT)) {
				renameDataType(sourceDTM, sourceDT, refDT);
			}
			if (!StringUtils.equals(refDT.getDescription(), sourceDT.getDescription())) {
				sourceDT.setDescription(refDT.getDescription());
			}
		}
		sourceDT.setLastChangeTime(lastChangeTime);
		refDT.setLastChangeTimeInSourceArchive(lastChangeTime);
	}
Creates a DataTypeSynchronizer to be used for synchronizing data types between a program
and an archive.
@param dataTypeManagerHandler the handler that manages all the open data type managers
whether built-in, program, project data type archive or file data type archive.
@param dataTypeManager the program data type manager.
@param source the data type source archive information indicating the associated archive for
synchronizing.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/DataTypeSynchronizer.java