Ve skutečnosti vidím jedno místo...
finally {
if (removeGroup) {
this.remove(group);
}
lock.unlock();
}
...pokud úložiště zpráv při odstraňování vyvolá výjimku, přeskočíme odemykání - vidíte něco v protokolu?