* @throws GarbageException
*/
public DataRecordIdentifier pollFirstCandidate() throws GarbageException {
final DataRecordIdentifier dataRecordIdentifier;
try {
final DataRecordIdentifierRBTNode first =
/**/(DataRecordIdentifierRBTNode) garbageCandidateTree.first();
if (first == null) {
dataRecordIdentifier = null;
if (LOGGER.debugEnabled) {
LOGGER.debug("no first garbage candidate");
}
} else {
dataRecordIdentifier = first.getElement();
final DataRecordIdentifier firstDataRecordIdentifier = first
.getDataRecordIdentifier();
garbageCandidateTree.deleteExistingNode(first);
heapRecordableManager.delete(firstDataRecordIdentifier);
if (LOGGER.debugEnabled) {
LOGGER.debug("object data record #" + dataRecordIdentifier