package com.constellio.data.threads; import com.constellio.data.io.services.facades.OpenedResourcesWatcher; public abstract class ConstellioThread extends Thread { private String resourceName; public ConstellioThread(String resourceName) { this.resourceName = resourceName; setName(resourceName); } @Override public final void run() { try { execute(); } finally { OpenedResourcesWatcher.onClose(this); } } @Override public synchronized void start() { OpenedResourcesWatcher.onOpen(this); super.start(); } protected abstract void execute(); @Override public final String toString() { return resourceName; } }