protected DomainFile createDeconflictedFile(DomainFolder parent, DomainObject object)
			throws InvalidNameException, CancelledException, IOException {
		String name = object.getName();
		try (CloseableTaskMonitor monitor = plugin.createMonitor()) {
			for (int nextId = 1; nextId < 100; nextId++) {
				try {
					return parent.createFile(name, object, monitor);
				}
				catch (DuplicateFileException e) {
					name = object.getName() + "." + nextId;
				}
			}
			name = object.getName() + "." + System.currentTimeMillis();
			// Don't catch it this last time
			return parent.createFile(name, object, monitor);
		}
	}
Create a handler

<p>
Note it is common for this to be constructed by a TCP <em>client</em>.

@param plugin the Trace RMI plugin
@param socket the socket to the back-end debugger
@throws IOException if there is an issue with the I/O streams
Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiHandler.java