Всъщност виждам едно място...
finally {
if (removeGroup) {
this.remove(group);
}
lock.unlock();
}
...ако магазинът за съобщения хвърли изключение по време на премахването, ще пропуснем отключването - виждате ли нещо в регистрационния файл?