@Override
    public void handleCreated(Handle handle) {
        checkNotNull(handle, "handle is null");

        assertThat(handleTracker.objectAdded)
            .withFailMessage(() -> format("handle %s has already been added by thread %s", handle, handleTracker.objectAdded.get(handle)))
            .doesNotContainKey(handle);

        assertThat(handleTracker.objectRemoved)
            .withFailMessage(() -> format("handle %s has already been removed by thread %s", handle, handleTracker.objectRemoved.get(handle)))
            .doesNotContainKey(handle);

        handleTracker.objectAdded.putIfAbsent(handle, getThreadName());
    }
A simple leak checker that tracks statement context and cleanable resource management.
core/src/test/java/org/jdbi/v3/core/junit5/JdbiLeakChecker.java