@Test
	public void testQueryInterface() {
		TraceObject thread;
		try (Transaction tx = b.startTransaction()) {
			root = manager.createRootObject(ctx.getSchema(new SchemaName("Session"))).getChild();

			thread = manager.createObject(KeyPath.parse("Targets[0].Threads[0]"));
			thread.insert(Lifespan.nowOn(0), ConflictResolution.DENY);
		}
		assertNull(root.queryInterface(TraceObjectThread.class));
		TraceObjectThread threadIf = thread.queryInterface(TraceObjectThread.class);
		assertNotNull(threadIf);
		assertSame(threadIf, thread.queryInterface(TraceObjectThread.class));
	}
Fails because you cannot create a second root object.
Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/target/DBTraceObjectManagerTest.java