@Override
	public boolean endTransaction(int transactionID, boolean commit) {
		boolean restored = false;
		synchronized (this) {
			if (transaction == null) {
				throw new IllegalStateException("No Transaction Open");
			}
			if (transaction.intValue() != transactionID) {
				throw new IllegalArgumentException(
					"Transaction id does not match current transaction");
			}
			if (!commit) {
				commitTransaction = false;
			}
			if (--transactionCount == 0) {
				try {
					if (dbHandle.endTransaction(transaction.longValue(), commitTransaction)) {
						redoList.clear();
						undoList.addLast(transactionName);
						if (undoList.size() > NUM_UNDOS) {
							undoList.removeFirst();
						}
					}
					else if (!commitTransaction) {
						restored = true;
					}
					transaction = null;
				}
				catch (IOException e) {
					dbError(e);
				}
			}
		}
		if (restored) {
			invalidateCache();
			notifyRestored();
		}
		return transaction == null && !restored;
	}
Get the number of active datatype manager transactions
@return number of active datatype manager transactions
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/StandAloneDataTypeManager.java