protected void startTransaction(Principal userPrincipal)
throws MaildropPopException, IOException {
String maildropName =
session.getServer().getPrincipalMaildropTable()
.lookupMaildropName(userPrincipal);
Maildrop maildrop =
session.getServer().getMaildropRepository()
.borrowMaildrop(maildropName);
try {
maildrop.beginTransaction();
} catch (MaildropLockedException e) {
session.setSessionState(AUTHORIZATION);
session.getServer().getMaildropRepository()
.releaseMaildrop(maildrop);
session.getThread().sendResponse(e.toResponse());