@Override
	public synchronized void endTransaction(boolean commit) {
		if (!inTransaction) {
			return;
		}
		inTransaction = false;
		if (commit) {
			tmpChangedDataTypeIds.removeAll(changedDataTypeIds);
			tmpChangedCategoryIds.removeAll(changedCategoryIds);
			tmpChangedSourceArchiveIds.removeAll(changedSourceArchiveIds);

			changedDataTypeIds.addAll(tmpChangedDataTypeIds);
			changedCategoryIds.addAll(tmpChangedCategoryIds);
			changedSourceArchiveIds.addAll(tmpChangedSourceArchiveIds);
			addedDataTypeIds.addAll(tmpAddedDataTypeIds);
			addedCategoryIds.addAll(tmpAddedCategoryIds);
			addedSourceArchiveIds.addAll(tmpAddedSourceArchiveIds);

			undoList.addLast(new MyChangeDiff(tmpChangedDataTypeIds, tmpChangedCategoryIds,
				tmpChangedSourceArchiveIds, tmpAddedDataTypeIds, tmpAddedCategoryIds,
				tmpAddedSourceArchiveIds));

			if (undoList.size() > numUndos) {
				undoList.removeFirst();
			}
		}

		tmpChangedDataTypeIds = null;
		tmpChangedCategoryIds = null;
		tmpChangedSourceArchiveIds = null;
		tmpAddedDataTypeIds = null;
		tmpAddedCategoryIds = null;
		tmpAddedSourceArchiveIds = null;

	}
Construct a new DataTypeArchiveChangeSet.
@param addrMap the address map.
@param numUndos the number of undo change sets to track.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DataTypeArchiveDBChangeSet.java